![5a6e0df7099c50db023aca4b2b4becab.png](https://i-blog.csdnimg.cn/blog_migrate/ee0540bdcba125f258f4120569b6ccce.png)
上个月我到Synack的私有漏洞悬赏平台进行挖洞,发现在他们的一个网页中存在反射型XSS漏洞。由于Synack漏洞悬赏计划的私密性,我不会在这篇文章中提到测试目标,但是我将说明我是如何克服所遇到的许多不同的限制,最终挖到一个高危漏洞的。最初我的发现的XSS漏洞得到了272美元奖励,因为我无法证明我能访问文档对象模型,也就是DOM。而无法访问DOM的原因是括号字符被过滤,因此无法执行有效的payload,例如:
![34a77fd942fb94c1b5d71a8654c5cd2f.png](https://i-blog.csdnimg.cn/blog_migrate/ec952ff23f0291f00f955f033346a0cb.png)
通常来说你必须像下图那样得到domain。
![e1290c43680c5ff90c9872a98defc0d7.png](https://i-blog.csdnimg.cn/blog_migrate/a8a7b3a7ee76b4ad595fb070483458b1.jpeg)
![ba99987d33a2e022ae107d572edd2786.png](https://i-blog.csdnimg.cn/blog_migrate/9ce81ae5b36ae6c5f82c563d6207c9f1.png)
由于括号被过滤,我不得不用反引号来代替。但是,当我再次执行时,你是获取不到domain的,如下图。
![fa9449f7b6a151a0faedb8c0177a4091.png](https://i-blog.csdnimg.cn/blog_migrate/6004afb2ff5f92a94b181b7716877638.jpeg)
综上所述,最初我得到了272美元的奖励。但同时我被告知,如果我能对dom进行访问,那我会得到一个更高的奖励,所以我当然要继续挑战下去。我和Brutelogic(Brute)讨论了一下,问他是否知道绕过这个限制的技术,他告诉我可以去看一下他的XSS备忘表。而在阅读文档时,我看到了这样一个payload:
![da5e7729ff1a7ce11a2d7c1920c1128f.png](https://i-blog.csdnimg.cn/blog_migrate/76ca240f4c8d329ef4bd726f4ea3a1ae.png)
这个payload成功帮我访问到了domain。于是我重新提交了漏洞,证明了我能对dom进行访问,最后获得了额外的60美元奖励。不过,我还要继续。
在早些时候,我在漏洞奖励范围内的另一个子域上发现了一个Self-XSS。这个XSS是将被ba se64编码的payload放入会话cookie中的某个参数而产生的。通常,基于cookie的XSS漏洞是很难利用的,除非攻击者可以设置cookie值。但幸运的是,我已经知道了上面的XSS漏洞。
除此之外,我还有另外一个限制,那就是我的payload不能有太多字符,否则会失败。因此我知道,要使这种XSS攻击成功,我必须从外部引入js文件,否则payload太长就无法生效。但是,我注意到目标页面使用了jQuery,利用它我就可以嵌入一个足够短的payload。下面是我使用的payload:
![20605a609fb7397a1cb6c42ef8cb4b1b.png](https://i-blog.csdnimg.cn/blog_migrate/d811b58f28020e62a6fa8327ab061182.png)
现在,我需要做的就是将我编写前端js文件托管在公网上,它的主要功能是重设cookie中某个参数的值,具体代码如下:
![dfe1f8f5deaa9f5122256cde033b1e0a.png](https://i-blog.csdnimg.cn/blog_migrate/625cf8d9ce63bbc00469a39bbb14eb2d.jpeg)
上面图片中的代码用标题文本替换了网页,标题文本上写着“单击下面的按钮以继续”。当受害者单击按钮时,它会将cookie中的某个值设置为以下被ba se64编码的字符串:
![709ca0f9cb327345bbe569e4c9551596.png](https://i-blog.csdnimg.cn/blog_migrate/b03b96f02f753c08ffdbd2fea28d8e58.png)
明文如下:
![ab36c3f260f78b74c92b86fdf0fc1882.png](https://i-blog.csdnimg.cn/blog_migrate/1116642d90c34ed94e825195fa07d8dd.png)
总之,我认为这是一个非常有趣的漏洞利用链,我遇到了很多限制,但最后还是绕过了全部限制。最后,我从这个Self-XSS得到了616美元的奖励,因为我把这个Self-XSS变成了一个高危XSS。正是因为一开始的272美元+60美元漏洞,使得这个漏洞的实际利用成为可能。
来源:从Cookie中的Self-XSS到高危XSS|NOSEC安全讯息平台 - NOSEC.ORG
白帽汇从事信息安全,专注于安全大数据、企业威胁情报。
公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。
为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。