XiaoCms 验证码逻辑漏洞

前言: 今天在CNVD上面看到了个验证码逻辑漏洞,这种逻辑漏洞遇到过很多次,但一直没有从源代码分析成因,这次正 […]

前言:

今天在CNVD上面看到了个验证码逻辑漏洞,这种逻辑漏洞遇到过很多次,但一直没有从源代码分析成因,这次正好看看。

CMS信息:

《代码审计:XiaoCms 验证码逻辑漏洞》

产生原因:

《代码审计:XiaoCms 验证码逻辑漏洞》

简单看一下检查登陆的代码。首先就判断Code是否正确,如果不正确则直接跳出。后面还有一些对次数的限制。

《代码审计:XiaoCms 验证码逻辑漏洞》

我们在看下CheckCode.就是拿POST中的code跟后台session中的checkcode对比,看是否相等,这时不管是否相等session中的checkcode都会被删除。

这样看。好像是不存在问题的,那么问题在哪呢?再接着看下去

《代码审计:XiaoCms 验证码逻辑漏洞》

我们找下验证码的生成在哪。c=api&a=checkcode,去看看

《代码审计:XiaoCms 验证码逻辑漏洞》

载入了image类

《代码审计:XiaoCms 验证码逻辑漏洞》

验证码的生成就在这里,生成的同时,session['checkcode']也同时生成。

这时我们仔细想一想。到我们前台直接爆破,使用BurpSuite直接POST数据时,那么在第一次登陆之后,后台session['checkcode']被删除了,但是却没有生成,这时我们只要把前台的code给删除掉,这两个相比的是不是都为空呢?

《代码审计:XiaoCms 验证码逻辑漏洞》
《代码审计:XiaoCms 验证码逻辑漏洞》

直接两张图已经可以说明结果了。

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧