白盒审计DeDeCMS拿到CNVD证书

admin 2024年10月9日13:45:36评论35 views字数 1198阅读3分59秒阅读模式

免责申明

本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。

    在之前发布过一个DedeCMS的代码审计的一个任意文件删除漏洞,但是危害不满足证书颁发的条件,当时继而还审计除了另一个漏洞,也就是DeDeCMS的文件写入漏洞,是可以直接拿到网站的webshell权限的,因为现在新的版本已经发布出来了,这个漏洞也被CNVD收录所以现在写一篇篇文章,说下当时的一个审计流程。

    首先我习惯审计的时候先定位危险函数点,然后再进行回溯查看参数是否可控,最后再去看参数在传递的过程当中是否存在过滤等代码

0x00 影响版本

此漏洞涉及版本为DeDeCMS<5.7.108版本,目前官网已经发布了5.7.110版本这个漏洞已经被修复

0x01审计过程

在官网下载好源码使用

白盒审计DeDeCMS拿到CNVD证书

漏洞涉及文件    

    uploads/dede/article_template_rand.php

白盒审计DeDeCMS拿到CNVD证书

在代码当中可以看到fwrite写入函数,其中第一个变量fp指定了一个文件为

/template.rand.php,第二个变量$templates为可控变量

白盒审计DeDeCMS拿到CNVD证书

到这里大致的思路就明白了,使用fwrite函数进行了文件写入,写入文件

template.rand.php,方便我们写入一句话,然后写入内容为tempates变量,这

个变量我们可控,开始尝试写入一下

为了知道文件位置,我们在写入文件下方加入echo打印出文件的绝对路径

白盒审计DeDeCMS拿到CNVD证书

白盒审计DeDeCMS拿到CNVD证书

进行发包查看是否成功写入

白盒审计DeDeCMS拿到CNVD证书

发现了被过滤了,回到代码查看,在文件下方

白盒审计DeDeCMS拿到CNVD证书

通过file_get_contents函数载入了写入的文件继续了过滤,并且给了变量content然后进行了一系列判断

白盒审计DeDeCMS拿到CNVD证书

第一层判断是判断是if判断,使用了正则表达,要被正则表达匹配到的要求是匹配规则要求函数名之前必须包含非小写字母的字符,并且函数名后面必须是括号字符(圆括号、方括号或大括号)或单引号(来源于AI Chat GPT)

白盒审计DeDeCMS拿到CNVD证书

经过这个过滤之后,下一个过滤代码则是

白盒审计DeDeCMS拿到CNVD证书

我们再来看下GPT的回答

白盒审计DeDeCMS拿到CNVD证书

由于笔者这里对这个正则表达式不是很清楚他这个过滤的机制,总之在最后的测试过程当中发现了基本上百分之八十webshell都可以直接写入

问了好多次GPT也是一知半解的感觉

白盒审计DeDeCMS拿到CNVD证书

如果有师傅知道可以一起交流一下

回归原题,现在我们知道了,存在一个写入文件的函数,并且写入的文件是php文件,写入的内容也是可控的,存在一定的过滤但是和没有差不多

0x02 漏洞验证

白盒审计DeDeCMS拿到CNVD证书

当我们写入之后点击确定发现成功修改了这个配置文件,然后直接访问目标文件

白盒审计DeDeCMS拿到CNVD证书

文件写入成功

0x03 小结

    最后也是经过了漫长(好长!!)的等待,终于等到了漏洞归档,证书也下发了!

如果有对代码审计感兴趣的师傅可以联系我,若是需要找个版本的源码也可以找我一起研究

白盒审计DeDeCMS拿到CNVD证书

原文始发于微信公众号(实战安全研究):白盒审计DeDeCMS拿到CNVD证书

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月9日13:45:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   白盒审计DeDeCMS拿到CNVD证书https://cn-sec.com/archives/1928237.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息