熊海cms_v1.0代码审计
一、环境搭建
cms下载:https://down.chinaz.com/soft/36930.htm
使用phpstudy环境搭建,php版本要小于7(我这里使用php5.4),之后要自己新建一个数据库用于安转cms(cms不能自动新建数据库)
访问http://localhost/xhcms1.0/install/index.php安装即可
二、代码审计
使用seay源代码审计系统对cms源码进行自动审计,然后手动验证。完成后在对网站的重点功能和敏感位置进行审计,可以借助审计工具的搜索追踪等功能辅助审计。
1、文件包含
-
index.php文件包含
参数r通过GET方法接收到文件名后先检查是否为空或者为index文件,是则返回flase。然后就传给include包含,默认是包含file文件夹内的文件。在网站根目录新建一个111.php内容为显示phpinfo信息。利用
../跳转目录包含
-
admin/index.php
这里和上面的代码是一样的

2、XSS
- file/content.phpSQL语句报错引起的反射型XSS

参数cid拼接入SQL语句,如果有错误会显示在页面。将cid参数值写成XSS语句,SQL语句执行错误,将xss语句一并输出显示在页面,造成反射型XSS


-
file/contact.php反射型XSS
这里从用户端接收到的page参数会显示在页面上

虽然经过了adsdslashes函数过滤(转义一些预定义字符,主要用于防御SQL注入),但这并不能防止XSS。


**注意:**file/list.php中page参数也是一样的问题这里不意义列举了
-
content.php留言昵称存储型XSS
留言处未对评论的用户昵称做任何过滤。且会直接显示在页面中。

跟进file/submit.php

只对昵称进行了非空判断

提交成功,(这里是因为插入的XSS破坏了原有的结构)

重新访问文章,触发弹框


后台管理页面也会触发这个XSS
网站留言也是一样的问题

3、SQL注入
-
files/content.php数字型注入
这里没有对
$id变量(接收cid参数值)做引号保护,可以直接数字型注入

报错注入

-
files/software.php数字型注入
这里和上一个很像

这里也是没有引号保护和过滤,报错注入测试

-
管理员登录SQL注入引起的登录绕过
user、password参数没有经过任何过滤。这里校验用户名然后再校验密码

只要构造以下语句,则可绕过控制台登录。相当于我在manage表中假注入了一个admin123用户(其实就是利用union联合查询将admin123用户名和密码给到$users变量作为查询数据库的结果,然后再验证密码时就从$users取出密码与POST提交的密码进行比较验证),且将admin123用户的md5值(这里是1的md5)带进去给password参数进行验证,即可绕过控制台登录界面

而且这里也可以直接将admin123写成admin,直接成为管理员

除了登录绕过也还是可以作为正常的SQL注入漏洞利用(查数据、写文件等等)
-
后台多处SQL注入
后台互动模块留言、评论列表编辑留言位置存在SQL注入,这里通过
id号来表示不同的留言,对那条留言编辑要提交对应的id。在
replay.php中id没有经过任何过滤且可控

报错注入测试

添加和编辑功能也是可以注入和存储型XSS的


后台注入挺多的,大多是未过滤造成的,这里不一一列举了
4、越权或未授权
inc/cheklongin.php是对用户是否登录状态的验证作用

正常登录admin用户他的cookie如下:
PHPSESSID=9mucanvh8a60q8610k3tjr5oq1; mail=111; url=http%3A%2F%2F111; name=%E6%B5%8B%E8%AF%95%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E; user=admin
可以看到user=admin,根据cheaklongin.php的验证逻辑,我们只要每次访问后台带上user=admin即可越权成为管理员
B5%8B%E8%AF%95%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E; user=admin
可以看到`user=admin`,根据cheaklongin.php的验证逻辑,我们只要每次访问后台带上`user=admin`即可越权成为管理员

文章详细介绍了对熊海CMS_v1.0的代码审计过程,发现了包括文件包含漏洞、反射型和存储型XSS、数字型SQL注入以及越权访问等安全问题。在XSS方面,指出了content.php和contact.php的漏洞,而在SQL注入方面,files/content.php和software.php等文件存在风险。此外,还揭示了通过修改cookie中的user字段可实现管理员权限的越权漏洞。
1011

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



