漏洞概要
关注数(24)
关注此漏洞
漏洞标题:Discuz跨域数据劫持+附件类型限制绕过
提交时间:2014-06-17 14:28
修复时间:2014-09-15 14:30
公开时间:2014-09-15 14:30
漏洞类型:文件上传导致任意代码执行
危害等级:中
自评Rank:10
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-06-17: 细节已通知厂商并且等待厂商处理中
2014-06-17: 厂商已经确认,细节仅向厂商公开
2014-06-20: 细节向第三方安全合作伙伴开放
2014-08-11: 细节向核心白帽子及相关领域专家公开
2014-08-21: 细节向普通白帽子公开
2014-08-31: 细节向实习白帽子公开
2014-09-15: 细节向公众公开
简要描述:
两个凑一块发了
详细说明:
#1 跨域数据劫持(csrf token formhash盗取)
下载远程附件功能不会对文件内容(文件格式)进行检测导致可以上传恶意的swf文件(扩展名还是图片扩展名),进而进行跨域数据劫持:
伪造图片CrossDomainDataHijack.jpg相关代码:
POC页面相关代码:
获取formhash截图:
#2
绕过附件类型限制用到的是上次有讲到的Hacking with Unicode上面的小trick。这个算BUG吧,算不上安全漏洞 起码暂时我还没能把它联系到漏洞上面。可以选择性修复:
测试:
成功绕过:
漏洞证明:
修复方案:
1.对于加载远程附件功能也加上检测文件格式的流程
2.第二个问题可以选择性修复
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2014-06-17 15:11
厂商回复:
感谢您提供的信息。我们会尽快确认并修复。问题2应当不会造成什么安全威胁,虽然绕过了文件名的检测,但是上传的文件在实际存储的时候,我们会使用随机文件名和固定的后缀。dz目前尚未严格要求文件后缀与文件内容必须一致,这个判断过于复杂且必要性不大。
最新状态:
暂无
漏洞评价:
评论
-
2014-06-17 14:38 |
D&G ( 普通白帽子 | Rank:523 漏洞数:103 | going)
-
2014-06-17 14:39 |
mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )
-
2014-06-17 15:57 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)
第二个意思就是说就算你传个shell你也找不到连接的地址。。。
-
2014-06-18 16:08 |
Coxxs ( 实习白帽子 | Rank:34 漏洞数:8 | 节操数:233 | ww)
@px1624 而且后缀貌似会被改成无关的后缀,就是说不能执行
-
2014-06-23 04:41 |
mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )
@Coxxs 其实还是文件名的问题。关键是文件名还算够随机即使因为被改了扩展名不能getshell,但对于*.attach这种无法识别的扩展名来说是会根据文件内容进行解析的。如果能找到文件名,就是存储型XSS了当然这个只是买方便面送的调料包而已……用不用就看个人了
-
2014-06-23 08:44 |
D&G ( 普通白帽子 | Rank:523 漏洞数:103 | going)
@mramydnei *.attach会直接当成flash执行么,直接访问的话?
-
2014-06-23 08:55 |
mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )
@D&G 那到没有…… *.attach的内容是<script>alert(1)</script>的话会当text/html解析
-
2014-06-23 09:07 |
D&G ( 普通白帽子 | Rank:523 漏洞数:103 | going)
-
2014-06-23 23:22 |
Coxxs ( 实习白帽子 | Rank:34 漏洞数:8 | 节操数:233 | ww)
@mramydnei 这要看服务端配置了,比如nginx默认配置,对于未知扩展名,返回application/octet-stream,浏览器就会直接下载.attach文件。只有服务端设置,对于未知文件,返回text/html,才有可能吧。(不过这样设置应该算是有安全问题的)
-
2014-06-23 23:25 |
mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )
@Coxxs nginx我没配过 我的apache下(默认设置)确实是会解析成text/html看来有点以偏概全了 thx!
-
2014-06-24 00:58 |
mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )
@Coxxs 比对看了一下Apache的DefaultType 默认值是NoneNginx对非mime.types成员默认是application/octet-stream看来确实存在差异
-
2014-08-22 19:50 |
xsser_w ( 普通白帽子 | Rank:112 漏洞数:33 | 哎)
-
2015-04-10 17:08 |
盛大网络(乌云厂商)
https://speakerdeck.com/mathiasbynens/hacking-with-unicode
-
2015-04-13 10:18 |
_Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)