工具:Burp、Phpstudy、Seay、Sublime Text3
    环境:Apache2、php5.6.9、mysql
    BlueCMS是一款小众cms,没有采用mvc的形式,代码简单,适合新手审计,希望这篇文章能给大家带来帮助
    环境安装:
    Phpstudy中设置以upload为根目录
    输入/install/目录,进行安装
    图片.png
    正常配置即可
    图片.png
    PS:到step5时会默认空白,不要管,直接进入index.php即可
    图片.png
    如图所示Bluecms安装完成
    代码分析:
    接下来打开Seay审计工具,载入源码,进行辅助扫描
    图片.png
    我们要审计的是第一个ad_js.php,点击进入
    图片.png
    代码简洁清晰明了,get方式传入参数ad_id,检测不为空,执行sql语句。
    接下来,我们看一下getone函数中是否有过滤(右键—-》定位函数,双击进入)
    图片.png
    图片.png
    代码也是十分的简洁,直接进行sql语句的查询,返回结果,并未含有任何过滤。而整个代码中也没有进行防御的全局函数。由此可以判断,ad_js.php的ad_id参数存在get型的sql注入
    漏洞复现:
    直接进入http://localhost/ad_js.php?ad_id=1,却发现是空的
    图片.png
    这是为什么呢?
    看看我们上面的sql语句,它是从表ad中进行数据查询,而ad代表的是广告,在数据库中,默认的ad是空的。广告数据是要管理员自行在后台添加的
    接下来我们打开后台,添加一条广告数据即可
    图片.png
    图片.png
    添加成功
    图片.png
    再返回之前的页面,刷新一下,进入源代码页面,会发现多了点东西
    图片.png
    就是我们刚刚写入的广告内容
    接下来就是日常操作了
    图片.png
    Order by猜解长度为7,存在7列
    图片.png
    直接放sqlmap跑,复现成功
    图片.png