挖洞经验 | 看我如何挖掘并成功利用印度Popular Sports公司网站主机头的SQL注入漏洞

2018-06-25 103519人围观 ,发现 4 个不明物体 WEB安全

今天我要为大家分享一个我在做bugbounty项目时,发现的一个非常有意思的漏洞,这个漏洞出现在印度的一家流行体育公司网站。本文是关于“我如何利用主机头找出SQL注入漏洞,以及使用sqlmap tamper脚本绕过规则并dump目标数据库”的完整过程。下面进入我们的正题。

当我尝试使用burp intruder模块检查应用是否存在可爆破OTP漏洞时,我发现我的IP被立马阻止了,并且从返回的错误信息我基本可以断定该应用使用的的是AWS。此外,我还发现在HTTP响应中设置了“X-Amz-Cf-Id”头(CloudFront在将请求转发到原始请求之前将CloudFront添加到查看器请求中),这也更加肯定了我的判断。

我如何挖掘并成功利用印度Popular Sports公司网站主机头的SQL注入漏洞

现在,我们开始来测试可能存在漏洞的地方。测试工作可是个细活,任何一个地方我们都不能轻易的放过,我们从主机头开始。我修改了主机头的值但并没有任何作用。因为该应用运行在AWS上,所以他们必定使用了弹性负载均衡(ELB),因此我决定添加X-Forwarded-Host来尝试对主机头的攻击。如下所示 -

我如何挖掘并成功利用印度Popular Sports公司网站主机头的SQL注入漏洞

我将它的值设置为www.google.com,并302重定向到google.com,但是当我将该值设置为www.evil.com时,我得到了以下响应结果 -

可以看到状态显示为403 Forbidden。很显然,该应用程序后端服务器肯定是设置了一些有关主机值的白名单(因为它允许google.com但拒绝evil.com)。现在有两种可能性,一是脚本是根据允许值的数组/列表进行检查的。二是它们将值存储在了数据库中,这样就会有数据库的查找过程。所以,我尝试了一些针对X-Forwarded-Host值的sql查询,如下 -

我如何挖掘并成功利用印度Popular Sports公司网站主机头的SQL注入漏洞

可以看到我设定延迟注入语句10秒执行,而HTTP响应时间为9.4秒,这足以证明X-Forwarded-Host头中存在SQL注入漏洞。接下来的任务,就是提取目标数据库中的数据。到这里我通常会使用sqlmap来辅助我的工作,但不幸的是sqlmap连接被拒绝。我尝试添加–delay和–timeout参数来限制HTTP请求以及增加超时时间,但仍然连接被拒绝,我猜测这可能与字符黑名单有关。

我如何挖掘并成功利用印度Popular Sports公司网站主机头的SQL注入漏洞

为了验证我的猜测,我在X-Forwarded-Host头中输入了一个XSS测试语句“<script>alert(1)</script>”,果不其然响应结果为HTTP STATUS 400 — BAD REQUEST ERROR

很明显,脚本标签,<,>字符也在黑名单列表中。SQLMAP中提供了一个between.py的tamper脚本,我将(<,>)替换为了“NOT BETWEEN”,并在sqlmap查询中包含了它。运行了一段时间后,我成功获取到了目标数据库中的数据,其中包括用户凭据,email-id等信息。

我如何挖掘并成功利用印度Popular Sports公司网站主机头的SQL注入漏洞

以上就是我和大家分享的内容,希望大家能学习到一些有用的东西。同时也欢迎你们将好的经验和思路分享出来,让更多的人从中受益!谢谢!

报告时间线

2018.5.3 – 报告厂商。

2018.5.3 – Bug被标记为已修复。

2018.5.3 – 重新测试并确认修复。

2018.5.5 – 奖励。

 *参考来源:medium,FB小编 secist 编译,转载请注明来自FreeBuf.COM

发表评论

已有 4 条评论

取消
Loading...
css.php