Portswigger练兵场之SQL注入
XML中的SQL注入-堆叠+编码绕过
Lab: SQL injection with filter bypass via XML encoding
实验前置必要知识点
注入不只在传参之中,根据代码的书写方法,可能会通过XML
将代码传递给后端。
例如:
123
999 SELECT * FROM information_schema.tables
SQL
注入是支持16进制编码的,存在多种绕过方法。
实验要求
此实验室的库存检查功能中包含一个 SQL 注入漏洞。查询的结果在应用程序的响应中返回,因此您可以使用 UNION 攻击从其他表中检索数据。
数据库包含一个users表,其中包含注册用户的用户名和密码。若要解决实验室,请执行 SQL 注入攻击以检索管理员用户的凭据,然后登录到其帐户。
⚡️渗透开始
- 访问对应靶场界面
https://portswigger.net/web-security/sql-injection/lab-sql-injection-with-filter-bypass-via-xml-encoding
- 启动靶场
- 分析功能点
多点点各种功能点,搜寻很可能会存在注入的地方
- 打开burp的历史记录,查询可能会存在
XML
的数据包
重点搜寻了POST
的传参方式
- 测试
POST
功能点
首先分析功能点,通过提交的Id
会回显对应的商品存量
通过修改Id
值,发现回显情况发生了改变
修改成1+1之后,发现回显情况没发生改变,存在数学表达式
使用1+1
,成功查到2
的结果
追加 UNION SELECT NULL
,被WAF侦测到攻击阻止
下载 Hackvertor
插件
利用 Hackvertor
插件转十六进制实体成功绕过
将用户名密码连接起来,得到用户密码
1 UNION SELECT username || ':' || password FROM users