0x00 某CMS验证码逻辑缺陷导致任意注册用户
版本:V1.8
简介:只能说在牛逼的CMS也是会给日穿的。
0x01 程序安装到复现
1.第一步安装系统

2.第二步安装结束选择前台

3.第三步到注册页面->注册个人中心

4.第四步F12查看下验证码,然后我们在重新构建验证码参数,可以获取到他session中的值。

5.构建验证码参数
URL:http://www.cms.cc/api/captcha/captcha.php?code=1

这样就可以导致攻击者就可以任意在这个系统注册
0x02 POC自动化注册
0x03 代码审计
漏洞所在文件:\api\captcha\captcha.php(在验证码生成)
漏洞文件代码:(只贴上相关代码)

首先我们看第3行,if(!isset($_GET['code'])) ,isset 代表判断当前传入的变量是否赋值。
我们在看看第5行,createcaptcha() ,这里是自定义函数,这里是生成邀请码的。
再看看第9行,if($_SESSION['captcha']==strtolower(trim($_GET['code']))) ,接收GET 中的code 值在去和SESSION 中的captcha 值判断如何等等于那么就提示个OK ,不等于那么他就会把GET 值和SESSION 输出出来,这里就导致用户可以去利用这个提示去批量注册用户。
|