1.Phpcms
Phpcms 中有个phpsso_server
爆破一次之后,不管帐号密码是否正确,Session中的code值不会刷新。
登录页面不能再打开,如果打开之后,会打开验证码的页面,然后code值就变化了。
而且如果用户名不对 输出 用户名没有找到
密码不对 输出 密码错误
根据上面的原理 ,我们可以在输入一次正确的验证码之后,然后导入到intruder模块中进行爆破。
So
爆破方法:输入一次正确的验证码,然后抓包
爆破目标:帐号+密码(分次)
2.Espcms
先说下espcms的防护措施,有验证码和token。
验证码的值是根据cookies中ecisp_seccode来进行判断的,所以我们在输入一次正确的验证码之后,直接爆破就行。
在来说下token的问题,如果正常重复发包的话,会提示。 提交数据过期,请重新提交。
这可以这样绕过,直接把token这一向删除掉不让提交,然后就绕过了。原因是代码中大概是这样写的。
if($_POST['token']){
判断token是否正确
}
所以删除掉就绕过了。
So
爆破方法:输入一次正确的验证码,抓包,去除掉token这一项
爆破目标:帐号+密码
3.Cmseasy
这个后台登录是这样的 第一次登录,登录失败的话,然后会出来一个
Loginfalse*****的cookies,然后再次尝试登录的时候就出现了 验证码。
我们只需要第一次尝试登录的时候就进行抓包,然后爆破就行。
So
爆破方法: 第一次尝试登录抓包
爆破目标:帐号+密码
4.PHPYun
这个的问题就是登录一次之后,没有重新刷新下session中验证码的值,导致可以重复以一个验证码进行发包爆破。
So
爆破方法:输入一次正确的验证码,抓包
爆破目标:帐号+密码
5.qibocms
没有任何限制,直接爆破。
So
爆破方法:抓包
爆破目标:帐号+密码
6.74人才系统
这个默认是不开启验证码的,我们去后台开启验证码。
输入一次正确的验证码之后登录,密码错误之后,只要不再运行验证码这个文件,验证码值就不会被刷新。
So
爆破方法:输入一次正确验证码,抓包
爆破目标:帐号+密码
7.phpwind8.7
没有验证码的话,一个ip只能爆破15次,不过是用xff来获取的。我们可以修改xff的ip地址,来进行爆破。
下面我们来说有验证码的,验证码和cookies中的*_cknum这个值有关系。
所以只要我们输入一次正确的验证码,便可以一直爆破下去。
当然一个ip地址有15次机会。我们可以生成一些ip地址。然后再进行爆破
而帐号可以在这个地址http://localhost/phpwind8/u.php?uid=1获取
So
爆破方法:输入一次正确的验证码,抓包。爆破时注意修改xff的值。
爆破目标:密码
Ip地址这要注意取消这个,要不 . 会被urlencode。
下面来说下对后台爆破的防护,以及怎么绕过、
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.根据用户名取次数
这种方法是根据用户名来判断错误次数,超过次数的话就限制一定时间不让这个用户登录。还真不知道咋爆破。。。
可是如果这样设置的话,知道管理员用户名是什么,然后设置好时间发包,这样的话管理员就无法登录后台了。
解决方案:
过滤