dedecms 两个常见漏洞的复现

news/2024/9/18 21:04:03/文章来源:https://www.cnblogs.com/0kooo-yz/p/18367352

侵权声明

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

如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系: [360619623@qq.com]。我们将在确认后的合理时间内采取适当措施,包括删除相关内容。

感谢您的理解与支持

简介

版本

5.7

漏洞位置

文件上传

file_manage_control.php

xss

article_add.php

分析

文件上传

找到文件中的文件上传位置。
image

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

跟进RenameFile函数发现,没有进行过滤新文件名,只判断新旧文件名是否相等和文件是否可写。
image

XSS

通过poc找到文件位置
image

跟进makart()函数,该函数是准备创建静态html文件,
image

继续跟进makehtml()函数
image

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

但是此时投票功能还没有实装到文章模板中。继续看到makehtml()函数后半部分
image

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

可以看到文件写入的功能函数了,继续跟进getresult()函数
image

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

复现

文件上传

1、找到文件上传位置
image
)
2、上传一个带有一句话或其他的文件,但是文件需要时php3或是其他为后缀的
image

3、修改文件名为1.php
image

4、访问利用
image

xss

1、找到文章发布位置,准备新添文章
image

2、添加文件名和主栏目后,新增一个投票
image

3、在投票名称位置加上一个测试js代码,然后保存文件。<script>alert(1);</script>
image

4、访问文件
image

总结

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

参考

CVE上该系统报出的一系列漏洞


免责声明

本博客所提供的技术知识和信息仅旨在教育和分享网络安全最佳实践,促进网络安全意识的提升。作者严禁将这些技术和信息用于任何非法或不道德的目的。

使用本博客内容而导致的任何违法行为或后果,作者不承担任何法律责任。所有读者在使用本博客的信息时,应自行承担风险,并确保遵守当地法律法规。

我们鼓励所有读者合法地使用所提供的信息和技术,致力于维护安全和负责任的网络环境。

感谢您的理解与支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783822.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

过滤器与拦截器

过滤器 与拦截器 参考https://www.cnblogs.com/Black-Ice/p/16248535.html过滤器 Filter Filter 基本介绍 过滤器 Filter 是 Sun 公司在 Servlet 2.3 规范中添加的新功能,其作用是对客户端发送给 Servlet 的请求以及对 Servlet 返回给客户端的响应做一些定制化的处理,例如校验…

独立站是什么?独立站的优势是什么?为什么要做独立站?一键三问

独立站是指一个完全独立的网站,由公司自主搭建和运营,包括独立的服务器、网站程序和单独的域名等等,完全不依赖于任何第三方平台。它最初用于区分与亚马逊、eBay、速卖通等各种第三方电商平台的区别。市面上有三种建站系统:全自主开发、基于开源软件建设的独立站和基于SaaS…

AP9196 DC-DC 输入3-40V 6A升压恒流电源管理芯 太阳能路灯方案

产品说明 AP9196 是一系列外围电路简洁的宽调光比升压调光恒流驱动器,适用于3-40V输入电压范围的LED照明领域。 AP9196 采用我司专利算法,可以实现高精度的恒流效果,输出电流恒流精度≤3%,电压工作范围为5-40V,可以轻松满足锂电池及中低压的应用需求,输出耐压仅由MOS 耐…

Camera MIPI 协议理解

D-PHY 1、传输模式 1.LP(Low-Power) 模式:用于传输控制信号,最高速率 10 MHz HS(High-Speed)模式:用于高速传输数据,速率范围 [80 Mbps, 1Gbps] per Lane 传输的最小单元为 1 个字节,采用小端(低位字节放到内存的低地址端,高位字节放到内存的高地址端)的方式及 LS…

nvm---安装

安装流程:https://blog.csdn.net/qq_22182989/article/details/125387145 第一步:下载安装 nvm

易优CMS网站prenext 获取上一篇、下一篇内容

【基础用法】 名称:prenext 功能:获取当前文档上一篇、下一篇内容。 语法: {eyou:prenext get=pre} 上一篇:{$field.title}{eyou:else /} 上一篇:暂无{/eyou:prenext} {eyou:prenext get=next} 下一篇:{$field.title}{eyou:else /} 下一篇:暂无{/eyou:pre…

易优CMS网站likearticle 功能:通过前3个TAG标签或前3个关键词,检索整站文档标题中含有tag标签或者关键词的相关文档,进行关联

likearticle 相关文档 [基础用法] 名称:likearticle 功能:通过前3个TAG标签或前3个关键词,检索整站文档标题中含有tag标签或者关键词的相关文档,进行关联。在没有tag标签情况下,就以前3个关键词检索文档标题进行关联。这个标签随着数据量的增加可能会比较影响检索性能。 …

vue 数组和对象更新检测

vue如果要更新v-for渲染出来的数据,它是不会操作dom元素的。 而是就地更新需要操作的元素,并且确保它们在每个索引位置正确渲染。为了给vue一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有的元素,你需要为每项 提供一个唯一Key attribute;<div v-for=&quo…

易优CMS插件route.php路由配置

插件route.php路由配置 只针对网站前台进行路由配置,全面支持TP5.0.10本身的路由规则扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开…

定位遇阻?合宙模组GNSS排障宝典01

使用合宙GNSS定位模组时,总有客户因为各种原因遇到无法定位的情况。本文总结了无法定位最常见的四种情况,希望能帮到有类似定位应用项目的朋友们,更快地排查出问题所在。使用合宙GNSS定位模组时,总有客户因为各种原因遇到无法定位的情况。 本文总结了无法定位最常见的四种情…

python入门教程(非常详细!3w+ 文字)

先序: 学习编程语言要先学个轮廓,刚开始只用学核心的部分,一些细节、不常用的内容先放着,现用现查即可;把常用的东西弄熟练了在慢慢补充。 1、 安装 Python 解释器 为什么需要安装 Python Python 语言本身是由解释器执行的,因此你需要在你的计算机上安装 Python 解释器。这…