ホームページ >ウェブフロントエンド >htmlチュートリアル >HTML を使用して、IP_HTML/Xhtml_Web ページの作成を制限する投票 Web サイトの不正行為スキームを実装する

HTML を使用して、IP_HTML/Xhtml_Web ページの作成を制限する投票 Web サイトの不正行為スキームを実装する

WBOY
WBOYオリジナル
2016-05-16 16:36:421560ブラウズ

IP を制限する投票 Web サイトの不正行為については、この方法は投票 Web サイトのいくつかの抜け穴を利用してリモート IP を監視します。HTTP は TCP より上の 7 番目の層にあり、これは不可能です。本物の IP アドレスを偽造した人は最近投票ソフトウェアを必要としていました。この投票 Web サイトには確認コードがあり、各 IP は 1 つの投票に制限されているようです。最初に確認コードを調べました:

この投票ウェブサイトの認証コードは、最初は非常にシンプルで、標準的な位置に標準的な 4 つの数字が配置されているため、簡単に識別できます。その後、数字は必ずしも同じではなく、文字もあり、位置は必ずしも上下ではないという点に変わり、現在では認証コードの認識はソフトウェアだけでなく、ソフトウェアにとっても困難になりました。手動認識。山と川に逃げ道はありませんが、暗い柳と明るい花が咲く別の村があります。内訳については次の段落を参照してください。

継続的な分析と調査の結果、この検証コードのチェックに抜け穴があることがわかりました。このコードを直接特定したり検証したりする必要はありません。なぜなら、彼は検証コードが空であるかどうかをチェックするための JS コードを設定するためです。通常、この種の JS 検証の効果はゼロです。投票 Web サイトとしては、この種の検証のみが使用されます。このように、投票処理の動的ページは検証コードが空であるかどうかをチェックしません。これは実際には喜ばしいことではなく、セキュリティに大きな隠れた危険をもたらします。ウェブサイトの。

検証コードの問題については、投票時に検証コードファイルに直接アクセスしない限り、検証コードが空であるかどうかを確認しない方法について学びました。投稿時に検証コードパラメータを空のままにしておいてください。

もう 1 つの問題は、投票 Web サイトが IP をチェックし、1 つの投票のみを許可するように IP を制限することです。これは、プロキシを使用するか、常に切断してダイヤルアップすることによってのみ実現できます。他に良い方法が思いつきませんでした。その後、この友人がこの Web サイトですぐに投票できるプログラムを見つけました。私はこのプログラムの IP ソリューションに非常に興味があったので、友人にそれを分析するよう依頼しました。

まず、パケットをキャプチャしてこの投票ソフトウェアを調べました。準備ができたら、投票プログラムを開き、「更新してください。ソフトウェアの競合を確認してください!」と言いました。はい、その後、いくつかのプログラムを閉じます。シャットダウンしても、パケット キャプチャ プログラムが 1 つだけ残っており、依然として競合が発生していました。ははは、このプログラムは実際に誰かがそのソフトウェアを分析する可能性があることを知っていて、不審なプログラムが存在するかどうかをチェックするためにプロセス名まで走査していたことが判明しました。それを分析したりパケットをキャプチャしたりするプログラムがあったとしても、彼は実行を拒否しただけです。ははは、現在私が知っているのは、彼が制限しているソフトウェアには、簡単な言語プログラミング ソフトウェアと WSockExpert_Cn パケット キャプチャ ソフトウェアが含まれています。はは、Yi Language をオフにし、WSockExpert_Cn の名前を変更し、ソフトウェア独自のセキュリティ テストに合格し、正常に実行されました。

以下は、私の使用中に彼が投票したデータ パッケージです:

XML/HTML コードコンテンツをクリップボードにコピー
  1. POST /vote/view.php?sid=33行為=投票 HTTP/1.1
  2. 受け入れる: */*
  3. 参照元: http://www.qdnfy.gov.cn/vote/vote.php
  4. Content-Type: application/x-www-form-urlencoded
  5. X-Forwarded-For: 218.20.218.200
  6. クライアント IP: 218.20.218.200
  7. 経由: 218.20.218.200
  8. REMOTE_ADDR: 218.20.218.200
  9. 受け入れ言語: zh-cn
  10. Accept-Encoding: テキスト
  11. ユーザー エージェント: Mozilla/4.0 (互換性; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)
  12. ホスト: www.qdnfy.gov.cn
  13. Cookie: PHPSESSID=pldjnb6scereodjm5niqb9q990
  14. Content-Length: 49
  15. 接続: 閉じる

-Forwarded-For この http ヘッダー パラメーターに続いて IP が見つかりました、はは、このパラメーターには背景があるに違いありません、私はまったく知らなかったことが判明しました、はは、急いで百度で検索してください。

以下はBaiduの解説記事ですので、ぜひご覧ください。
IP を偽造するために HTTP ヘッダーの X-Forwarded-For フィールドを偽造する Baidu は、X-Forwarded-For の原理を研究しました。これは、X-Forwarded-For について初めて知りました。 Forwarded-For: クライアント、つまり HTTP リクエスターの実際の IP を表す省略形の XFF ヘッダー。この項目は、HTTP プロキシまたは負荷分散サーバーを通過する場合にのみ追加されます。

これは、RFC で定義されている標準のリクエスト ヘッダー情報ではありません。この項目の詳細については、Squid キャッシュ プロキシ サーバー開発ドキュメントを参照してください。

標準的な形式は次のとおりです:

X-Forwarded-For: client1、proxy1、proxy2

標準形式からわかるように、カンマで区切られた複数の X-Forwarded-For ヘッダーが存在する場合があります。最初の項目は実際のクライアント IP で、残りは通過したプロキシまたはロード バランシング IP です。 . いくつかのアドレスを渡すと、いくつかのアドレスが表示されます。

wiki の X-Forwarded-For の説明 http://en.wikipedia.org/wiki/X-Forwarded-For 分析:

クライアント IP を偽造したいので、まずクライアント IP アドレスを取得する方法を見てみましょう (PHP を例にします) このコードは、ほとんどの Web サイトでこのコードを使用している可能性があります。

XML/HTML コードコンテンツをクリップボードにコピー
  1. $user_IP = ($_SERVER["HTTP_VIA"]) //プロキシが使用されているかどうか
  2. ?
  3. $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
  4. //取得に失敗した場合は、REMOTE_ADDR から取得します
  5. $
  6. user_IP = ($user_IP) : $_SERVER["REMOTE_ADDR"];
  7. ?>
  8. まず、HTTP_VIA ヘッダーが存在するかどうかを確認します。HTTP_VIA ヘッダーは、プロキシ サーバーが使用されているかどうかを示します。存在しない場合は、REMOTE_ADDR フィールドからクライアント IP を取得します。メンバーのコードはすべて Baidu のものと思われます。
それでは、テストしてみましょう

サーバーコード:

XML/HTML コード

コンテンツをクリップボードにコピー
//出力 HTTP_X_FORWARDED_FOR
  1. エコー "HTTP_X_FORWARDED_FOR:".$_SERVER["HTTP_X_FORWARDED_FOR"];
  2. // REMOTE_ADDR echo "REMOTE_ADDR:" を出力します。
  3. ?>
  4. 取得されたクライアント IP アドレスが実際のアドレスであることがわかります。 したがって、Web サイトが X-Forwarded-For からクライアント IP アドレスを決定する場合、この論理的な抜け穴を利用して投票を増やすことができます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。