一些 PHP 管理系统程序中的后门_php教程-查字典教程网
一些 PHP 管理系统程序中的后门
一些 PHP 管理系统程序中的后门
发布时间:2016-12-29 来源:查字典编辑
摘要:我倒不怎么关心提示框,SABLOG怎么知道我的版本有漏洞呢,程序肯定有后门.每次登陆后台自动检测官方版本跟当前版本对比.嗯.后来找到了.在t...

我倒不怎么关心提示框,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>

<div></div>

<div>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">

<?php echo GetNewInfo()?> </td>

</form>

</tr>

</table>

再把DZ的"后门"发出来吧.adminglobal.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" target="_blank">'.lang('home_check_newversion').'</a> '

));

虽然说这里没有直接与官方进行通信,但是,,,我看着不爽,想打补丁自己常去官方看就是了.还有所有文件名中包含insenz的文件,用不着的话就直接删除.没什么用.

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类