IP を制限する投票 Web サイトの不正行為の場合、この方法は投票 Web サイトのいくつかの抜け穴を利用してリモート IP を監視します。HTTP は TCP の 7 番目の層であり、偽造することは不可能です。最近、IP アドレスの友人が投票ソフトウェアを必要としているので、この投票 Web サイトには検証コードがあり、各 IP は 1 つの投票に制限されているようです。最初に確認コードを勉強しました:
この投票ウェブサイトの確認コードは最初は非常にシンプルで、標準的な位置に標準的な 4 つの数字があり、識別するのが簡単です。その後、桁数が必ずしも定まらない、文字が入っている、位置が上下にあるとは限らないという点に変わり、現在では認証コードの認識はソフトウェア側だけでなく困難となっています。手動識別用。山と川に逃げ道はありませんが、暗い柳と明るい花が咲く別の村があります。内訳については次の段落を参照してください。
私は継続的な分析と調査を行った結果、彼の検証コードチェックに抜け穴があることが分かりました。この抜け穴はコードを直接バイパスしたため、識別したり検証したりする必要がありません。検証コードが空の JS コードであるかどうかを確認するだけで、この検証の効果はユーザーの利便性のみにあります。投票 Web サイトでは、この検証方法のみが使用され、投票処理の動的ページは検証コードが空かどうかをチェックしません。これは実際には喜ばしいことではなく、Web サイトのセキュリティに大きな隠れた危険をもたらします。
検証コードの問題については、投票時に検証コードファイルに直接アクセスしない限り、検証コードが空かどうかをチェックしないため、その解析方法について学びました。したがって、確認コードが空である限り、投稿時に確認コードのパラメーターを空のままにするだけです。
そして、もう 1 つの問題は、この投票 Web サイトが IP をチェックし、1 つの投票のみを許可するように IP を制限していることです。これは、プロキシを使用するか、常に切断してダイヤルアップすることによってのみ実現できます。他に良い方法が思いつきませんでした。その後、この友人がこの Web サイトですぐに投票できるプログラムを見つけました。私はこのプログラムの IP ソリューションに非常に興味があったので、友人にそれを分析するよう依頼しました。
まず、パケットをキャプチャしてこの投票ソフトウェアを調べました。準備ができたら、投票プログラムを開きます。「リフレッシュされました。ソフトウェアの競合です。」パケット キャプチャ プログラムが 1 つだけ残っていたのですが、それでも競合が発生していました。ハハ、このプログラムは実際に、誰かがそのソフトウェアを分析する可能性があることを知っていて、疑わしいプログラムが存在するかどうかをチェックしていました。パケットを分析またはキャプチャするプログラムを実行することを拒否しただけです。ははは、現在私が知っているのは、彼が制限しているソフトウェアには、簡単な言語プログラミング ソフトウェアと WSockExpert_Cn パケット キャプチャ ソフトウェアが含まれています。はは、Yi Language をオフにし、WSockExpert_Cn の名前を変更し、ソフトウェア独自のセキュリティ テストに合格し、正常に実行されました。
以下は、私が使用していたときに彼が投票したデータ パケットです:
POST /vote/view.php?sid=33act=vote HTTP/1.1 Accept: */* Referer: http://www.qdnfy.gov.cn/vote/vote.php Content-Type: application/x-www-form-urlencoded X-Forwarded-For: 218.20.218.200 CLIENT_IP: 218.20.218.200 VIA: 218.20.218.200 REMOTE_ADDR: 218.20.218.200 Accept-Language: zh-cn Accept-Encoding: text User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506) Host: www.qdnfy.gov.cn Cookie: PHPSESSID=pldjnb6scereodjm5niqb9q990 Content-Length: 49 Connection: Close
-Forwarded-For 私は、この http ヘッダー パラメーターの後に IP が続いているのを見つけました。笑、このパラメーターには起源がある必要があります。全然知りませんでした(笑)、早速百度で検索してみます。
以下はBaiduの解説記事ですので、ぜひご覧ください。
HTTP ヘッダーの X-Forwarded-For フィールドを偽造して IP を偽造する X-Forwarded-For の原理は以前から研究されていましたが、X-Forwarded については初めて知りました。 -For: クライアント、つまり HTTP リクエスターの実際の IP を表す XFF ヘッダー。この項目は、HTTP プロキシまたは負荷分散サーバーを通過する場合にのみ追加されます。
これは、RFC で定義されている標準のリクエスト ヘッダー情報ではありません。この項目の詳細な紹介は、Squid キャッシュ プロキシ サーバーの開発ドキュメントに記載されています。
標準的な形式は次のとおりです:
実際のクライアントIPの場合、残りはいくつか通過したプロキシまたはロードバランシングIPアドレスです。
wikiのX-Forwarded-Forの説明 http://en.wikipedia.org/wiki/X-Forwarded-For Analysis:
クライアントIPを偽造したいので、まずクライアントIPを取得する方法を見てみましょう。アドレス (PHP を例にします)。このコードは Baidu で検索されたものです。ほとんどの Web サイトでこのコードが使用されている可能性があります。
$user_IP = ($_SERVER["HTTP_VIA"]) ? //是否使用了代理 $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; //获取失败则从REMOTE_ADDR获取 $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; ?>
まず、HTTP_VIA ヘッダーが存在するかどうかを確認します。HTTP_VIA ヘッダーは、プロキシ サーバーが使用されているかどうかを示します。存在しない場合は、REMOTE_ADDR フィールドからクライアントの IP アドレスを取得します。多くのプログラマは Baidu コードから来ていると思います
それでは、テストしてみましょう
//输出HTTP_X_FORWARDED_FOR echo "HTTP_X_FORWARDED_FOR:".$_SERVER["HTTP_X_FORWARDED_FOR"]; //输出REMOTE_ADDR echo "REMOTE_ADDR:". $_SERVER["REMOTE_ADDR"]; ?>
IP アドレスを制限する投票 Web サイト不正行為の HTML 実装に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。