警惕Third Party Content攻击 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    作者:SuperHei

    "对于web应用程序,很多程序为了实现一些功能比如程序升级/提醒,还有广告什么的都直接在程序里使用了Third Party Content,那么当官方等站被黑时,基本使用你程序的用户都被xx了,这个以后也有可能和crsf一样成为一种vul呢?"

    上面的文字引用于年前的一个blog:http://hi.baidu.com/hi_heige/blog/item/2700f9f93bc2d209d9f9fdbe.html,没想到今天就有了实际例子了.今天n多dz论坛被挂上了"Hacked by ring04h, just for fun!",引起很大关注,最开始基本上都是认为dz的程序出现了非常严重的漏洞,但是等官方的声明一出来,原来只是"Discuz!服务器域名被劫持"....

   

    其实我觉得这样的问题,应该把他归为程序的vul[还有crsf也是],而且除了这个问题ring04h还利用了其他的一些'漏洞'

    第一 Third Party Content

    Discuz!_5.5.0_SC_GBK\upload\admin\global.func.php直接调用了第三方的js:

    00436: $posts = $db->result($db->query("SELECT COUNT(*) FROM {$tablepre}posts"), 0);

    00437: $msns = $db->result($db->query("SELECT COUNT(*) FROM {$tablepre}memberfields WHERE msn!=''"), 0);

    00438: echo '';

    直接用的script标签.

    第二 变量缺少过滤

    记得ms有句名言:"一切输入都是有害的",但是对于web2.0的猥琐攻击时代,对于那些注意安全的程序员来说已经不够用了.我们应该另外加一句话了:

    "一切输出也都是有害的"

    ring04h攻击代码里的playload其实就是用了一个后台插入js的问题,而前台对这个值的输出是没有过滤的,导致再一次被xss,具体到这次的代码:

   

    ring04h还是比较厚道的 只是write了一句话,如果给他挂个马 不知道要死多少pc...

    我们小结下这次攻击的流程:

    1.ring04h控制了customer.discuz.net[这里不官他是域名劫持还是其他什么方法!:)]

    2.构造自己的js[利用ajax技术结合上面说的变量输出未过滤的问题实现插入js修改主页]

    3.等待管理员登陆访问后台,然后执行了构造的js

    给我们的一些提示:

    1.如果dz代码里不直接使用Third Party Content,或者对Third Party Content的内容进行过滤后使用呢?

    2.如果customer.discuz.net足够安全呢?

    3.如果我所有输入输出的变量都严格过滤了呢?

    对于2来说这个是太难了,这里也涉及到一个攻击的成本与利润的问题,如果攻击者有商业利益驱使,他即使发大点的代价去黑了你这个3方内容的主机也是值的,因为他一旦成功就可以控制你所有的客副..[估计以后各大官方的升级主机可能是' '的目标]

    第3这个 还有很多的程序员不知道过滤变量,尤其是输出的东西也需要过滤.

    所以对于开发者来说,第1个是最方便有效果的方法? 不过同时还得注意程序员的安全意识的培养.

    说点8挂:

    1.为什么sodb那么多漏洞,都没有这次那么被关注呢?

    2.dz的竞争对手门,没有放过这次好机会,但是他们不知道,其实他们自己的程序主机一样有相同的问题 :)[看热闹或者起哄的同时想想自己!!]

    3.出动了人肉搜索:http://18dao.jamesqi.com/index.php?title=Ring04h%E5%9F%9F%E5%90%8D&variant=zh-tw

    最后感谢ring04h给我们提供了一个这么好的实际例子,并分享演示了他的测试过程 thx.

最新文章