2016-08-31 11 views
0

私は過去数日間、数百のエラーメッセージを受け取りました。誰かが私のサイトの制限された部分をハックしようとしているようです。私たちが使用するセキュリティメカニズムの1つは、IPあたりのヒット数に基づいてブロックすることです(つまり、1つのIPがこのページに週にx回以上ヒットする場合)。このユーザーはどのようにサーバー[REMOTE_ADDR]を変更しましたか?

エラーメッセージにはサーバーのダンプが含まれており、ハッカーが自分のIPアドレスを変更して取得しようとしていることがわかります。 そして、私はちょうど不思議です...どのように地球上でそれをやったのですか?

は、関連するサーバVARSここに含める:

_SERVER dump: 
Array 
(
    [CLIENTIP] => 10.0.1.92 
    [HTTP_X_REQUESTED_WITH] => XMLHttpRequest 
    [HTTP_X_FORWARDED_FOR] => -1' OR 2+819-819-1=0+0+0+1 --, 104.196.143.54 
    [HTTP_X_FORWARDED_PORT] => 443 
    [HTTP_X_FORWARDED_PROTO] => https 
    [REMOTE_ADDR] => -1' OR 2+819-819-1=0+0+0+1 -- 
//etc 
) 
+0

おそらくプロキシですか? – nogad

答えて

1

よく見ると、ユーザーがX-Forwarded-Forヘッダー(HTTP_X_FORWARDED_FOR)を挿入します。このヘッダは、外部から来るときには決して信用されません。特に、それをREMOTE_ADDR(通常はあなたのサーバに直接接続するホストのIPアドレスが含まれています)にコピーするためではありません。

したがって、サーバーがそのヘッダーを送信して他のフィールドにコピーしないようにしてください。あなたの設定はわかりませんが、風景のどこかでプロキシを使っているようです。 CLIENT_IPは、プロキシのIP(プロキシの設定であることがわかっていないと推測されています)のようです。

このプロキシ(またはむしろ、最も外側のシステム - 私は、インターネットからの接続を受け付けます - つまりフロントエンドそれを呼び出す)を担当するヘッダを捨てると、その直接のクライアントのアドレスを再度追加する必要があります -because

  1. これは、あなたがした後、バックエンドでそのアドレスを記録することになるでしょう(彼らは応答を受信するようにサーバーに自分の本当のIPを渡す必要があるとして)、攻撃者によって偽造、そして
  2. することはできません1 ..フロントエンドサーバーからホップします。

TL; DR:通常「要求経路」に関する情報を渡すために、信頼できるセットアップ内で使用されるヘッダ、渡さアタッカー。このヘッダーはシステムによって受け入れられ、リクエストはいくつかの奇妙な "IP"から来たように見えます。

さらに、(コマンドとパラメータを適切に分離しないと)データベース内の任意のステートメントを実行するために使用できるSQLインジェクションを試行しました。 -1' OR 2+819-819-1=0+0+0+1は、特定のシナリオで、結果がすべて-1' OR 1=1になります。これは、クエリが… WHERE foo = '-1' OR 1=1の場合は常にtrueです。

+0

サーバの管理者に連絡して、ヘッダをコピーしているかどうかを確認する必要があります。ありがとう –

関連する問題