PortSwigger靶场之SQL injection with filter bypass via XML encoding通关秘籍

一、题目分析

该实验室的库存查询功能存在 SQL 注入漏洞。查询结果为这些信息会出现在应用程序的响应中,因此您可以利用"联合"攻击来从其他表中获取数据。该数据库中有一个"用户"表,该表包含了已注册用户的用户名和密码。要解决,需进行一次 SQL 注入攻击以获取管理员用户的登录凭证,然后登录到他们的账户。

提示网络应用防火墙(WAF)会拦截那些明显带有 SQL 注入攻击迹象的请求。您需要找到一种方法来对恶意查询进行混淆处理,以绕过这一过滤机制。我们建议使用 Hackvertor 扩展来进行此操作。

二、下载插件

我们先在拓展里面下这个插件:

三、寻找注入点

如上修改语句为"1+1",返回结果发生了变化;同时如下修改输入单引号,会被识别成攻击语句,被拦截。

四、使用 Hackvertor 扩展

这里我们使用 Hackvertor 扩展,进行加密,为什么呢?

因为 使用 Hackvertor 扩展,进行加密我们可以绕过安全过滤器和 WAF(Web 应用防火墙)

  • 这是它在网络安全领域中非常重要的一个应用。很多简单的安全过滤器会通过黑名单来阻止恶意的输入,比如直接拦截包含 <script> 字符串的请求。

  • 攻击者为了绕过这种检测,可以将他的攻击载荷(Payload)进行十六进制实体编码。

  • 例如,将 <script>alert(1)</script> 完全编码成: &#x3c;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3e;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;&#x3c;&#x2f;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3e;

  • 这个编码后的字符串可能不会触发 WAF 的规则,但当它被浏览器接收并解析时,会被还原成原始的恶意脚本并执行,从而导致 跨站脚本攻击(XSS)。


此时,再次点击Send,发现响应中返回了正常的内容。

五、判断数据库类型

此时识别出数据库类型为PostgreSQL

六、寻找用户名和密码

利用下面语句得出用户名:

sql 复制代码
1 union SELECT username from users

利用该语句得出密码

sql 复制代码
1 union SELECT password from users where username='administrator'

七、成功通关

用账号密码登录成功通关

相关推荐
这个DBA有点耶5 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G5 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备5 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远5 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
漂着的圆木5 天前
Agent 功能参与度:Copilot 怎么算
sql·数据分析·agent·githubcopilot·度量
2601_962218615 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安5 天前
MySQL-触发器
数据库·mysql
白远山5 天前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
Omics Pro5 天前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理