当前位置:首页 > 叨叨念念 > Emlog验证码BUG可暴力破解

Emlog验证码BUG可暴力破解

叨叨念念 / 星之宇 / 2023-8-18 20:59 / 浏览:3891 / 评论:0

Bug描述

用户后台虽然开启了验证码,但是验证码失效机制有问题,可导致无线次数的暴力破解,对于恶意攻击者来说破解是时间问题。


Bug影响

emlog Pro 1.2.0+(目前只检测到1.2.0,之前是否有问题未知)

因为emlog验证码正确后不会在对该验证码失效,再加上验证码是由于checkcode.php生成,如果禁止该连接访问,验证码正确就只可以实现多次有效验证。


解决方法

修改include\service\user.php的checkLoginCode函数,大概59行,修改为如下代码:

	// 检查图片验证码
	static function checkLoginCode($login_code) {
		if (!isset($_SESSION)) {
			session_start();
		}
		$session_code = $_SESSION['code'] ?? '';
		unset($_SESSION['code']);
		if ((!$login_code || $login_code !== $session_code) && Option::get('login_code') === 'y') {
			return false;
		}
		return true;
	}


附:邮箱验证码也存在这个bug,修改include\service\user.php的checkMailCode函数,大概72行,修改为如下代码:

	// 检查图片验证码
	static function checkMailCode($mail_code) {
		if (!isset($_SESSION)) {
			session_start();
		}
		$session_code = $_SESSION['code'] ?? '';
		unset($_SESSION['code']);
		if (!$mail_code || $mail_code !== $session_code) {
			return false;
		}
		return true;
	}


官方后续

已于emlog Pro 2.1.14修复。

目前有 0 条评论

    • 昵称
    • 邮箱
    • 网址