web-dev-qa-db-ja.com

誰かがこの不正なHTTPリクエストの突然の流入を認識できますか?

約3週間前から、私のサイトはユーザーから多くの奇妙で繰り返し発生するhttpリクエストを受け取り始めました。

私は日常的に発生する悪意のあるスキャンに精通していますが、これらのリクエストは異なっているようで、ブラウザ、拡張機能、またはJavaScriptのどこかが、悪意のあるものというよりむしろどこかで誤動作していると思います。

1人のユーザーからのリクエストの小さなサンプルを示します(ただし、さまざまなユーザーエージェントとユーザーに影響します)。

[22/Jul/2014:20:57:49 +0100] "GET /groups/%60%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 723  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:20:58:11 +0100] "GET /members/%EF%BF%BD%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5176  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:20:58:45 +0100] "GET /%EF%BF%BD%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5345  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:20:59:18 +0100] "GET /groups/%EF%BF%BD%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 723  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:20:59:41 +0100] "GET /groups/%EF%BF%BDi%19%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 723  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:00:06 +0100] "GET /%EF%BF%BDg%19%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5008  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:00:30 +0100] "GET /%EF%BF%BDc%19%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 4991  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:01:35 +0100] "GET /%EF%BF%BD%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5167  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:03:08 +0100] "GET /%EF%BF%BD%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5129  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:04:35 +0100] "GET /groups/%EF%BF%BDj%19%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 723  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:05:21 +0100] "GET /%EF%BF%BDf%19%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5271  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:07:01 +0100] "GET /groups/%EF%BF%BDc%19%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 723  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:12:44 +0100] "GET /P%EF%BF%BD%16%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5161  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:13:04 +0100] "GET /%EF%BF%BDO%0F%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5328  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:13:52 +0100] "GET /groups/0%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 723  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:14:14 +0100] "GET /groups/%EF%BF%BD%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 723  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:14:34 +0100] "GET /@%EF%BF%BD%16%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5347  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:15:04 +0100] "GET /@%EF%BF%BD%16%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 4942  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:15:11 +0100] "GET /groups/%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 723  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[22/Jul/2014:21:16:05 +0100] "GET /p%EF%BF%BD%18%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 5020  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
[23/Jul/2014:01:11:58 +0100] "GET /%EF%BF%BD%07%1B%01?o=3&g=&s=&z=\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-\x//\x,/\x,-X? HTTP/1.1" 404 4877  "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"

私はそれを詳細に研究しましたが、空白を描きました。私がこれまでに結論したことはここにあります...

  • これらのリクエストのほとんどは、私のサイトにログインしている長期的なユーザーからのものであり、それらはすべてほぼ同時に送信を開始しました

  • 私はリクエストメソッドのロギングを開始しましたが、それらはすべて、正常に機能していないXMLHttp呼び出しではなく、標準のhttpです。

  • 頻繁に送信していると思われる数人のユーザーを隔離し、以前に送信していたページのHTMLをログに記録し始めました。私のHTMLには、ブラウザーにこれらの要求を生成するように促すものはまったくないと確信しています。私のサイトとデータベースは完全にutf-8です。私のサイトは危険にさらされておらず、Google Analytics以外の第三者からのスクリプトや広告を提供していないことにも自信があります。

  • それらには常にUTF-8置換文字のバイトの16進表記(EF BF BD)のエンコードされたバージョンである%EF%BF%BDが含まれています

  • リクエストには常にGETパラメータo、g、s、zが含まれます

  • すべてのユーザーに発生するわけではなく、さまざまなWindows、Mac、またはモバイルブラウザで再現することはできません。

  • 特定のユーザーについては、ユーザーが自分のサイトを閲覧しているときに、約40%の時間に、1つ以上のこれらの要求(前の有効な要求と同じディレクトリにアクセスする)が続く

私はこれに関するいくつかの助けが大好きです、おそらく誰かがパラメータを見て、それを引き起こしている可能性があるものを認識します

私が考えることができる可能な説明は次のとおりです:

  • 一部のjquery回帰(ただし、それらはajaxリクエストではありません)
  • グーグルマップのいくつかの回帰(再現できません)
  • 多分人気のブラウザ拡張機能で、突然おかしくなり始めた
17
carpii

これらのリクエストは、Adware:Win32/Adpeakの誤動作によって引き起こされます(そう、信じられないかもしれませんが、マルウェアでも誤動作する可能性があります)。

感染したシステム上に、通過するすべてのHTMLコンテンツにscriptタグを挿入するプロキシサーバーを設定します。

<script type="text/javascript" id="2f2a695a6afce2c2d833c706cd677a8e" src="http://d.lqw.me/xuiow/?g=750C2C5B-CF42-6996-0E5A-306165564128&s=F5D333A8-C748-4686-AE0A-9E008F670C22&z=1384886096"></script>

特定の状況下では、ホスト名とGETパラメータの値が破損する可能性があり、それは、OPがログに404を送信したなどのリクエストが表示された場合です。

SOの 関連スレッド で詳細を読んでください。

4
antichris

すべてのリクエストが"404 Not Found"ステータスで失敗するので、すべて(すべてのヘッダー、リクエスト、ユーザーのセッション)をログに記録するカスタム404エラーページを作成し、これをデバッグしてみてください。実際のリクエストは、Webブラウザーが破壊された数人のユーザー(クライアントマシンでウイルス、トロイの木馬など)から、すべてのユーザーから、Webサイトにログインしているユーザー、または攻撃を仕掛けようとする攻撃を試みているユーザーからのものです。応用。

それがクライアント側の問題である場合、これを追跡し、アプリケーションに影響がないことを確認する以外にできることは多くありません。

一方、それがあなたの側(サーバーまたはアプリケーション)の問題である場合、これは問題を修正するためのいくつかの開始点を分析するために少なくとも何かを与えるはずです。

これを行う基本的なカスタム404は次のとおりです。

<?php
/**
 * File: CustomError404.php
 * Custom 404 error page
 */

// Set the proper headers
if (!function_exists('http_response_code')) {
    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
    header("Status: 404 Not Found");
} else {
    http_response_code(404);
}

// Log whatever here...
$logMessage  = '**************************************************************' . PHP_EOL;
$logMessage .= '** Full request log - ' . date('Y-m-d H:i:s') . PHP_EOL;
$logMessage .= '**************************************************************' . PHP_EOL;
$logMessage .= "ALL HEADERS: " . PHP_EOL . print_r(getallheaders(), true);
$logMessage .= "REQUEST: " . PHP_EOL . print_r($_REQUEST, true);
$logMessage .= "SESSION: " . PHP_EOL . print_r($_SESSION, true);
$logMessage .= '**************************************************************' . PHP_EOL . PHP_EOL;

// Write the log to a file
$logFile = __DIR__ . '/req_error.log';
file_put_contents($logFile, $logMessage, FILE_APPEND);

// Display a message instead of a blank page
echo "<h1>404 Not Found</h1>";
echo "The page that you have requested could not be found.";
exit();

/* EOF */

これを使用するには、このファイルをアプリケーションのルートフォルダーにアップロードし、次の行を仮想ホストまたは.htaccess構成に配置します。

ErrorDocument 404 /CustomError404.php

このスクリプトをさらにカスタマイズして、フィルターをかけ、関心のある特定の特性を持つ彼の要求のみをログに記録することができます。これにより、トンでフィルターする必要なしに、ログファイルで探しているものを取得できます。余分な「良い」リクエストの。

4
Thyamarkos

これを思い出させます:

char shellcode[] =
"\xeb\x2a\x5e\x89\x76\x08\xc6\x46\x07\x00\xc7\x46\x0c\x00\x00\x00"
"\x00\xb8\x0b\x00\x00\x00\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80"
"\xb8\x01\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xe8\xd1\xff\xff"
"\xff\x2f\x62\x69\x6e\x2f\x73\x68\x00\x89\xec\x5d\xc3";

void main() {
   int *ret;

   ret = (int *)&ret + 2;
   (*ret) = (int)shellcode;
}

私はあなたのウェブサイトでシェルコードを実行しようとしているいくつかの怪しいマシンがあると思います。

0