代码审计 metinfo

admin 2022年2月26日02:44:01评论235 views字数 854阅读2分50秒阅读模式
代码审计 metinfo
代码审计 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.phpdoModifyParameter下断点,发送payload进行调试

代码审计 metinfo

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

代码审计 metinfo

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

代码审计 metinfo


代码审计 metinfo

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

代码审计 metinfo

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

代码审计 metinfo


0×02:黑盒测试

代码审计 metinfo

0×03:总结

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

0x04:关注

热烈欢迎关注本安全公众号

关于公众号投稿 

接受原创文章投稿

内容免杀 渗透实例 代码审计 溯源 经验技巧

要求 不能水文 从没发表 敏感内容打码

一经采纳根据文章质量给予作者 50-200的稿费。

投稿联系

代码审计 metinfo




原文始发于微信公众号(moonsec):代码审计 metinfo

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月26日02:44:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   代码审计 metinfohttp://cn-sec.com/archives/803515.html

发表评论

匿名网友 填写信息