安全矩阵

 找回密码
 立即注册
搜索
查看: 2708|回复: 0

代码审计 metinfo

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2022-2-26 16:05:21 | 显示全部楼层 |阅读模式
原文链接:代码审计 metinfo

0×00:前言挖掘米拓cms时发现系统存在一处过滤函数多次调用引起的sql注入,遂记录下来与师父们一起学习下,有啥不足之处,菜鸟勿喷O(∩_∩)O
影响版本:metinfo7.5
0×01:漏洞调试由于代码繁杂,直接发送payload进行调试。

Payload:/admin/?n=language&c=language_general&a=doModifyParameter&editor=1&data[system]=1%27%20or&site=0&appno=0&editor=cn&data[system]=2\%27%20where%20id=1%20and%20sleep(3)%23在app/system/language/admin/language_general.class.php的doModifyParameter下断点,发送payload进行调试

往下走,可以看到我们的payload中的单引号反斜杠被转义

再往下走会有一个sql查询语句,查询语句的结果影响到漏洞语句是否执行,所以需要构造payload为数据库中存在的语句


再往下走,经过stripslashes函数之后,转义字符被去除,value已经是正常的payload,但是代码下一步使用preg_replace("/\'/","''", $value)将单引号替换为两个单引号,所以payload中的反斜杠有了用武之地,他将其中一个单引号转义

这样的sql语句可以成功被执行

0×02:黑盒测试

0×03:总结代码审计中,可以重点关注下stripslashes,preg_replace这一类的函数,如果在将数据插入数据库之前进行了不合理的使用,就可能造成安全隐患。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-24 07:38 , Processed in 0.014325 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表