目前国内各大SRC平台或第三方漏洞奖励平台与漏洞发现者之间或多或少发生过如下情况
类似如上原因也导致很多安全研究员纷纷转至国外平台
目前全球4大漏洞赏金平台分别为Hackerone
、Bugcrowd
、intigriti
、Yeswehack
常见的漏洞奖励和分级,此处为下方漏洞厂商
其他厂商赏金范围
本次就简单说明如何在Bugcrowd
批量发现的漏洞案例,具体的批量大法文末可见
这里以较为冷门且简单的DOM XSS
为例
此处存在预输入的功能
当你输入任意内容时,比如bug
字符,将会自动进行联想搜索并将更多关联内容进行展示
首先通过浏览器查看资源文件
可以看到名称位typeahead
的js文件,而·typeahead
的定为即为预输入,所以重点关注typeahead
文件即可
通过文件内容查看是否存在DOM XSS
点击JS文件,并通过左下角点的{}
按钮将代码进行格式化处理
发现此处js使用到react
,通过谷歌搜索react xss
, 发现如下文章
https://www.stackhawk.com/blog/react-xss-guide-examples-and-prevention/
文章提到dangerouslySetInnerHTML
为危险的功能
直接在js中里面搜索dangerouslySetInnerHTML
,可以发现name
以危险的方式直接输出到页面
继续搜索buildItem
函数,需要确定具体被调用的位置
最后发现它是在fetchTypeaheadData
里面被buildItemList
函数调用
而fetchTypeaheadData
实际上是向某个API发起了请求,将请求到的数据填充到页面
所以只要我们将payload
与name
进行结合在一起即可,最后搜索一下bugc
即可显示最后效果
因预输入的原因,网站会将用户输入的东西进行联想并输出到页面,其中包括了名字,而某些的名字带有XSS荷载,正好
是用dangerouslySetInnerHTML
这种方式输出的,没有经过转义,所以XSS荷载直接被输出到了页面
该页面会展示最近去过哪些地方的功能
查看源码,找到Attractions
按钮对应的DOM元素
搜索onTabClick
找到函数的具体实现未知
注意innerHTML
的值没有经过转义,直接就输出到页面
整个代码的逻辑也非常简单,查看浏览器有没有缓存,有的话将浏览器的值输出到页面,没有向/RecentlyViewed
路径发起请求,查看最近去过的旅游景点,然后将内容没有经过转义直接输出到页面
所以需要先创建名字带XSS荷载的旅游景点,访问并点击Attractions
按钮,即可触发
此处几个案例也都是Bugcrowd上Top大佬批量大法技巧中的一个小点,在这里进行推荐
大佬也创建了自己的星球,里面干货满满,每周都可以学习到不少刷美金技巧和实战案例
目前只是运营初期且初步开放邀请,日后的价格只有涨不会跌!现在入股不亏,后续会考虑将星球设置成终身制
让进入的所有用户永久学习,机不可失失不再来!
SQL注入
基于DOM的存储xss
反射型 XSS
源码泄露
重定向
信息泄露
账户接管
国外的审核很会夸人,说话又好听,忍不住想每天多提交几个P1。快快通过下方的邀请方式加入进来,一起浪起来吧
中文
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。