dedecms 两个常见漏洞的复现

admin 2024年8月26日01:10:31评论14 views字数 1191阅读3分58秒阅读模式

侵权声明

本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。

简介

版本

5.7

漏洞位置

文件上传

file_manage_control.php

xss

article_add.php

分析

文件上传

找到文件中的文件上传位置。
dedecms 两个常见漏洞的复现

红框前都是对参数的初始化,找到文件临时存放位置,将临时文件保存到本地。之后删除临时文件。
红框内
$file_base = strtolower(pathinfo($file, PATHINFO_BASENAME));获取文件名
$file_ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));获取文件后缀
if (is_file($file) && $file_ext == "php")判断是否为文件和后缀是否为php如果此时一个条件不满足就好跳出后面的内容判断。如果我们上传一个php3为后缀的文件就可以成功(还是有其他访问绕过或使php文件可以执行的办法)。然后通过下面函数改名即可利用。
dedecms 两个常见漏洞的复现

跟进RenameFile函数发现,没有进行过滤新文件名,只判断新旧文件名是否相等和文件是否可写。
dedecms 两个常见漏洞的复现

XSS

通过poc找到文件位置
dedecms 两个常见漏洞的复现

跟进makart()函数,该函数是准备创建静态html文件,
dedecms 两个常见漏洞的复现

继续跟进makehtml()函数
dedecms 两个常见漏洞的复现

该函数前半部分有面两个重要的函数。
$this->LoadTemplet();获取文章的模板
$this->ParAddTable();处理文章需要保函的额外功能。例如投票。更进paraddtable()函数
dedecms 两个常见漏洞的复现

但是此时投票功能还没有实装到文章模板中。继续看到makehtml()函数后半部分
dedecms 两个常见漏洞的复现

直接看到最后红框中的两个函数。
$this->ParseDMFields($i,1);判断哪些模块是需要加载到文章模板中的,并对其进行标记和计算出需要加载模块的数量。方便后续将需要的模块加载到文章中。
$this->dtp->SaveTo($TRUEfilename);将模块加载到文章中。跟进saveto()函数
dedecms 两个常见漏洞的复现

可以看到文件写入的功能函数了,继续跟进getresult()函数
dedecms 两个常见漏洞的复现

我可以肯定的是在26号模板中就存在投票功能的模块并且写入了resultString参数,你可以自己去看看。

复现

文件上传

1、找到文件上传位置
dedecms 两个常见漏洞的复现
)
2、上传一个带有一句话或其他的文件,但是文件需要时php3或是其他为后缀的
dedecms 两个常见漏洞的复现

3、修改文件名为1.php
dedecms 两个常见漏洞的复现

4、访问利用
dedecms 两个常见漏洞的复现

xss

1、找到文章发布位置,准备新添文章
dedecms 两个常见漏洞的复现

2、添加文件名和主栏目后,新增一个投票
dedecms 两个常见漏洞的复现

3、在投票名称位置加上一个测试js代码,然后保存文件。<script>alert(1);</script>
dedecms 两个常见漏洞的复现

4、访问文件
dedecms 两个常见漏洞的复现

总结

还得练,只找到了一小部分。该系统还有很多其他漏洞。

原文始发于微信公众号(菜鸟小新):dedecms 两个常见漏洞的复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月26日01:10:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   dedecms 两个常见漏洞的复现https://cn-sec.com/archives/3094823.html

发表评论

匿名网友 填写信息