bluecms v1.6 代码审计

0x01 使用seay源代码审计系统进行审计

 

  扫描到了很多个可疑漏洞,不过工具都有一定的误报,下面我们就逐个进行验证

0x02 /ad_js.php SQL注入漏洞

 

 查看源码,我们发现程序通过GET方法接收ad_id的值,然后通过trim函数去除首尾的空白字符,并没有做其他操作,直接代入了SQL语句。

追踪函数getone(),代码在mysql.class.php中,直接执行了sql语句。

 

 因此,我们直接可以通过联合查询来进行注入:

 

 0x03 /user.php 文件包含漏洞

 

 查看源码,我们发现当$act=='pay'时,将执行include 'include/payment/'.$_POST['pay']."/index.php";  

并且$_POST['pay']的值没有经过处理。

这样我们就可以构造payload,使其包含恶意文件,比如在phpstudy根目录下新建一个index.php文件

 

通过目录穿越,即可包含该文件:

 

 当然,也可以利用文件路径长度截断(php版本小于等于5.2) ,如用字符.或者/.或者./来截断,造成文件包含漏洞,这样可以包含任意文件。

系统文件路径长度限制:

Windows 259个字节

Linux 4096个字节

0x04 /user.php SQL注入漏洞

 

 这个注入和上边的ad_js.php sql注入原理和操作都相差不大,就不对其分析了。

0x05 /user.php XSS漏洞

 

 发现email是直接post进数据库的,未对其做任何过滤从而引起的xss,但由于其他的,例如用户名有长度验证所以不能xss.

posted @ 2020-08-12 18:15  vege  阅读(142)  评论(0编辑  收藏