渗透测试---SQL注入~hpp http参数污染

sql-labs的Less 29关的正确打开方式:

http://192.168.18.21/sqli-labs-master/Less-29/login.php

输入

http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1

发现输出结果为id=1的值

http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1&id=2

发现输出结果为id=2的值

http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1&id=2&id=3

发现输出结果为id=3的值

综上,发现mysql中用&连接多个参数,只输出最后一个参数的结果。

输入

http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1'&id=2&id=3

页面显示注入被拦截。

http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1&id=2'&id=3

页面无变化。

http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1&id=2&id=3'

页面报数据库错误。

说明第一个参数被waf拦截,中间的参数无影响,最后一个参数被带到数据库中执行。

本关存在php的一个hpp漏洞,当同时传递多个参数时,不同的服务器可能会取得不同的参数值。

可以通过http参数污染绕过waf参数拦截:

如果是$_get(id)获取id,则可以在参数后添加参数,对最后的参数进行注入,即可绕过waf。

也就是说waf只检查第一个参数,而应用程序取最后一个参数代入数据库执行。

参考文章:

https://blog.csdn.net/eatmilkboy/article/details/6761407

Web应用里的HTTP参数污染(HPP)漏洞

posted @ 2020-05-07 23:32  强霸卓奇霸  阅读(994)  评论(0)    收藏  举报
https://blog-static.cnblogs.com/files/xiaokang01/js.js 这是添加的文件的链接 color="240,230,140" 粒子的颜色设置 opacity="1" 粒子的透明度 count="75" 粒子的个数