本文主要是介绍php代码审计之熊海cms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 环境搭建
- 开始找洞洞
- 反射XSS
- 存储XSS
- sql注入
- sql注入+登录绕过
- sql注入
- 未授权及越权
- 漏洞疑似存在点
环境搭建
熊海cms下载地址:http://js.down.chinaz.com/201503/xhcms_v1.0.rar
作者用的是5.4.x的php版本,mysql数据库环境非GBK
安装好环境先,数据库用户名密码,跟本地数据库一致
利用seay自动审计一下,总的来说误报率还挺高…
开始找洞洞
反射XSS
/xhcms/files/contact.php
page参数存在addslashes函数的过滤,但是可以在url上page参数构造xss语句,触发弹窗或者恶意js语句
存储XSS
/xhcms/admin/adset.php
admin后台处的广告设置存在任意js的写入并带入到前台文章处执行
sql注入
/xhcms/files/content.php
虽然对cid参数进行了addslashes函数的过滤,但是sql语句中的id不需要引号,所以存在数字型注入
利用sleep(3)简单验证了此处存在sql注入
sql注入+登录绕过
/xhcms/admin/files/login.php
源码中可以看到user和password参数是分开验证的,而user不存在过滤,所以user处事存在注入的;而password处则是对目前登录用户的密码的md5值进行验证。
只要构造以下语句,则可绕过控制台登录
相当于我在manage表中假注入了一个test用户,且将test用户的md5值(这里是1的md5)带进去给password参数进行验证,即可绕过控制台登录界面
sql注入
xhcms/install/index.php
到最后才发现install下的index.php也存在注入点,管理账号user参数是存在sql注入的,且未进行过滤
在创建数据库的同时将管理账号user的恶意sql语句带入执行
未授权及越权
xhcms/inc/chexclogin.php
源码中仅仅验证cookie中的user参数是否存在
所以在cookie处添加user参数携带admin、test等值即可绕过登陆界面访问控制台
漏洞疑似存在点
评论留言处
(因为显示不出验证码我就没有在此处做注入和存储xss的尝试了)
/xhcms/admin/files/xxx.php
注入点:
除了type参数,其余函数都未进行过滤
且cid参数参与到了sql的执行,是以()进行闭合
GOT IT!
******************************************************
具体利用方式需根据具体实践场景~
这篇关于php代码审计之熊海cms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!