解决DEDECMS历史难题–找后台目录

  • A+
所属分类:网站建设 资源分享

利用限制

  • 仅针对windows系统

进入正题

首先看核心文件common.inc.php 大概148行左右

uploadsafe.inc.php

注意$$_key这一句,变量$key取自于$_FILE,由于$_FILE可控自然$key也可控,此处理论上是可以覆盖任意变量,但是前面有个正则判断不能出现cfg_|GLOBALS。(但是应该还可以覆盖其他变量此处感觉还可以深挖)

本人出发点是找个可以利用<<通配符猜解后台目录,所以只要$$_key参数可控就可以达到目的。

但在这之前有个if(!defined('DEDEADMIN'))的判断,这个很好绕过设置tmp_name为0或者1.jpg含.就可以绕过。

最后关键的一点就是要让文件存在还和不存在返回不同的内容就要控制type参数了。

当目录文件存在的时候 返回正常页面。当不存在的时候返回:Upload filetype not allow !

举个例子

文字不好表达,便于理解。

构造poc

Common.inc.php 是被全局包含的文件,只要文件php文件包含了Common.inc.php都可以进行测试,以tags.php文件为例

当目录存在点时候: 图1

解决DEDECMS历史难题--找后台目录

当目录不存在点时候: 图2

解决DEDECMS历史难题--找后台目录

EXP

 

解决DEDECMS历史难题--找后台目录

感谢

感谢给我提供这个思路的朋友

参考文章

https://www.t00ls.net/viewthread.php?tid=27472

http://onsec.ru/onsec.whitepaper-02.eng.pdf

https://www.t00ls.net/viewthread.php?tid=25843

出错原因:

另外我在测试的过程中发现作者有个小问题没有注意到,原POC:

作者POST的是tags.php 属于根目录下的文件,在根目录下没有tags.php的情况下,需要找一个包含common.inc.php的文件,在这种情况下只能找二级目录下的文件,例如:/plus /include

那么如果根目录下不存在tags.php,POC的POST内同应该这样写

解决DEDECMS历史难题--找后台目录

dede找后台目录工具集下载

dede_dir.zip

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: