bluecms代码审计

说明:最近打算入手cms,所以找了一个简单的bluecms先练练手。

首先使用seay源码审计工具审计全部的源码
bluecms代码审计_第1张图片
1,发现/uploads/ad_js.php下可能存在sql注入漏洞


打开ad_js.php文件
bluecms代码审计_第2张图片
首先判断是否存在ad_id变量如果存在就执行下面的操作
bluecms代码审计_第3张图片
跟踪getone函数,在mysql.class.php文件中,用于封装为sql语句。
后跟踪table,在common.fun.php文件中发现

function table($table)
{
   global $pre;
   return  $pre .$table ;
}

继续跟进$pre,在config文件中发现

$pre    = "blue_";

说明表名为’blue_ad’
后执行一些对我们无关紧要的东西,略过。
最后后跟三个replace语句。
继续在网页上测试
bluecms代码审计_第4张图片
当order by 8时出现错误,说明一个8列

http://127.0.0.1/bluecms_v1.6_sp1/uploads/ad_js.php?ad_id=-1 union select 1,2,3,4,5,6,database()#
bluecms代码审计_第5张图片

因为知道了表名,blue_ad说以直接对列名进行注入。(因为前面对引号进行了过滤,所以直接将其转化为16进制)

http://127.0.0.1/bluecms_v1.6_sp1/uploads/ad_js.php?ad_id=-1 union
select 1,2,3,4,5,6,(select group_concat(column_name) from
information_schema.columns where table_name=0x626c75655f6164)#

bluecms代码审计_第6张图片
最终所有的数据库信息都可以看见。

2. user.php新闻发布面板存在sql注入。


bluecms代码审计_第7张图片
这个注入和上边的ad_js.php sql注入原理和操作都相差不大,就不对其分析了。
3,user.php页面的存在存储型xss


再做黑盒测试的时候发现在邮箱中插入,可以弹出框
经过测试发现只有邮箱部分插入代码才可以进行xss

bluecms代码审计_第8张图片

bluecms代码审计_第9张图片
现在分析一波原因。
bluecms代码审计_第10张图片
发现email是直接post进数据库的,未对其做任何过滤从而引起的xss,但由于其他的,例如用户名有长度验证所以不能xss.

4,本地文件包含


通过seay审计出/uploads/admin/tql_manage.php,可能出现任意文件读取漏洞,后分析一波。
bluecms代码审计_第11张图片
发现有模板可以任意进行编辑。
发现$_GET['tpl_name']
没有进行任何处理,发现可以利用…/…/…/uploads/ad_js.php包含到本地的文件。
只要在文件中插入,一句话木马,菜刀连接即可。

先就写这么多吧,后边再补充。

你可能感兴趣的:(代码审计,php学习)