代码审计:KKCMS 前台sql注入漏洞复现
安装cms
下载地址:https://github.com/wangyifani/kkcms/
程序开发环境: apache2.0 php5.6.40 mysql5.5
程序建议使用环境: linux系统使用nginx1.12及以上, Windows系统使用apache 1.8以上 php统一使用php5.6版本 mysql使用5.0及以上版本
后台默认密码admin和123456
前台 vlist.php 注入
漏洞url:
http://127.0.0.1/kkcms/vlist.php?cid=1
加一个引号报错
所以定位审计文件 /vlist.php,来到文件处,找到关键代码。
不难看出,cid 参数没有过滤,直接拼接到 sql 语句中。
而且是数字型传参,没有双引号包裹,存在注入。
为什么要强调双引号呢,因为该文件包含 system/inc.php 文件。
而 system/inc.php 文件包含如下:
其中在 library.php 中,可以看到,没有开启魔术引号的时候会将传参加上addslashes,所以双引号会被加上反斜杠了,以此避免注入。
漏洞复现
将注入url放到sqlmap去跑,就完事。
sqlmap.py -u http://127.0.0.1/kkcms/vlist.php?cid=1 --batch