DedeCMS最新版SQL注入漏洞(首发)

DedeCMS最新版SQL注入漏洞(首发)

dedecms是一款基于PHP+MySQL的开源CMS系统,以其易用性和丰富的功能而广受欢迎。然而,正是因为其广泛应用,才使得它成为黑客攻击的目标。

漏洞测试环境

DedeCMS最新版V5.7.112

fofa 语句 app=”dedecms”

分析

漏洞点在 dede/makehtml_archives_action.php 这个文件中,首先看函数赋值

DedeCMS最新版SQL注入漏洞(首发)
$typeid = (empty($typeid) ? 0 : $typeid);

很清晰,例如变量typeid没定义,那么默认为0,定义为它本身。并且这些参数没有经过任何的过滤,比如addslashes()intval()等函数。

然后我们看获取条件这部分

DedeCMS最新版SQL注入漏洞(首发)

这里定义了一个变量idsql为空,然后根据gwhere的值再给idsql赋值。我们再看gwhere,gwhere传入变量ids,ids传入变量typeid。再看判断,当我们传入一个不为0的参数时,typeid则使用GetSonIds函数进行处理,以获取所有的子id。

DedeCMS最新版SQL注入漏洞(首发)

根据上图可知,获取子id部分也没有对typeid这个变量做过滤。比如GetSonIdsLogic这个函数,只是将id赋值到数组中,以及判断$v[0]的值是否等于$id。

再看idsql这个变量,直接拼接到SQL语句中

DedeCMS最新版SQL注入漏洞(首发)

最终流程:

$typeid未经过滤 -> $ids -> $gwhere -> $idsql -> 拼接给 $dsql 造成注入。

复现

DedeCMS最新版SQL注入漏洞(首发)
http://example.com/dedecms/dede/makehtml_archives_action.php?typeid=1+AND+(SELECT+1+FROM+(SELECT(SLEEP(2)))a)

DedeCMS最新版SQL注入漏洞(首发)

直接上sqlmap跑起来!

DedeCMS最新版SQL注入漏洞(首发)

官方修复方案

直接对typeid这个变量进行强转intval()转换成整型。(不会绕过,睡了~)

DedeCMS最新版SQL注入漏洞(首发)


原文始发于微信公众号(安全光圈):DedeCMS最新版SQL注入漏洞(首发)

版权声明:admin 发表于 2024年4月3日 下午2:32。
转载请注明:DedeCMS最新版SQL注入漏洞(首发) | CTF导航

相关文章