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了

Self XSS到存储型XSS

好极了!!!我发现了XSS,一分钟后我意识到。。。。DAMN,这是一个self-xss!

Self XSS到存储型XSS

现在怎么办???

经过了几个小时的搜索之后,我找到了一个有趣的地方,它正在执行并且不需要任何的身份验证。

介绍下这个有趣的程序的背景:它有一个通过电子邮件发送报告的功能(无论这个网站在做什么),我们可以给报告自定义敏子。这些报告是敏感的,只有能由经过身份验证的用户查看。我之前找到的那个self-xss是存在于报告的名称之中,由于报告只能由经过身份验证的用户查看,即只能我自己查看,无法在其他用户的报告上执行,所以才只是一个self-xss,但真的是这样吗?

我利用了这个功能,向我的邮箱发送了一个报告,发现一个小的取消订阅连接隐藏在角落里

Self XSS到存储型XSS

打开链接,BOOM!它显示了报告的名字,没有经过任何身份验证!

Self XSS到存储型XSS

柳暗花明了!报告的名称可控并且存在xss,任何人都可以看到这个名称,那么它有可能从一个self-xss升级成存储型xss!

是时候测试它是否编码了大括号

回到发送报告功能,将报告名称命名为之前的payload:

Self XSS到存储型XSS

并且保存发送,再次打开取消订阅的链接,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的主要内容,如果未能解决你的问题,请参考以下文章

存储型xss调研

Web安全原理剖析(十五)——存储型XSS攻击

存储型XSS与反射型XSS有啥区别

存储型XSS与反射型XSS有啥区别?

信安小白,一篇博文讲明白存储型反射型XSS漏洞

XSS