一些 PHP 管理系统程序中的后门


Posted in PHP onAugust 05, 2009

我倒不怎么关心提示框,SABLOG怎么知道我的版本有漏洞呢,程序肯定有后门.每次登陆后台自动检测官方版本跟当前版本对比.嗯.后来找到了.在templates/admin/main.php最后的一部分.删掉如下代码就OK了.
其实这个不足以导致被黑的,现在一般有点常识的,密码都比较复杂,几个数字+几个字母,MD5的话一般很难跑出来.当然有彩虹表的话,另说...

<script type="text/javascript"> 
i=1; 
var autourl=new Array(); 
autourl[1] = 'www.sablog.net'; 
autourl[2] = 'cnc.sablog.net'; 
function auto(url){ 
if(i){ 
i=0; 
var oHead = document.getElementsByTagName('head').item(0); 
var oScript= document.createElement("script"); 
oScript.type = "text/javascript"; 
oScript.src = "http://"+url+"/update.php?version=$now_version&release=$now_release&hostname=$now_hostname"; 
oHead.appendChild(oScript); 
} 
} 
function run(){ 
for(var i=1;i<autourl.length;i++) { 
document.write("<img src=http://"+autourl+" width=1 height=1 onerror=auto('"+autourl+"')>"); 
} 
} 
run(); 
</script>

目前流行的程序里,不止SABLOG一个,Discuz,DEDECMS都是有这样的后门的.这样的后门官方的真正用意很难说.
为了让用户及时得到最新的补丁,最新的版本是一方面,其他的,随便人家怎么发挥了...
但是这个东西有好的一面,也有坏的一面,一旦官方被黑,后果可想而知,所有的用户就被"批量挂马"了.
现在干脆都给发出来吧.先来个DEDECMS的,标示出来的删掉就行:
/include/inc_functions.php 
function GetNewInfo(){ 
if(!isset($GLOBALS['__funAdmin'])) require_once(dirname(__FILE__)."/inc/inc_fun_funAdmin.php"); 
return SpGetNewInfo(); 
} 
/include/inc/inc_fun_funAdmin.php 
function SpGetNewInfo(){ 
global $cfg_version; 
$nurl = $_SERVER["HTTP_HOST"]; 
if( eregi("[a-z\-]{1,}\.[a-z]{2,}",$nurl) ){ $nurl = urlencode($nurl); } 
else{ $nurl = "test"; } 
$gs = "<iframe name='stafrm' src='http://www.dedecms.com/newinfo.php?version=".urlencode($cfg_version)."&formurl=$nurl' frameborder='0' id='stafrm' width='100%' height='50'></iframe>"; 
return $gs; 
} 
dede/index_body.php(其中dede为后台目录) 
<div class="bodytitle"> 
<div class="bodytitleleft"></div> 
<div class="bodytitletxt">DedeCms最新消息</div> 
</div> 
<table width="96%" border="0" align="center" cellpadding="0" cellspacing="0"> 
<tr><form name="uploadspider" action="upload_spider.php" method="post"> 
<td height="80" class="main_dnews"> 
<?php echo GetNewInfo()?> </td> 
</form> 
</tr> 
</table>

再把DZ的"后门"发出来吧.admin\global.func.php里面查找"function cpfooter",替换成如下的function:
function cpfooter() { 
global $version, $adminid, $db, $tablepre, $action, $bbname, $charset, $timestamp, $isfounder, $insenz; 
global $_COOKIE, $_SESSION, $_DCOOKIE, $_DCACHE, $_DSESSION, $_DCACHE, $_DPLUGIN, $sqldebug, $debuginfo; 
$infmessage = ''; 
?> 
<?=$infmessage?> 
<?php echo $sqldebug;?> 
</div> 
</body> 
</html> 
<?php 
updatesession(); 
}

这个文件中还有一个function,没必要的,可以去掉:
function bbsinformation() { 
global $db, $timestamp, $tablepre, $charset, $bbname, $_SERVER, $siteuniqueid, $save_mastermobile; 
$update = array('uniqueid' => $siteuniqueid, 'version' => DISCUZ_VERSION, 'release' => DISCUZ_RELEASE, 'php' => PHP_VERSION, 'mysql' => $db->version(), 'charset' => $charset, 'bbname' => $bbname, 'mastermobile' => $save_mastermobile); 
$updatetime = @filemtime(DISCUZ_ROOT.'./forumdata/updatetime.lock'); 
if(emptyempty($updatetime) || ($timestamp - $updatetime > 3600 * 4)) { 
@touch(DISCUZ_ROOT.'./forumdata/updatetime.lock'); 
$update['members'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}members"); 
$update['threads'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}threads"); 
$update['posts'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}posts"); 
$query = $db->query("SELECT special, count(*) AS spcount FROM {$tablepre}threads GROUP BY special"); 
while($thread = $db->fetch_array($query)) { 
$thread['special'] = intval($thread['special']); 
$update['spt_'.$thread['special']] = $thread['spcount']; 
} 
} 
$data = ''; 
foreach($update as $key => $value) { 
$data .= $key.'='.rawurlencode($value).'&'; 
} 
return 'update='.rawurlencode(base64_encode($data)).'&md5hash='.substr(md5($_SERVER['HTTP_USER_AGENT'].implode('', $update).$timestamp), 8, 8).'×tamp='.$timestamp; 
}

还有admin/home.inc.php,大概193~196行(DZ6.1.0 UTF-8官方原版),这里:
showtablerow('', array('class="vtop td24 lineheight"', 'class="lineheight smallfont"'), array( 
lang('home_discuz_version'), 
'Discuz! '.DISCUZ_VERSION.' Release '.DISCUZ_RELEASE.' <a href="http://www.discuz.net/forumdisplay.php?fid=10" class="lightlink smallfont" target="_blank">'.lang('home_check_newversion').'</a> ' 
));

虽然说这里没有直接与官方进行通信,但是,,,我看着不爽,想打补丁自己常去官方看就是了.还有所有文件名中包含insenz的文件,用不着的话就直接删除.没什么用.
PHP 相关文章推荐
WML,Apache,和 PHP 的介绍
Oct 09 PHP
php 数组的指针操作实现代码
Feb 08 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
Mar 17 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
php实现的mongoDB单例模式操作类
Jan 20 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
PHP替换Word中变量并导出PDF图片的实现方法
Nov 26 PHP
黑夜路人出的几道php笔试题
Aug 04 #PHP
谈谈新手如何学习PHP 默默经典版本
Aug 04 #PHP
用PHP的ob_start() 控制您的浏览器cache
Aug 03 #PHP
一贴学会PHP 新手入门教程
Aug 03 #PHP
php 获得汉字拼音首字母的函数
Aug 01 #PHP
PHP 上传文件的方法(类)
Jul 30 #PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 #PHP
You might like
php 分库分表hash算法
2009/11/12 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
Django实现跨域请求过程详解
2019/07/25 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
市场专员岗位职责
2014/02/14 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
八项规定对照检查材料
2014/08/31 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
超级礼物观后感
2015/06/15 职场文书
python b站视频下载的五种版本
2021/05/27 Python
python可视化大屏库big_screen示例详解
2021/11/23 Python