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'

七、成功通关

用账号密码登录成功通关

相关推荐
IT小白杨18 分钟前
海外业务账号安全保障:主流浏览器产品底层机制对比
数据库·python·安全·自动化·安全架构·指纹浏览器
张洛闻Eren9 小时前
MySQL 维护稳定系统【MySQL第二课】
linux·数据库·mysql·云原生
布莱克60510 小时前
理解索引:从概念到实践
数据库·mysql
我不是疯子是傻子13 小时前
Qt CAN通信周期发送抖动?实测定时器精度校准与时间戳补偿方案
开发语言·数据库·qt
这个DBA有点耶14 小时前
数据库迁移怎么做到“零翻车“:金仓 KDMS/KDTS/KFS 工具链实测
数据库·架构·dba
2501_9378609414 小时前
MySQL联合查询(多表查询)
数据库·mysql
名字还没想好☜15 小时前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
迷迭香yy15 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
SelectDB16 小时前
抖音集团 实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB16 小时前
网易 日志与时序数据分析:Apache Doris / SelectDB 的技术能力与实践
数据库