漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0153731
漏洞标题:iwebshop 盲注一枚(附exp)demo复现
相关厂商:www.jooyea.cn
漏洞作者: 一只寂寞的小鸟
提交时间:2015-11-23 12:53
修复时间:2015-12-17 14:48
公开时间:2015-12-17 14:48
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:10
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-11-23: 细节已通知厂商并且等待厂商处理中
2015-11-23: 厂商已经确认,细节仅向厂商公开
2015-11-26: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航)
2016-01-17: 细节向核心白帽子及相关领域专家公开
2016-01-27: 细节向普通白帽子公开
2016-02-06: 细节向实习白帽子公开
2015-12-17: 细节向公众公开
简要描述:
这下有exp了 不鸡肋了 求过
多谢猪猪侠的美丽说盲注脚本
详细说明:
simper控制器下的 find_password_mobile方法
//手机短信找回密码
function find_password_mobile()
{
$username = IReq::get('username');
if($username === null || !Util::is_username($username) )
{
IError::show(403,"请输入正确的用户名");
}
$mobile = IReq::get("mobile");
if($mobile === null || !IValidate::mobi($mobile))
{
IError::show(403,"请输入正确的电话号码");
}
$mobile_code = IReq::get('mobile_code');
if($mobile_code === null)
{
IError::show(403,"请输入短信校验码");
}
$userDB = new IModel('user as u , member as m');
$userRow = $userDB->getObj('u.username = "'.$username.'" and m.mobile = "'.$mobile.'" and u.id = m.user_id');
if($userRow)
{
$findPasswordDB = new IModel('find_password');
$dataRow = $findPasswordDB->getObj('user_id = '.$userRow['user_id'].' and hash = "'.$mobile_code.'"');
if($dataRow)
{
//短信验证码已经过期
if(time() - $dataRow['addtime'] > 3600)
{
$findPasswordDB->del("user_id = ".$userRow['user_id']);
IError::show(403,"您的短信校验码已经过期了,请重新找回密码");
}
else
{
$this->redirect('/simple/restore_password/hash/'.$mobile_code);
}
}
else
{
IError::show(403,"您输入的短信校验码错误");
}
}
else
{
IError::show(403,"用户名与手机号码不匹配");
}
}
gpc开了等于没开。 他会把反斜杠去掉 然后用自己的方法去过滤注入
利用条件 能注册普通会员即可 废话。
mobile_code 这个方法没过滤
漏洞证明:
本地测试
这是百度找的一个站 没设置发包间隔时间 但是看到还是出来了。
看下demo 设置了发包间隔时间 返回有点慢额 貌似不太对 一会能访问一会不能访问 好烦 就这样看吧(貌似我写的代码也有问题 →_→ 见谅)
POST
http://**.**.**.**/index.php?controller=simple&action=find_password_mobile
username=123321&mobile=18900890089&mobile_code=123
修复方案:
过滤
版权声明:转载请注明来源 一只寂寞的小鸟@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2015-11-23 13:58
厂商回复:
感谢提交,我们会尽快修正
最新状态:
暂无