对某CMS的黑盒渗透测试 挖掘漏洞分析

虽然我们经历过以上的失败,可是现在对CMS的架构已经很熟悉了,应当有助于进一步的渗透。刚才看到最后一条拼接的SQL语句,发现了一个languageID参数。跟踪看这个参数是否可控。根据回溯,我们可以看到这个变量是从网站_inc.php或者Function.php文件中定义的。在网站_inc.php文件中,发现这个参数可以通过POST提交。虽然有过滤,可是远没有刚才搜索的地方复杂,直接代入下面的数据库查询。根据上面分析的过滤函数,直接使用ascii进行注入,有效载荷如下:1和ASCII(substr(userbase(),1,1))113。


当数据库首位的ascii码等同于113时,返回的title等内容为空,可以用这个方法枚举数据库信息。短的是正确的值。通过这种方法,你可以遍历并读取想要的数据库信息,所以这里就不一一演示了,最后得到网站的账号密码。没有网站Shell的渗透测试是不完整的,原本应当试着用SQL注入写入WebShell的,可是这样做的时候觉得麻烦,所以拿到网站账号密码后就开始反汇编后台地址,没想到最后还是被猜到了,后台路径是admin_Admin。这里大胆猜测一下,是不是因为CMS会随机生成后台管理路径,导致管理员忘记了,所以路径被改成了admin_Admin?感觉大概率。进入后台后,先看看后台。


进入后台后,看到有一个SQL执行,以为可以直接执行SQL语句,在这里得到SHELL。当我高兴地打开它时。这是什么?没有执行SQL语句的地方,感觉像是还原数据库的功能,这里不用担心,再看上传。参数设置上有上传LOGO的地方,试试。随意选择图片,点击提交,抓取包。修改内容为一句话,文件名改为1.php。提示:请检查上传的文件类型,检查源代码,看这里怎么限制。最后一点后获取扩展名,然后查看白名单。各种方法,如截断和上传、漏洞分析和包含漏洞的文件,都没有成功利用。最后,由于其他一些原因,系统没有再次测试。至此,我通过代码审计得到了一个SQL注入,成功进入后台,可是没有得到WebShell,所以我称这个渗透不完全。


本文主要是在通过黑盒测试没有发现明显问题的情况下,下载源代码进行审计,并通过审计结果构建Payload。因为有些程序会有一些过滤器,直接构造有效载荷会比较困难。如果你能通过代码审核,那么构建有效载荷就会方便快捷得多。当然,很有可能是我太优秀了,一无是处。

分享: