分析叽歪的 CSRF 漏洞

作者:mingcheng 来源:gracecode.com 时间:2009-02-09 14:26:00 

声明,此漏洞已提交叽歪官方处理(2009-02-05),本案例仅作技术研究。由此漏洞造成的所有后果,本人不承担任何责任。

参加集团“精武门”安全峰会时,80sec 团队对于饭否的 CSRF 蠕虫攻击案例还记忆犹新。抱着对比的心态,逐个检测国内各微博客类站点的安全性能,最终“很不幸”的锁定到了叽歪上。

分析叽歪页面发布信息页面的表单,结果发现全部都是交给 updateStatus 方法处理,如图

那么我们来看下 updateStatus 的脚本是怎么写的(通过这个脚本,也可大体的了解叽歪的 API):

发现 updateStatus 的脚本非常简单,就是检测下 textarea 的值是否为空(其实那样敲几个空格就可以绕过),然后就提交给服务器处理。而且逻辑上似乎有问题,返回的都是 false (或许是为了防止事件冒泡)。

既然 Javascript 方面没有增加额外的提交参数,这说明在 Javascript 禁用的情况下提交表单服务器那边也是能处理的。那么,根据叽歪发布页面的表单,尝试本地构建个同样的表单发送叽歪信息

<form action="http://jiwai.de/wo/status/update" method="post">
    <textarea name="jw_status" ></textarea>
    <input type="submit" />
</form>

结果成功了。这表明有存在 CSRF 的可能 -- 用户可以自行表单,发送信息给叽歪服务器处理,并且没有任何验证信息。

然后,非常“ * ”地将 POST 方式改成 GET 尝试,结果发现又成功了。看来叽歪的接口没有区分 POST 和 GET,那么这样攻击的危害更扩大了层。

根据这个漏洞,简单的写了个本地 Javascript 脚本,尝试每隔一秒发送叽歪信息

setInterval(function() {
    var img = new Image();
    var message = '明城很帅';
    var api = 'http://jiwai.de/wo/status/update';
    img.src = api + '?jw_status=' + message + '&t=' + new Date().getTime();
}, 1000);

剩下就是社会学的范畴了。想到 沉鱼 小姑娘是叽歪的重度用户,于是让她打开这个页面(这时候,相貌是多么的重要)。

结果自然是预期所想的,顺便发现叽歪也没有限制发送信息的频率。就这样打住,通过这个漏洞进行蠕虫等进一步攻击等已是唾手可得。

最后,啰嗦下防范 CSRF 攻击的“军规”:

  1. 在请求中使用 Security token

  2. 正确使用 GET、POST 和 Cookie

  3. 使用 Referer 判断请求来源

后记

截止发文时(2009-02-07),叽歪已经修复了该漏洞,增加了个 Security token :

<input type="hidden" value="..." name="crumb" />

标签:叽歪,饭否,CSRF,漏洞,安全
0
投稿

猜你喜欢

  • 做网赚的必备心态

    2010-05-10 18:22:00
  • 站长小心:欺诈度极高的伪造EMAIL

    2008-06-09 14:33:00
  • 详解在Linux中怎么使用cron计划任务

    2021-04-10 19:14:53
  • Win 2000检测系统安全清单(4)

    2007-09-21 15:21:00
  • 转载与引用,抄袭与盗链

    2007-11-16 16:07:00
  • 【组图】什么是ARP?如何防范ARP欺骗?

    2007-08-06 20:24:00
  • Google官方:按照AdSense要求投放广告代码

    2009-01-20 13:08:00
  • 七夕、立秋、奥运前夕

    2008-08-08 12:35:00
  • 月光:Google AdSense的技巧和心得

    2008-02-26 09:38:00
  • Zabbix监控交换机设置方法

    2022-12-25 11:56:23
  • Exchange服务器的通信端口管理

    2010-03-03 13:58:00
  • Google限定AdSense广告中可点击的区域

    2007-11-15 12:20:00
  • 网站擅播奥运节目赔30万

    2009-10-14 15:28:00
  • 值得回味 进行全站优化必须做的26件事情

    2009-01-05 15:04:00
  • VMware ESXi OpenSLP 堆溢出漏洞(CVE-2021–21974)问题分析

    2022-09-24 07:24:56
  • 一个应届生的应聘:直飞Google总部

    2007-10-12 18:55:00
  • VMWare中Ubuntu重启后无法上网的解决方法

    2023-01-21 16:29:28
  • 一位笨笨的程序员向站长老板的成功转型

    2007-09-30 13:33:00
  • Trash-Cli:Linux上的命令行回收站工具

    2023-08-06 21:09:52
  • 网站流量虽少 只要选对了广告照样赚钱

    2010-05-10 11:40:00
  • asp之家 网站运营 m.aspxhome.com