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

前言

这两天博客收到了恶意灌水/广告引流评论,每天都会发一次,定时灌水….无可奈何了。想起以前看到过emlog验证码机制修改代码,整上确实有用,顺便分享给大家(大佬勿喷)。

验证码绕过漏洞原理:

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验证码防干扰   * 25678资源博客: molure.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);

效果图:

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

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发