一、地址
WHERE 子句中的 SQL 注入漏洞,允许检索隐藏数据
https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data
点击访问实验室》等待环境启动完成
二、解决思路
1.进入环境,对照实验室介绍,查看页面功能:页面有一个优化搜索的功能,点击各个筛选名称可以筛选出不同的产品
2.打开bupsuite先把数据包拦截
例如:页面点击“礼物”,burpsuite找到拦截到的数据包
3.结合实验室要求分析SQL语句:GET请求,参数入参在url中,参数为category=Gifts。根据实验室介绍中给出程序将执行的SQL语句可知,SQL语句中,category的值是用单引号引用的,所以注入的时候需要闭合。并且实验室要求各个条件的搜索结果都展示未发布和已发布的产品,所以后面的过滤条件and released=1应该注释掉,每个分类都展示所有的产品,那么应该加上 or 1=1的条件,所以SQL语句应为:
select * from products where category=‘Gifts’ or 1=1 – and released=1
4.通过得到的SQL语句反推入参
首选,Gifts需要闭合
其次,这里是get请求,为了不和URL与HTTP之间的空格冲突,入参中的空格应该输入URL编码对应的+
所以最后的入参应该是:
/filter?category=Gifts’+or+1=1±-+
5.burpsuite放包就可以看到页面已经加载了所有的产品,过关!