Web漏洞搜索
上QQ阅读APP看书,第一时间看更新

4.6 改变用户的Instacart地区攻击

难度:

URL:https://admin.instacart.com/api/v2/zones/

报告位置:https://hackerone.com/reports/157993/

报告日期:2015年8月9日

支付奖金:100美元

当你考虑攻击面风险时,记得除了要考虑网站的网页,也要考虑网站的API端点。Instacart是一个杂货配送应用程序,它允许配送者定义他们工作的地区。Instacart网站通过向管理子域发送POST请求来更新这些地区。黑客发现这些子域的地区端点存在CSRF攻击风险。例如,你可以通过如下代码修改目标地区:

在本例中,黑客构建了一个HTML表单以发起发送到/api/v2/zones端点的HTTP POST请求❶。黑客在HTML表单中包含了两个隐藏输入:一个用来设置用户新的地区为邮政编码10001❷,另一个用于设置API的override参数为true❸,以便使用户当前的邮政编码可以被黑客提交的邮政编码所替换。此外,黑客采用了提交按钮来发起POST请求,不像Shopify的那个例子,在那里采用的是自动提交的JavaScript脚本功能。

尽管本例仍然是成功的,但是黑客可以进一步通过我们前面讲过的技术,例如使用隐藏iFrame代表目标对象自动提交请求,来改进这一漏洞利用。这向Instacart漏洞悬赏实践者显示了黑客如何在较少的目标操作下利用漏洞;被攻击者完全控制的漏洞利用相对于没有完全控制的漏洞利用更容易成功。

要点

当你寻找可以利用的漏洞时,要拓宽你的攻击范围,跳出仅仅考察基于网站的网页的漏洞,应该进一步考察网站的API端点的漏洞,这样你可能会发现更多潜在的漏洞。有时,开发者会忘记黑客可以发现和利用API端点漏洞,因为它们不像网页一样具有可读性。例如,移动应用程序通常都是向API端点发起HTTP请求,这一点你可以通过Burp或ZAP工具监测到,就像你在监测Web网站时所做的那样。针对上述情况,防御方也需要多加注意。