dedecms漏洞注入。
未知
2019-04-05 11:21:52
0次
1,dedecms留言板注入漏洞。/plus/guestbook/edit.inc.php
一般用不上,删除目录即可。
如果要修改就在55行左右添加对$msg的有效过滤。$msg=addslashes($msg);
3,DedeCMS v5.7 注册用户任意文件删除漏洞
dedecms前台任意文件删除(需要会员中心),发表文章处,对于编辑文章的时候图片参数处理不当,导致了任意文件删除
./member/inc/archives_check_edit.php
找到92行 将
$litpic =$oldlitpic;
替换成:
$litpic =$oldlitpic;
if (strpos( $litpic, '..') !== false || strpos( $litpic, $cfg_user_dir."/{$mid}/" ) === false) exit('not allowed path!');
4,dedecms SQL注入漏洞
dedecms的/dedecms/member/album_add.php文件中,对输入参数mtypesid未进行int整型转义,导致SQL注入的发生。
打开dedecms/member/album_add.php文件,查找以下代码(大约220行左右)
$description = HtmlReplace($description, -1);//2011.06.30 增加html过滤
将上面的代码替换为:
$description = HtmlReplace($description, -1);//2011.06.30 增加html过滤
$mtypesid = intval($mtypesid);
5, dedecms过滤逻辑不严导致上传漏洞。
文件/include/uploadsafe.inc.php。
搜索 $image_dd = @getimagesize($$_key);(大概在53行左右)
替换成
$image_dd = @getimagesize($$_key);
if($image_dd == false){ continue; }
6,dedecms变量覆盖漏洞
dedecms变量未初始化导致本地变量注入。
修改/include/dedesql.class.php页面第595行 加入以下代码
$arrs1 = array();
$arrs2 = array();
if (isset($global['arrs1']))
{
$v1 = $v2 = '';
for ($i=0;isset($arrs1[$i]);$i++)
{
$v1 .= chr($arrs1[$i]);
}
$v1 = $v2 = '';
for ($i=0;isset($arrs2[$i]);$i++)
{
$v2 .= chr($arrs2[$i]);
}
$global[$v1] . = $v2;
}
7,dedecms SESSION变量覆盖导致SQL注入
dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,
这个漏洞的利用前提是session.auto_start = 1即开始了自动SESSION会话,
在 /include/common.inc.php 中
找到注册变量的代码
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v)
${$_k} = _RunMagicQuotes($_v);
}
修改为
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) {
if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){
exit('Request var not allow!');
}
${$_k} = _RunMagicQuotes($_v);
}
}
搜索如下代码(68行):
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) )
替换 68 行代码,替换代码如下:
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )
8,dedecms cookies泄漏导致SQL漏洞
dedecms的文章发表表单中泄漏了用于防御CSRF的核心cookie,同时在其他核心支付系统也使用了同样的cookie进行验证,
黑客可利用泄漏的cookie通过后台验证,进行后台注入。
/member/inc/inc_archives_functions.php文件,搜索(大概在239行的样子)
echo "<input type=\"hidden\" name=\"dede_fieldshash\" value=\"".md5($dede_addonfields.$cfg_cookie_encode)."\" />";
修改为
echo "<input type=\"hidden\" name=\"dede_fieldshash\" value=\"". md5($dede_addonfields . 'anythingelse' .$cfg_cookie_encode) ."\" />";
/member/article_add.php
搜索代码:
if (empty($dede_fieldshash) || $dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode))
修改代码为:
if (empty($dede_fieldshash) || ( $dede_fieldshash != md5($dede_addonfields . $cfg_cookie_encode) && $dede_fieldshash != md5($dede_addonfields . 'anythingelse' . $cfg_cookie_encode)) )
9,dedecms后台文件任意上传漏洞
dedecms早期版本后台存在大量的富文本编辑器,该控件提供了一些文件上传接口,同时dedecms对上传文件的后缀类型未进行严格的限制,这导致了黑客可以上传WEBSHELL,获取网站后台权限。
/dede/media_add.php
搜索$fullfilename = $cfg_basedir.$filename;(大概在69行左右)
替换成
if (preg_match('#\.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) {
ShowMsg("你指定的文件名被系统禁止!",'java script:;');
exit();
}
$fullfilename = $cfg_basedir.$filename;
相关内容
容器和依赖注入
容器和依赖注入 ThinkPHP使用容器来更方便的管理类依赖及运行...
2021-07-04 10:16:01