当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(44) 关注此漏洞

缺陷编号: WooYun-2014-80424

漏洞标题: 多个cms后台可被爆破绕过防护

相关厂商: 多个cms厂商

漏洞作者: JJ Fly

提交时间: 2014-10-25 09:35

公开时间: 2015-04-02 11:05

漏洞类型: 设计缺陷/逻辑错误

危害等级: 中

自评Rank: 10

漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 无

9人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-25: 细节已通知厂商并且等待厂商处理中
2014-10-28: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-12-22: 细节向核心白帽子及相关领域专家公开
2015-01-01: 细节向普通白帽子公开
2015-01-11: 细节向实习白帽子公开
2015-04-02: 细节向公众公开

简要描述:

之前发了 discuz和phpwind(9)的后台爆破。
随后又测试了一些其他的cms,也不刷了 一下发出来了。
Phpcms espcms cmseasy phpyun qibocms 骑士人才系统 phpwind8.7

随后,顺手把cms各种后台爆破的防护总结了一下,以及绕过方法。

详细说明:

1.Phpcms

Phpcms 中有个phpsso_server

爆破一次之后,不管帐号密码是否正确,Session中的code值不会刷新。

登录页面不能再打开,如果打开之后,会打开验证码的页面,然后code值就变化了。

而且如果用户名不对 输出 用户名没有找到

密码不对 输出 密码错误

根据上面的原理 ,我们可以在输入一次正确的验证码之后,然后导入到intruder模块中进行爆破。

So

爆破方法:输入一次正确的验证码,然后抓包

爆破目标:帐号+密码(分次)

图片1.png





2.Espcms

先说下espcms的防护措施,有验证码和token。

验证码的值是根据cookies中ecisp_seccode来进行判断的,所以我们在输入一次正确的验证码之后,直接爆破就行。

在来说下token的问题,如果正常重复发包的话,会提示。 提交数据过期,请重新提交。

这可以这样绕过,直接把token这一向删除掉不让提交,然后就绕过了。原因是代码中大概是这样写的。

if($_POST['token']){

判断token是否正确

}

所以删除掉就绕过了。

So

爆破方法:输入一次正确的验证码,抓包,去除掉token这一项

爆破目标:帐号+密码

图片2.png





3.Cmseasy

这个后台登录是这样的 第一次登录,登录失败的话,然后会出来一个

Loginfalse*****的cookies,然后再次尝试登录的时候就出现了 验证码。

我们只需要第一次尝试登录的时候就进行抓包,然后爆破就行。

So

爆破方法: 第一次尝试登录抓包

爆破目标:帐号+密码

图片3.png





4.PHPYun

这个的问题就是登录一次之后,没有重新刷新下session中验证码的值,导致可以重复以一个验证码进行发包爆破。

So

爆破方法:输入一次正确的验证码,抓包

爆破目标:帐号+密码

图片4.png





5.qibocms

没有任何限制,直接爆破。

So

爆破方法:抓包

爆破目标:帐号+密码

图片5.png





6.74人才系统

这个默认是不开启验证码的,我们去后台开启验证码。

输入一次正确的验证码之后登录,密码错误之后,只要不再运行验证码这个文件,验证码值就不会被刷新。

So

爆破方法:输入一次正确验证码,抓包

爆破目标:帐号+密码

图片6.png





7.phpwind8.7

没有验证码的话,一个ip只能爆破15次,不过是用xff来获取的。我们可以修改xff的ip地址,来进行爆破。

下面我们来说有验证码的,验证码和cookies中的*_cknum这个值有关系。

所以只要我们输入一次正确的验证码,便可以一直爆破下去。

当然一个ip地址有15次机会。我们可以生成一些ip地址。然后再进行爆破

而帐号可以在这个地址http://localhost/phpwind8/u.php?uid=1获取

So

爆破方法:输入一次正确的验证码,抓包。爆破时注意修改xff的值。

爆破目标:密码

Ip地址这要注意取消这个,要不 . 会被urlencode。

图片7.png



图片8.png

漏洞证明:

下面来说下对后台爆破的防护,以及怎么绕过、



1.没有防护

这个直接修改帐号密码进行爆破就行。



2.有验证码

验证码的话,一般都是根据session中的值来进行判断的。

大部分代码如下。

If($_SESSION[‘seccode’]==’’){print ‘验证码为空’;exit();}

if($_SESSION['seccode']!=$seccode){

print '验证码错误';

exit;

}

但是如果是上面这样的代码的话 ,每次效验完之后也不刷新下,那样的话,我们重新发包进行验证即可。

如果他的代码是这样的

If($_SESSION[‘seccode’]==’’){print ‘验证码为空’;exit();}

if($_SESSION['seccode']!=$seccode){

$_SESSION[‘seccode’]=’’;

print '验证码错误';

exit;

}

这样的话,就不能重新发包了。但是可以验证码识别。

如果是cookies中的值的话,更简单,不多说了。



3.有ip爆破次数限制

ip如果是通过 X-Forwarded-For 和 client_ip获取的话,直接修改http头中的信息便可以了。



4.其他登录口

这个就类似于之前提交的phpwind9的后台爆破。默认的登录后台有验证码,另一个登录地址却没有。或者尝试一些其他的api,ajax接口等等。



5.根据用户名取次数

这种方法是根据用户名来判断错误次数,超过次数的话就限制一定时间不让这个用户登录。还真不知道咋爆破。。。

可是如果这样设置的话,知道管理员用户名是什么,然后设置好时间发包,这样的话管理员就无法登录后台了。

修复方案:

版权声明:转载请注明来源 JJ Fly@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-04-02 11:05

厂商回复:

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2014-10-23 12:37 | GHK ( 路人 | Rank:2 漏洞数:1 )
    2

    座等公开。

  2. 2014-10-23 14:11 | 老和尚 ( 普通白帽子 | Rank:223 漏洞数:45 )
    0

    之前发了 discuz和phpwind(9)的后台爆破。 随后又测试了一些其他的cms,也不刷了 一下发出来了。 Phpcms espcms cmseasy phpyun qibocms 骑士人才系统 phpwind8.7 这么牛逼、、、 查查你的id

  3. 2014-10-29 01:15 | debbbbie ( 路人 | Rank:10 漏洞数:2 | 深藏功与名 - A Rubyist)
    0

    坐等公开

  4. 2014-10-29 16:43 | 小薇2013 ( 实习白帽子 | Rank:32 漏洞数:5 | 我就看看我不说话!)
    0

    整理份字典!

  5. 2014-11-14 11:33 | wefgod ( 核心白帽子 | Rank:1829 漏洞数:183 | 力不从心)
    1

    @老和尚 ID是谁

  6. 2015-01-28 19:19 | 木马游民 ( 路人 | Rank:21 漏洞数:9 )
    0

    到此一游,已吸收

登录后才能发表评论,请先 登录