转载修改Emlog验证码机制,有效防止恶意识别/解决恶意评论灌水

访客4年前黑客工具851

验证码绕过漏洞原理:

1、利用NULL和空字符串比较的结果是TRUE从而绕过验证码检查逻辑


2、正常留言输入验证码进行BurpSuite抓包

3、将PHPSESSID修改成随意一个值,目的是让其$_SESSION不存在,再将imgcode修改成空。

4、发送数据包,可见没有提示失败(302跳转了),说明评论成功。

5、载入一个字典,即可刷评论。

6、可利用 *** IP多线程即可实现无拦截评论恶意灌水轰炸

1.开启session并且将是否为空的行为进行判断
2.违规词拦截(emlog用户免费提供emlog违规词拦截魔改插件和极猫云WAF防护)
3.添加第三方滑块验证

修复方案二:修改Emlog验证码机制

1、打开程序路径/include/lib/checkcode.php文件,把下面代码全部替换到checkcode.php里面即可

<?php/**
 * Emlog验证码防干扰
 * 梦城博客: https://www.dcqzz.cn/
 */
 
session_start();
 
$randCode = '';
$chars = 'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPRSTUVWXYZ23456789';
for ( $i = 0; $i < 5; $i++ ){
	$randCode .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}
 
$_SESSION['code'] = strtoupper($randCode);
 
$img = imagecreate(75,25) or die("创建图像资源失败,请刷新页面");
$bgColor = isset($_GET['mode']) && $_GET['mode'] == 't' ? imagecolorallocate($img,245,245,245) : imagecolorallocate($img,255,255,255);
$pixColor = imagecolorallocate($img,mt_rand(88, 245), mt_rand(55, 240), mt_rand(99, 200));
//画字符、大小
for($i = 0; $i < 5; $i++){
	$x = $i * 13 + mt_rand(3, 7) - 2;
	$y = mt_rand(0, 3);
	$text_color = imagecolorallocate($img, mt_rand(100, 250), mt_rand(80, 180), mt_rand(90, 220));
	imagechar($img, 5, $x + 5, $y + 3, $randCode[$i], $text_color);
}
//画干扰点
for($j = 0; $j < 240; $j++){
	$x = mt_rand(0,500);
	$y = mt_rand(0,100);
	imagesetpixel($img,$x,$y,$pixColor);
}
//4条横斜线
for ($i=0; $i < 5; $i++) { 
    $lineColor = imagecolorallocate($img, rand(50, 150), rand(50, 150), rand(50, 150));
    $lineX1 = 0;
    $lineX2 = 90;
    $lineY1 = ($i + 1) * 8;
    $lineY2 = ($i + 1) * 15;
    imageline($img, $lineX1, $lineY1, $lineX2, $lineY2, $lineColor);
}
 
//4条竖斜线
for ($i=0; $i < 5; $i++) { 
    $lineColor = imagecolorallocate($img, rand(50, 150), rand(50, 150), rand(50, 150));
    $lineY1 = 0;
    $lineY2 = 90;
    $lineX1 = ($i + 1) * 8;
    $lineX2 = ($i + 1) * 15;
    imageline($img, $lineX1, $lineY1, $lineX2, $lineY2, $lineColor);
}
 
header('Content-Type: image/png');
imagepng($img);
imagedestroy($img);

原文地址:https://www.dcqzz.cn/post/959

标签: EMLOG教程

相关文章

你是否也曾想拥有一个属于自己的资源网站?

Emlog资源网搭建 二次开发 落地检测 采集定制 等服务 思源资源网担保:Emlog资源网模板设计、插件定制、模板二次修改 广告屏蔽搜索引擎,过落地页检测(不过不收费),模板SE...

emlog系统后台登录简约页面源码

boostrap后台登录页面,响应式简单美观集成到emlog 使用说明:上传到 admin/views 文件目录解压即可 下载地址 ...

Emlog程序多个域名全站访问的方法

为了实现多个域名访问,资源地址不是主域名的情况下,舍力写了这个教程 本教程也可以配合不同域名不同模板使用,效果更佳 我们很多朋友可能有这样的需要,如果你手上有空余的域名,你也可以试试,让你的eml...

文章内容功能三合一

文章内容功能三合一就是1.文章内容添加文章索引,我这里是调用H2的2.文章内容有含有标签的添加链接3.文章内容有外链的添加nofollow 关键代码添加到Module.php文件中 <?...

Emlog资源网关闭缓存后出现问题如何解决?

Emlog资源网关闭缓存后出现问题如何解决? Emlog系统是很好用,对SEO也十分友好,开发者众多,在资源网这里使用Emlog的程序人不在少数,包括本站,可是Emlog的缓存机制不是不是很...

Emlog分类页自定义输出每页显示条数

Emlog博客程序的分类页、搜索页、归档页、作者页等列表页的显示数量是后台统一设置的,有时需要单独自定义分类页的显示数量,以下代码为参考默认函数修改而来,具体如下: <?php foreach...