Self XSS到存储型XSS
Posted 阿里安全响应中心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Self XSS到存储型XSS相关的知识,希望对你有一定的参考价值。
此文为翻译文章
原文链接:
https://nahoragg.github.io/bugbounty/2018/12/15/Self-XSS-to-Interesting-Stored-XSS.html
rohan aggarwal@nahoragg(Twitter)
恭喜翻译作者mntn获得转发奖励
价值100元的天猫超市享淘卡一张
欢迎更多优质原创、翻译作者加入
我在Hackerone的一个程序中找到了这个XSS。关于这个存储型XSS的有趣之事在于:它反映了我尝试通过某种办法升级self-xss,好运眷顾,我成功了。
不过我不能透露这个程序的名字,因为他们要求不要,但是如果你发现了它,我并不感到惊讶。
那么让我们来看看这个网站,我们称之为redacted.com
我在redacted.com上耗费了几个小时,试图在上面得到一个xss漏洞,但即使我找到了一个,它也会因为网站正确编码了所有内容而变成一个self-xss。
这不是一个大型网站,在每个端点尝试了XSS后,我放弃了,继续查找其他漏洞。
第二天,我在HackerOne读到了一篇关于AngularJS的模板注入的文章,并且我所遇到的情况与其相似,我之前并不知道还有这种操作。回到redacted.com,它也运行AngularJS。
所以我尝试了一个简单的表达式,如{{4*4}}
如果不进行编码就会显示16,最后找到一个不进行编码的地方。现在我可以使用这个payload来产生xss了
好极了!!!我发现了XSS,一分钟后我意识到。。。。DAMN,这是一个self-xss!
现在怎么办???
经过了几个小时的搜索之后,我找到了一个有趣的地方,它正在执行并且不需要任何的身份验证。
介绍下这个有趣的程序的背景:它有一个通过电子邮件发送报告的功能(无论这个网站在做什么),我们可以给报告自定义敏子。这些报告是敏感的,只有能由经过身份验证的用户查看。我之前找到的那个self-xss是存在于报告的名称之中,由于报告只能由经过身份验证的用户查看,即只能我自己查看,无法在其他用户的报告上执行,所以才只是一个self-xss,但真的是这样吗?
我利用了这个功能,向我的邮箱发送了一个报告,发现一个小的取消订阅连接隐藏在角落里
打开链接,BOOM!它显示了报告的名字,没有经过任何身份验证!
柳暗花明了!报告的名称可控并且存在xss,任何人都可以看到这个名称,那么它有可能从一个self-xss升级成存储型xss!
是时候测试它是否编码了大括号
回到发送报告功能,将报告名称命名为之前的payload:
并且保存发送,再次打开取消订阅的链接,BOOM!这是一个存储型XSS。
现在,任何人都可以打开取消订阅链接,xss将被执行。无论受害人是否经过身份验证,这适用于任何人。
Lesson Learned:
1、查看应用程序上正在运行的技术并找到它们特定的漏洞
2、无聊的时候多看看hackerone披露的报告
3、Try Harder On Everything In Application,我阅读了很多文章,但是从没有遇到过在电子邮件取消订阅链接中获得xss的经历,我本来可以报告self-xss,虽然我花了更多时间,不过我很幸运,因此收获了更多。
2018年11月26日阿里集团、蚂蚁、菜鸟、饿了么安全响应中心及阿里云先知联合推出ASRC统一平台,由五方组成的太阳联盟是其运营机制的核心。
太阳联盟用户成长体系集五家运营团队的诚意于一身,力图为白帽子营造一个边挖洞边学习,且能阶段性收获结果的成长环境,让白帽的安全之路不仅限于挖洞,可以走的更久更长远。欢迎更多的白帽子小伙伴们加入ASRC统一平台,成为太阳联盟的一员。
ASRC统一平台将不断发布优质的技术文章,希望白帽子小伙伴们可以有所收获!
——ASRC统一平台
更
多
精
彩
请猛戳右边二维码
Twitter:AsrcSecurity
阿里安全响应中心
以上是关于Self XSS到存储型XSS的主要内容,如果未能解决你的问题,请参考以下文章