0

ユーザーがファイルをアップロードして他のユーザーと共有できる Web サイトを持っています。しかし、まずそれらを確認する必要があります。最近、誰かが次のコマンドで .php ファイルをアップロードしました:

‰PNG

<?php
eval(gzinflate(base64_decode("very large strings of characters")));

?>

有害かもしれないと思ったので、開けませんでした。

誰がそれが何をするのか知っていますか?

4

3 に答える 3

3

誰もあなたに言うことはできません、ただやってください

<?php echo gzinflate(base64_decode("very large strings of characters")) ?>

それが何をするかを見るために....

編集:文字列全体を投稿したので、デコードしてここに貼り付けました

于 2012-04-21T06:56:50.437 に答える
2

攻撃者のコードは base64 でエンコードされ、gzip されているようです。

したがって、最初にコードがbase64エンコーディングからデコードされ、次に基本的にコードの文字列まで解凍されます。

そして、結果の文字列に対して eval が呼び出され、デコードおよび解凍されたコードが実行されます。

しかし、どのコードが生成されるかを確認しないと、コードが実行されたときに何を行うかを判断するのは困難です。


エンコードされたテキストをデコードしました。次のアプローチを使用して

(今考えると、ファイルへの書き込みは悪い考えだったと思います。主にWindowsを使用している場合。実行ビットがオフになっているLinuxでは少し安全だと思います。したがって、この場合は幸運でした。 !)

<?php
$test = gzinflate(base64_decode("encoded_text"));
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w');
fwrite($fh, $test);
fclose($fh);

ブラウザーにエコーするだけでコンピューターに感染する可能性のあるランダムなhtmlまたはjavascriptがあった場合に備えて、出力をファイルに書き込みました。そのため、ウイルス対策の警告が表示された可能性があります。

それが何をするのかはまだわかりません。


4,750 行のコードに目を通しただけで、Basic Auth が設定されているように見えます。そして、多くのデータベース機能といくつかの基本的な html インターフェイスがあります。これはPHPで。パールもあります。終わりに近い。

その画像が表示されるすべてのページは、そのコードの一部を出力し、コードと一緒に実行し、入力データを取得しようとするか、セッション データやデータベース値を見つけようとします。 .

次に、コードの他の部分は、基本的に、URL が次のようにアクセスされたときに管理インターフェイスを作成します: url?admin=1。これにより、基本認証認証が開始されます。そして、ユーザーがさまざまなクエリを試して、データベースに関するメタデータを収集できるシンプルなインターフェイス phpmyadmin のようなインターフェイスがあります。おそらく他のものも実行されます。

私は間違っているかもしれませんが、それは私がコードを通して得た要点です。

于 2012-04-21T06:58:11.603 に答える
0

コードは問題ありません。注意する必要があるのは、暗号化された長い文字列だけです

< ?php eval(gzinflate(base64_decode("very large strings of characters")));

この種のステートメントの参照については、参照できます

http://php.net/manual/en/function.gzinflate.php

于 2012-04-21T07:01:41.923 に答える