A-A+

SN 储存XSS + csrf 打造全站千万级别蠕虫

2017年06月17日 14:40 漏洞安全 暂无评论 共1875字 (阅读2,993 views次)

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

先看一下某活动吧,浏览量简直爆棚。

为了隐藏一部分信息,所以调用百度百科。跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

活动专题

从这里应该可以看到浏览量了吧,先不说浏览量了。直接切入正题。首先问题出在评论处。如下图:

文章评论处

因为以前讲过苏宁WAF绕过方法,所以可以直接利用绕过方法,这个时候直接数据抓包。

评论数据抓包

可以看到这个提交评论是一个GET请求。直接提交JSON格式的数据就可以,很明显,没有任何其他验证,CSRF没跑了。对吧。但是从返回的数据也可以看到,数据提交失败了,对吧。

仔细观察发现,代码如下:

http://xxxx.suning.com/higou/comment/private/jsonp/addComment.do?data={contentId:2513620707,comment:'<object data='data:text/html;base64,xxxxxx'>'}&_=1497675101099&callback=jsonp4

通过这个代码发现,提交的JSON数据包里面的符号跟对方的起了冲突,咱们数据用的是单引号,而JSON数据包也用的是单引号,所以咱们可以改一下双引号,但是!!!注意上图返回数据,上图返回的json数据都是双引号,所以如果咱们提交的数据包中含有双引号,那么双引号会被转义前面则会自动加上\,这个问题相信大家都了解。

所以解决办法就是,调换一下,咱们提交的json数据包是双引号,恶意XSS代码用单引号。

http://xxxx.suning.com/higou/comment/private/jsonp/addComment.do?data={contentId:2513620707,comment:<object data='data:text/html;base64,xxxxxx'>}&_=1497675101099&callback=jsonp4

注意上方的编号,我已经用特殊背景颜色标注了。

最后如图,咱们的恶意代码已经成功提交:

储存XSS 恶意代码成功入库

剩下的就简单了,咱们返回看一下

成功加载储存XSS code

既然咱们的XSS代码可控,那么它还存在CSRF,咱们何不写个脚本。利用一下,做个蠕虫。

如图:

利用CSRF+储存XSS结合

利用CSRF+储存XSS结合

只要用户加载或访问了 http://xxx.suning.com/higou/comment/jsonp/list_1xxxx23__1_20.do 这个页面

用户就会自动对 其他文章进行评论,示例:http://xxx.suning.com/higou/comment/jsonp/list_4xxxxx3__1_20.do

 

如果采集一下所有文章的ID,然后做个脚本, http://xxx.suning.com/higou/comment/jsonp/list_xx文章IDxx__1_20.do

 

A用户访问A病毒页面,那么会自动在B,C,D,E等页面生成B病毒页面。如果B用户访问B,C,D,E等任意病毒页面,会在F,G,H,K页面生成F,G,H,K病毒页面,以此类推。。最终可致苏宁所有页面全部为病毒页面。会影响用户,会影响618活动等其他问题就自己猜吧。

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言