Lab1_ SQL injection vulnerability in WHERE clause allowing retrieval of hidden data

前言

实验室标题为:

where 子句中的 SQL 注入漏洞允许检索隐藏数据

等级:学徒

本实验室的产品类别过滤器中存在 SQL 注入漏洞。当用户选择一个类别时,应用程序会执行如下 SQL 查询:

SELECT * FROM products WHERE category = 'Gifts' AND released = 1

根据 sql 语句提示,参数 category 可能存在 sql 注入

进入实验室

这是一个商品页面

注意一点,首页显示的商品只有 12 个

查看任意商品

发现 url 链接中的参数是productId,并非是category。说明注入点并不在这里

https://xxxxxxxx/product?productId=9

寻找注入点

返回上一个页面,点击任意选项

发现链接中出现参数category

使用 hackbar 辅助

将category 的值删去,页面显示为空

此时的 sql 语句应该为

SELECT * FROM products WHERE category = '' AND released = 1

构造 payload

在 sql 语句的提示中,可知是单引号闭合

尝试输入单引号,并使用注释符

此时页面依然为空

sql 语句应为

SELECT * FROM products WHERE category = '' --qwe' AND released = 1

尝试输入’and 1=1 --qwe

页面依然为空

将连接符 and 改为 or

页面不再为空,页面也会出现通关祝贺

此时商品数量为 20 个,相比开始显示的 12 个商品,多了 8 个

这时 sql 语句应为

SELECT * FROM products WHERE category = '' or 1=1 --qwe' AND released = 1

通过前后页面商品数量对比,可知利用此漏洞可以让一些未上架或已下架的商品显示出来

burp 抓包注入

除了使用 hackbar 辅助,还可以通过抓包的方式进行注入

在注入点进行抓包,删去参数 category 的值,发送数据包,返回包显示 200

接着尝试闭合,构造 payload,和上述步骤一样,可以通过渲染页面判断是否成功通关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值