BlueCMS 代码审计
blueCMS是一款小众的CMS ,网上也有很多漏洞分析之类的文章,用来做代码审计入门练习还是不错的选择
0x00 环境准备
- Apache + PHP
- BlueCMS v1.6 sp1
- Mysql监控
0x01大体结构分析
入口文件与common函数
大致看了下index文件,果然入口文件很难发现漏洞,继续看两个common文件
因为是GBK编码的CMS所以此处可以被宽字节注入,此外就是IP未过滤
0x02 漏洞点测试
IP
首先测试下IP,全局搜索getip,在comment发现getip并且未做处理就放入SQL中执行
进入comment页面,不知道为什么没有内容显示,只好换个方向,在common.inc文件中$online_ip是由getip得到的
搜索$online_ip后在guest_book文件中发现
测试下功能,确认可用
构造payload X-Forwarded-For:’,database())#
可以在留言中看到数据库名已经出现了
数值型注入
在ad_js.php文件中可以发现,$ad_id变量受我们控制,而且插入SQL语句时没用单引号,这就使我们可以直接注入了
union select得到数据库名称
xss漏洞
在user.php文件的增加新闻处
content并没有用htmlspecialchars函数过滤,而是采用了filter_data函数
只要关键字大写就可以绕过
创建一个用户后发表一个新闻,content内容为XSS PAYLOAD
切换账号访问新闻页
0x03 总结
第一次代码审计一个CMS,果然我还是太菜了,只能发现最基础的一些漏洞,不过慢慢来啦,急不来。