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'

七、成功通关

用账号密码登录成功通关

相关推荐
郭俊强2 小时前
nestjs 连接redis
数据库·redis·缓存
海边捡石子2 小时前
postgress数据迁移gaussdb注意事项
数据库
chen_note3 小时前
Redis数据持久化——RDB快照和Aof日志追加
java·数据库·mybatis·持久化·aof·rdb
GBASE3 小时前
GBASE南大通用技术分享:GBase 8s数据库Q转义功能解析(上)
数据库
闲人编程4 小时前
PyQt6 进阶篇:构建现代化、功能强大的桌面应用
数据库·python·oracle·gui·脚本·pyqt6·软件
speop4 小时前
【datawhale组队学习】RAG技术 -TASK05 向量数据库实践(第三章3、4节)
数据库·学习
EnigmaCoder4 小时前
【Linux】用户与用户组管理
linux·运维·服务器·数据库
Crazy________4 小时前
03MySQL——DCL权限控制,四种常用函数解析
sql·mysql
工业甲酰苯胺4 小时前
Redis支持事务吗?了解Redis的持久化机制吗?
数据库·redis·bootstrap