漏洞概要
关注数(24)
关注此漏洞
漏洞标题:Discuz!从CSRF全员XSS到脱裤与任意SQL执行(附POC主要谈修复方式)
提交时间:2015-01-26 10:37
修复时间:2015-04-26 10:38
公开时间:2015-04-26 10:38
漏洞类型:CSRF
危害等级:中
自评Rank:10
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2015-01-26: 细节已通知厂商并且等待厂商处理中
2015-01-29: 厂商已经确认,细节仅向厂商公开
2015-02-01: 细节向第三方安全合作伙伴开放
2015-03-25: 细节向核心白帽子及相关领域专家公开
2015-04-04: 细节向普通白帽子公开
2015-04-14: 细节向实习白帽子公开
2015-04-26: 细节向公众公开
简要描述:
Discuz! 从CSRF全员XSS到脱裤&任意sql执行(附POC,主要谈修复方式)
详细说明:
首先是一个CSRF:
url:/admincp.php?action=members&operation=newsletter&username=%2A&uid=0&srchemail=®datebefore=®dateafter=&postshigher=&postslower=®ip=&lastip=&lastvisitafter=&lastvisitbefore=&lastpostafter=&lastpostbefore=&birthyear=&birthmonth=&birthday=&lower[credits]=&lower[extcredits1]=&lower[extcredits2]=&higher[credits]=&higher[extcredits1]=&higher[extcredits2]=
POST内容:
formhash=&scrolltop=&anchor=&subject=%3Cscript%3Ealert%28%2Fxss%2F%29%3B%3C%2Fscript%3E&message=test&sendvia=pm&pertask=100&newslettersubmit=%E6%8F%90%E4%BA%A4
给出一个简单的POC:
成功提交
前台所有成员均受到被X影响
那下面说一下怎么利用这个XSS,其实这个XSS是很好利用的,既然我们有了XSS,后台任意操作只需要拿到formhash即可,那么给出POC:
只要把这段js代码通过CSRF发送给论坛全部会员(包括所有管理),即可成功利用脱裤。
并且可以执行任意sql
漏洞证明:
修复方案:
我们先来谈一下风险,这个漏洞从一开始挖掘就开始做风险评估,要结合CSRF和XSS才可以利用的一个漏洞,到底有没有价值呢?
1.首先最鸡肋的就是这个CSRF,要管理员访问指定页面才可以达到目的。不过我们反过来想一下,如果是针对性非常高的攻击,再结合一些社工方法,仅仅让管理员访问一个页面应该是问题不大的。
2.访问页面后,XSS已经发送给所有用户。管理员在不知情的情况下,看到有新消息,应该是毫不犹豫地打开提醒,XSS即可被触发。
需要管理员互动,但是会造成很大的风险。根据DREAD模型,取最高威胁风险值为4。
Damage Potential:可造成执行所有后台操作的风险(脱裤、sqlshell等),4。
Reproducibility:过程比较繁琐,1。
Exploitability:漏洞利用条件相对复杂,2。
Affected users:影响所有用户,4。
Discoverability:知情者较容易发现,3。
那么Impact = D(4) + R(1) + E(2) + A(4) + D(3) = 14
Likelihood取70%的可能性利用成功。
即最后Risk = Likelihood * Impact = 70% * 14 = 9.8,取10
最后我们来谈一下修复。
1.首先那个CSRF操作要判断formhash,不多说了。主要来谈一下如何解决一旦有XSS就可以伪造执行任意后台请求的问题。
2.最简单的方法就是搞个验证码,在验证码不被识别的情况下基本不可能达到目的。
3.其次还有一种方法,在每个页面的URI里都加上token,并且每次访问均不同。
在点右上角的“管理后台”访问admincp.php的时候,URI里带有生成好的token(并且仅当前页面访问有效,重新访问页面后过期),如果已经登陆,即可直接访问后台,未登陆需登陆后访问后台。
如果直接键入url(比如http://host.com/admincp.cp),URI中不带有token,即需要重新登陆后生成token,才可访问后台。
在访问后台后,每个页面(所有页面,不仅仅是请求页面)都带有token,如果通过直接访问url的方式(即URI中不带有token)访问某个页面或执行操作,则还需要重新登陆后台,才可以访问。
这样的方式对程序员写代码相对复杂一些,但是这样的方式可以保证即使存在XSS,也不会被抓取到页面中的formhash去伪造请求。应该是可以保证100%安全的。
4.不知道你们理解了没,我的表达可能不是太准确。如果有不明白的地方可以问我。
版权声明:转载请注明来源 zph@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2015-01-29 17:05
厂商回复:
非常感谢你提出的问题和解决方案,我们尽快对这个问题进行修复
最新状态:
暂无
漏洞评价:
评论
-
2015-01-26 10:38 |
黑色的屌丝 ( 路人 | Rank:27 漏洞数:5 | →_→→_→)
-
2015-01-26 10:38 |
黑色的屌丝 ( 路人 | Rank:27 漏洞数:5 | →_→→_→)
-
2015-01-26 10:38 |
黑色的屌丝 ( 路人 | Rank:27 漏洞数:5 | →_→→_→)
-
2015-01-26 10:38 |
蛇精病 ( 路人 | Rank:23 漏洞数:10 | 你连棒棒糖都没有,还谈什么狗屁爱情?)
-
2015-01-26 10:39 |
疏懒 ( 普通白帽子 | Rank:359 漏洞数:42 | 不能尽如人意,但求知足常乐~!)
-
2015-01-26 10:39 |
蛇精病 ( 路人 | Rank:23 漏洞数:10 | 你连棒棒糖都没有,还谈什么狗屁爱情?)
-
2015-01-26 10:41 |
M4ster ( 实习白帽子 | Rank:39 漏洞数:7 | www.m4ster@gmail.com)
-
2015-01-26 10:41 |
子非海绵宝宝 ( 核心白帽子 | Rank:1044 漏洞数:106 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)
-
2015-01-26 10:43 |
刘海哥 ( 普通白帽子 | Rank:114 漏洞数:28 | 索要联系方式但不送礼物的厂商定义为无良厂...)
-
2015-01-26 10:49 |
泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)
-
2015-01-26 10:50 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)
-
2015-01-26 10:54 |
Vinc ( 普通白帽子 | Rank:120 漏洞数:22 | :))
-
2015-01-26 11:04 |
B1acken ( 普通白帽子 | Rank:174 漏洞数:56 | 渣渣)
-
2015-01-26 11:13 |
mó-wáng ( 路人 | Rank:2 漏洞数:2 | hello ,world !)
-
2015-01-26 11:16 |
D_in ( 普通白帽子 | Rank:413 漏洞数:62 | 到我嘴里来)
-
2015-01-26 11:19 |
帅气小狼狗 ( 路人 | Rank:8 漏洞数:2 | 汪汪汪)
-
2015-01-26 11:22 |
疯狗 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)
-
2015-01-26 11:38 |
蛇精病 ( 路人 | Rank:23 漏洞数:10 | 你连棒棒糖都没有,还谈什么狗屁爱情?)
-
2015-01-26 13:35 |
zph ( 普通白帽子 | Rank:235 漏洞数:43 )
@疯狗 哈哈,xss不好防范,因为需要过滤的地方实在是太多了。但是这种方法应该可以比较有效的防范在有xss的情况下formhash不被窃取。虽然谈不上完美,但是能给大家一个参考,也能让比较关注这方面的厂商有一个初步的解决方案。
-
2015-01-26 14:11 |
呼呼大侠 ( 路人 | Rank:6 漏洞数:2 | 一只默默学习的菜菜)
-
2015-01-26 23:34 |
Coffee ( 普通白帽子 | Rank:144 漏洞数:15 | Corie, a student of RDFZ.)
-
2015-01-27 14:24 |
cinba ( 路人 | Rank:21 漏洞数:12 | @horizon sec RDFZ)
-
2015-01-28 23:30 |
Haswell ( 普通白帽子 | Rank:167 漏洞数:18 | HorizonSec @ RDFZ)
-
2015-01-29 17:44 |
拉手网(乌云厂商)
-
2015-01-29 22:09 |
橘子 ( 路人 | Rank:0 漏洞数:3 | 呢个...羞射高中生一枚。带上大神@Haswell...)
-
2015-04-26 10:58 |
M4st ( 路人 | Rank:0 漏洞数:1 | 淡退安全 创业Ing~~)
-
2015-04-26 11:08 |
七寸往事 ( 实习白帽子 | Rank:60 漏洞数:17 | <script>alert(document.cookie)</script>)
-
2015-04-26 11:23 |
腹黑 ( 路人 | Rank:14 漏洞数:10 | (◦ "̮ ◦))
-
2015-04-27 02:30 |
写个七 ( 路人 | Rank:4 漏洞数:1 | 一点一点积累。)
-
2015-04-27 08:40 |
Fire ant ( 实习白帽子 | Rank:73 漏洞数:26 | 他们回来了................)