emlog绕过验证码刷评论原理分析

最近博客常常被人刷评论,最狠的一次被刷了10000多广告。

    先看看评论验证码是怎么检查的。

emlog/include/controller/comment_controller.php,先获得$imgcode:

$imgcode = isset($_POST['imgcode']) ? addslashes(trim(strtoupper($_POST['imgcode']))) : ''

检查:

} elseif (ISLOGIN == false && Option::get('comment_code') == 'y' && session_start() && $imgcode != $_SESSION['code']) {

            emMsg('评论失败:验证码错误');

}
上述代码,几个判断依次是:

没有登录(非管理员和作者)
后台开启了评论验证码

开启session

将session中的code与$imgcode比较,不相等则验证码错误

    第4步明显有问题。熟悉php验证码流程的同学应该清楚,验证码生成的时候将会设置一个session,这里就是code,再和POST过来的也就是用户输入的做比较。

    然而如果我们并没有访问验证码生成页面,那么也就没生成session。那么$_SESSION['code']就是NULL。

    php中==是弱类型比较,NULL和''(空字符串)比较的结果是TRUE的。

    所以这里,我们的$imgcode如果输入一个空值,并且不去访问生成验证码的页面,那么这个$imgcode != $_SESSION['code']就不成立,就不会提示验证码错误,从而绕过了验证码检查逻辑。

 

 所以,我这里做测试。

    先正常留言,填写验证码,中途抓包:

    

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

    

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

    

    载入一个字典,即可刷评论:

    

    

 

修复方法是判断session是否为空:

empty($_SESSION['code']) || $_SESSION['code'] != $imgcode

不满足这个条件即提示错误。

时间: 2025-01-20 13:11:01

emlog绕过验证码刷评论原理分析的相关文章

寻找阿登高地——爬虫工程师如何绕过验证码

马奇诺防线是二战前法国耗时十余年修建的防御工事,十分坚固,但是由于造价昂贵,仅修建了法德边境部分,绵延数百公里,而法比边界的阿登高地地形崎岖,不易运动作战,且比利时反对在该边界修建防线,固法军再次并没过多防备,满心期望能够依靠坚固的马奇诺防线来阻挡德军的攻势.没想到后来德军避开德法边境正面,通过阿登高地从防线左翼迂回,绕过了马奇诺防线,然后就是英法联军的敦克尔克大撤退了. 网站验证码就如同马奇诺防线一样,阻挡了爬虫工程师的正面进攻. 随着爬虫和反爬虫双方围绕验证码的不断较量,最终导致了验证码识别

ShellShock漏洞原理分析

9月24日,广泛存在于Linux的bash漏洞曝光.因为此漏洞可以执行远程命令,所以极为危.危害程度可能超过前段时间的心脏流血漏洞. 漏洞编号CVE-2014-6271,以及打了补丁之后被绕过的CVE-2014-7169,又称ShellShock漏洞. 漏洞起因: 要是用一句话概括这个漏洞,就是代码和数据没有正确区分. 此次漏洞很像SQL注入,通过特别设计的参数使得解析器错误地执行了参数中的命令.这其实是所有解析性语言都可能存在的问题. 1 env x='() { :;}; echo vulne

ASP组件上传的三种机制和实现原理分析

上传 ASP 组件 FILE对象 当前,基于浏览器/服务器模式的应用比较流行.当用户需要将文件传输到服务器上时,常用方法之一是运行FTP服务器并将每个用户的FTP默认目录设为用户的Web主目录,这样用户就能运行FTP客户程序并上传文件到指定的 Web目录.这就要求用户必须懂得如何使用FTP客户程序.因此,这种解决方案仅对熟悉FTP且富有经验的用户来说是可行的. 如果我们能把文件上传功能与Web集成,使用户仅用Web浏览器就能完成上传任务,这对于他们来说将是非常方便的.但是,一直以来,由于File

搜索引擎判断网站是否作弊的原理分析(三)

广州SEO陈永继续为大家讲解搜索引擎判断网站如何判断网站是否作弊的原理,上节讲解完TrustRank算法,这一节将详细讲解BadRank算法. BadRank据传是Google采用的反链接作弊算法.它是一种典型的不信任传播模型,即首先构建作弊网页集合,之后利用链接关系来讲这种不信任分值传递到其他网页. BadRank包含的基本假设是:如果一个网页将其链接指向作弊页面,则这个网页也很可能是作弊网页:而如果一个网页被作弊网页指向,则不能说明这个网页是有问题的,因为作弊网页也经常将其链接指向一些知名网

搜索引擎判断网站是否作弊的原理分析(二)

承接搜索引擎判断网站是否作弊的原理分析(一) 广州SEO陈永继续为大家分析信任传播模型.不信任传播模型及异常发现模型3个代表算法,它们分别是TrustRank算法.BadRank算法和SpamRank算法. 我们先详细介绍TrustRank算法 TrustRank算法属于信任传播模型,基本遵循信任传播模型的流程,即算法流程如下两个步骤组成. 步骤一:确定值得信任的网页集合 TrustRank算法需要靠人工审核来判断某个网页应该被放入网页集合,考虑到人工审核工作量大,所以提出了两种初选信任网页集合

IOS开发:Cocos2d触摸分发原理分析

  触摸是iOS程序的精髓所在,良好的触摸体验能让iOS程序得到非常好的效果,例如Clear.鉴于同学们只会用cocos2d的 CCTouchDispatcher 的 api 但并不知道工作原理,但了解触摸分发的过程是极为重要的.毕竟涉及到权限.两套协议等的各种分发. 本文以cocos2d-iphone源代码为讲解.cocos2d-x 于此类似,就不过多赘述了. 零.cocoaTouch的触摸 在讲解cocos2d触摸协议之前,我觉得我有必要提一下CocoaTouch那四个方法.毕竟cocos2

Photoshop图层与色彩原理分析

  PS入门教程 Photoshop图层与色彩原理分析   教程结束,以上就是Photoshop图层与色彩原理分析,希望大家看完这篇教程之后能有一定的帮助! 分类: PS入门教程

web上存漏洞及原理分析、防范方法(文件名检测漏洞)

我们通过前篇:<web上存漏洞及原理分析.防范方法(安全文件上存方法) >,已经知道后端获取服务器变量,很多来自客户端传入的.跟普通的get,post没有什么不同.下面我们看看,常见出现漏洞代码.1.检测文件类型,并且用用户上存文件名保存 复制代码 代码如下: if(isset($_FILES['img'])) { $file = save_file($_FILES['img']); if($file===false) exit('上存失败!'); echo "上存成功!"

色彩搭配原理分析及技巧

色彩搭配原理分析及技巧: 研究色彩是为了使用色彩,也就是说最大限度地发挥色彩的作用.色彩的意义与内容在艺术创造和表现方面是复杂多变的,但在欣赏和解释方面又有共通的国际特性,可见它在人们心目中不但是活的,也是一种很美的大众语言.所以,通过对色彩的各种心理分析,找出它们的各种特性,可以做到合理而有效地使用色彩. 一.红色系 红色系是从色相环上的红紫色到朱红色之间的色彩.它的刺激作用很大,具有很高的注目性和视认性.大红色是暖色系里温度最高的色彩,红色系原色彩对人的心理能产生很大的鼓舞作用. 1.纯色使