BlueCMS代码审计
一、概括
Seay源代码审计系统扫描到306个漏洞,大概都看了看,很多都无法存在,特别是像un_client等文件夹直接拒绝访问,而且其他位置的文件所报告的漏洞都无法复现,不是有过滤就是变量不可控,工具只是简单的对人为制定的规则进行匹配,而且还无法扫描逻辑漏洞,所以扫描器和人工结合最好。
二、SQL注入漏洞(124个)
1、第一个SQL注入
(1)扫描器显示代码如下:
这里trim函数是去空白的功能,参数用户可控,在代码中输入echo sql去前台验证一下:
可以看出来单引号转义,使用sqlmap可以跑出来:
测试payload,可以发现确实执行了sleep(5)
源代码在./admin/ad.php
先在页面测试一下。
2、第二个SQL注入(不存在)
系统给的报告:
直接访问发现被拒绝:
查看源代码:
发现是检查IN_UC常量是否存在,不存在则直接访问拒绝,删除试试。
页面空白而且sqlmap跑不出来,失败。
三、任意文件读取/删除/修改/写入(98个)
1、第一个任意文件读取
Seay给出的报告
构造payload:http://blue.com/admin/tpl_manage.php?act=edit&tpl_name=../../data/config.php
可以读取到该文件,但不能跨盘符读取。
2、第二个任意文件读取(不存在)
系统给的报告:
直接访问页面:
查看源代码:
看起来只是删除图片的代码,不存在。
四、文件包含漏洞(27个)
1、第一个文件包含(不存在)
系统给出的报告:
直接访问网页:
查看源代码:
可以发现这里的文件是写死的,不允许用户进行更改,不存在。
2、第二个文件包含
系统给出的报告:
访问页面,找到pay的变量:
开启抓包,发送到重发器,更改包内容,发送:(贴个图,这里没出来)
五、代码执行漏洞(22个)
1、第一个代码执行漏洞(不存在)
系统给出的报告:
访问页面:
发现被拒绝,查看代码:
同样有判断,先注释掉试试。
无论如何传值都不可以,不存在。
2、第二个代码执行(不存在)
系统给出的报告:
访问页面为空白页,直接试试:
没有反应,不存在。
五、XSS漏洞(1个)
1、唯一一个XSS
系统给出的报告:
访问网页:
查看源代码:
直接输入script代码,即可弹出,存在XSS漏洞。