
一、题目分析
该实验室的库存查询功能存在 SQL 注入漏洞。查询结果为这些信息会出现在应用程序的响应中,因此您可以利用"联合"攻击来从其他表中获取数据。该数据库中有一个"用户"表,该表包含了已注册用户的用户名和密码。要解决,需进行一次 SQL 注入攻击以获取管理员用户的登录凭证,然后登录到他们的账户。
提示网络应用防火墙(WAF)会拦截那些明显带有 SQL 注入攻击迹象的请求。您需要找到一种方法来对恶意查询进行混淆处理,以绕过这一过滤机制。我们建议使用 Hackvertor 扩展来进行此操作。
二、下载插件
我们先在拓展里面下这个插件:


三、寻找注入点



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

四、使用 Hackvertor 扩展
这里我们使用 Hackvertor 扩展,进行加密,为什么呢?
因为 使用 Hackvertor 扩展,进行加密我们可以绕过安全过滤器和 WAF(Web 应用防火墙)
-
这是它在网络安全领域中非常重要的一个应用。很多简单的安全过滤器会通过黑名单来阻止恶意的输入,比如直接拦截包含
<script>
字符串的请求。 -
攻击者为了绕过这种检测,可以将他的攻击载荷(Payload)进行十六进制实体编码。
-
例如,将
<script>alert(1)</script>
完全编码成:<script>alert(1)</script>
-
这个编码后的字符串可能不会触发 WAF 的规则,但当它被浏览器接收并解析时,会被还原成原始的恶意脚本并执行,从而导致 跨站脚本攻击(XSS)。


此时,再次点击Send,发现响应中返回了正常的内容。
五、判断数据库类型

此时识别出数据库类型为PostgreSQL
六、寻找用户名和密码

利用下面语句得出用户名:
sql
1 union SELECT username from users

利用该语句得出密码
sql
1 union SELECT password from users where username='administrator'
七、成功通关
用账号密码登录成功通关
