本文是翻译文章,原文链接为:https://zerottl.com/posts/xss-in-amazon-india/
这是一份描述我在datavault.amazon.com上的XSS的文章。一个URL的值被渲染显示在页面上,没有经过任何清洗导致了XSS漏洞。这是一年前向Amazon报道的,此漏洞之后已经得到修复。
我使用amass对amazon.in的域名进行了子域名手机。Aquatone用于对子域名列表中的每个站点进行页面截屏。经过与页面截屏进行对照,我对datavault.amazon.in站点进行深入挖掘。
当我登陆的amazon.in后,下图是我访问datavault.amazon.in的截图。
除了我注册amazon.in的邮箱外,我看不到任何有用的信息。但是一旦我查看了页面源代码后有一些好玩的javascript文件被发现了。
在javascript文件中,文件installnationCommons.js有一些有趣的函数。即downloadAffordabilityDocument()和downloadDocument()。
函数:downloadAffordabilityDocument()
函数:downloadDocument()
我从函数中抽取了两个URL,如下:
https[:]//datavault.amazon.in/affordabilityDownloadReport?DocumentName=<DOCUMENT_NAME>
https[:]//datavault.amazon.in/data/DownloadReport?DocumentName=<DOCUMENT_NAME>&RequestType=<REQUEST_TYPE>
现在你可以看到RequestType这个参数反显到了页面上。我们现在可以测试一下HTML注入。
Payload :
URL :
https://datavault.amazon.in/data/DownloadReport?DocumentName=123&RequestType=<b>BOLD</b>cd
输出:
你可以看到用户输入没有被清洗并直接反显在了HTML代码中。<b>BOLD</b>
被直接嵌入在了页面当中。我可以在页面中任意注入HTML代码了,是时候使用<script>
标签了。
Payload :
<script>alert('XSS');</script>
URL :
https://datavault.amazon.in/data/DownloadReport?DocumentName=123&RequestType=<script>alert('XSS');</script>
这个反射型XSS是通过构造一个带有特殊payload的URL并将它发送给用户。一旦用户点击,用户就可以被导向到恶意站点或者被通过HTML注入要求输入他们的密码信息。
amazon.in上的Cookies附上了HttpOnly属性和Secure属性所以是不可能被窃取的。