ホームページ  >  記事  >  ウェブフロントエンド  >  Cookie インジェクションはどのように行われるのか_JavaScript スキル

Cookie インジェクションはどのように行われるのか_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:54:301244ブラウズ

Cookie が挿入される状況を調べてみましょう。ASP を学習したことがある方なら、

コードをコピーします コードは次のとおりです。以下:

Request.QueryString (GET)

または
コードをコピー コードは次のとおりです。

Request.Form (POST)

ああ、そうです、これは、ユーザーから WEB サーバーへの値! コードを簡略化するために、

ID =Request("ID")

この書き方は簡単ですが、ここで問題が発生します~~~ まずはやり方を見てみましょうWEB サービスは最初に GET でデータを取得しますが、POST でデータを取得する代わりに、Cookie でもデータを取得します (笑、本にはそんなことは書いてありません。Xiao Gao と通信して初めて知りました)。 ~~ この本は不完全のようです~~)

もう一度アンチインジェクションシステムを見てみましょう。これは、GET と POST に特殊文字 (もちろん、ここではインジェクション文字) が存在する場合にデータを検出します。 )! データの送信は禁止されますが、Cookie のデータは検出されません。ここで問題が発生します~~~Cookie の注入に問題があるかどうかをテストするにはどうすればよいですか~最初に以下のリンクをご覧ください (例として使用されているため、リンクは実際のものではありません)
http://www.xxx。 com/1.asp ?id=123

http://www.xxx.com/1.asp だけを入力すると、パラメータがないため通常のデータが表示されません。 Cookie に問題はありますか (リクエスト (「XXX」) 形式の問題もありますか)。まず IE を使用して http://www.xxx.com/1.asp

と入力し、Web ページをロードします。表示がおかしい(パラメータを入力しない理由) IEの入力ボックスに
javascript:alert(document.cookie="id="escape("123"));と入力し、
Enterを押します。次の内容のダイアログ ボックスが表示されます: id=123 その後、Web ページを更新すると、正常に表示された場合は、
Request("ID") ~~~~。この形式では、Cookie を挿入して入力ボックスに入力してみることができます。
javascript:alert(document.cookie="id="escape("123 and 3=3") );
ページを更新します。表示が正常であれば、次のステップを試すことができます (正常でない場合は、フィルタリングされている可能性もあります)
javascript:alert(document.cookie="id= "escape("123 and 3=4"));
ページを更新します。正常に表示されない場合は、インジェクションがあることを意味します~ ~~プログラマが
Request.QueryString
または Request.Form
を使用してデータを収集する場合、サービス プログラムは GET または POST から直接データを読み取るため、Cookie の注入には問題ありません。はい、WEB サーバーは Cookie にデータが含まれているかどうかを無視するため、Cookie を使用して注入することはできません。クッキー! ~
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。