文章目录
- 前言:
- 进入实验室
- 构造 payload
前言:
实验室标题为:
通关 XML 编码绕过过滤器的 SQL 注入
简介:
此实验室的库存检查功能中存在 SQL 注入漏洞。查询结果在应用程序的响应中返回,因此您可以使用 UNION 攻击从其他表中检索数据。
数据库包含一个users表,其中包含注册用户的用户名和密码。要解决该实验,请执行 SQL 注入攻击以检索管理员用户的凭据,然后登录到他们的帐户。
提示:
Web 应用程序防火墙 (WAF) 将阻止包含明显 SQL 注入攻击迹象的请求。您需要找到一种方法来混淆您的恶意查询以绕过此过滤器。我们建议使用Hackvertor扩展来执行此操作。
进入实验室
依然是一个商店页面
构造 payload
点击任意商品进入详细介绍页面,点击底部的检查库存,打开 burp 进行抓包
将数据包发送到重放模块
点击发送,响应包中显示的商店库存为 933
修改storeId 标签值为 1+1,再次发送数据包,响应包中的商店库存为 880。可以判断storeId 标签值,响应包中的返回值不同
将 storeId 标签值改为 union select null
再次发送数据包,响应包中显示Attack detected
通过 burp 插件Hackvertor 来绕过检测
Extensions > Hackvertor > Encode > dec_entities/hex_entities
再次发送数据包,能够正常响应,说明成功绕过检测
响应包中返回的数据为 0 units,说明当返回多个字段时,应用程序将返回 0 units
使用拼接的方法构造 payload
1 UNION SELECT username || '~' || password FROM users
发送数据包,成功得到账户密码
carlos~wxp3wkqelmoqqb12p5fi
administrator~b0xyracitwpfkf71izhm
933 units
wiener~loxi1hggomrhyudhvxuk
登录管理员账户,成功通关