JavaScriptインジェクション攻撃とは何ですか?
1. JavaScriptインジェクションは、JSコードの一部をブラウザアドレスバーに入力して、ページJS変数とページラベルのコンテンツを変更することです。
JavaScriptインジェクションを使用して、ユーザーはブラウザのアドレスバーで行われるWebページを閉じたり保存せずにコンテンツを変更できます。コマンドの構文は次のとおりです。
JavaScript:alert(#コマンド#)
たとえば、http://www.example.comサイトにアラート警告ボックスが表示される場合は、最初にアドレスバーにURLを入力してページがロードされるのを待ち、次にURLを削除して入力します。
JavaScript:アラート(HelloWorld)
新しいURLとして。これにより、この手法を使用して、写真などのWebページ上のほとんどすべてを変更します。 Webサイトのロゴ画像があるとし、ページソースファイルを調べてHTMLコードの1つを見つけるとします。
<img name = hi src = hello.gif>
画像の名前はhiという名前で、ソースファイルはhello.gifです。サイトに保存されているbye.jpegファイル(http://www.mysite.com)に変更したいので、画像の完全なアドレスはhttp://www.mysite.com/bye.jpegです。
javascript:alert(document.hi.src = http://www.mysite.com/bye.jpeg)
http://www.mysite.com/bye.jpegalert警告ポップアップが表示され、画像が変更されます。これらの変更は一時的なものであることに注意する必要があります!ページを更新したり、変更を再入力したりすると、WebサーバーではなくPCでこれらの変更を行ったため、変更が消えます。
同じ方法を使用して、変数の値を表示または変更できます。たとえば、このようなコードがWebページにあります。
<スクリプト言語= javascript> var a = test </script>
これは、変数Aの値がテストであることを意味し、次のように入力します。
JavaScript:アラート(a)
次に、その値をHelloに変更します。
JavaScript:アラート(a = hello)
JavaScript注入は通常、次のようなコードがあると仮定して、フォームプロパティを変更するために使用されます。
<form name = format action = send.php method = post> <入力タイプ= hidden name = mail値= [email protected]> <入力タイプ=テキストname = name> <入力タイプ= submit = submit> </form>
フォームをメールボックスに送信したいのですが、some somewhere.comではなく。次のコマンドを使用できます。
javascript:alert([email protected])
たぶん、あなたはこれらのコマンドの階層に気づいたことがあります:
左から右に説明しましょう:
1)文書は左側にあります
2)変更するオブジェクト名(document.hi.srcなど)またはそれに含まれるオブジェクト(document.format.mail.valueなど)があります。
3)最後に、変更する属性(ソースパス:document.hi.src、または変数値:document.format.mail.valueなど)
4).Number分離を使用します
5)属性値を変更する場合、= signと新しい属性値を使用します
*注:新しい属性値が文字列(例:[email protected])である場合、二重引用符で囲む必要があります。
変数の値として使用する場合は、二重引用符を使用する必要はありません。たとえば、変数bの値を変数Aに割り当てる場合、JavaScript:alert(a = b)を入力できます。
ただし、ページのほとんどのタグには、次のような名前がありません。
<form action = send.php method = post> <入力タイプ=非表示name =メール値= [email protected]> <入力タイプ=テキストname = name> <入力タイプ= submit = submit> </form>
このコードにはフォーム名はありません。上記の情報に基づいて、このコマンドを使用できます。
javascript:alert(document。.mail.value= [email protected])
この場合、フォームシーケンス番号を数えて見つけなければなりません。以下は例です。
<form action = send.php = post> <input type = text name = name> <input type = submit value = submit> </form> <form action = send.php method = post> input> hidden name = mail value = [email protected]> <入力型=テキストname = name = name> <入力タイプ= submit = submit = submit = <purt> <posp> <post> </form>
上記のコードでは3つのフォームが表示されますが、2番目のフォームにのみ興味があるため、必要なフォーム数は2です。1、2、3、4などの1から開始することを忘れないでください。このシリアル番号を使用して、コマンドを完成させます。
javascript:alert(document.forms [1] .mail.value = [email protected])
これにより、名前なしで画像またはリンクを変更でき、フォームを必要なタグタイプに変更できます。写真用
javascript:alert(document.images [3] .src =###)#)
リンクはです
javascript:alert(document.links [0] .href =#必要なurl#)
最後に、この手法を使用してCookieを編集できます。次のコマンドは、triviasecurity.netのdr_amadoによって書かれており、ユーザーが編集する前に表示するために少しだけ変更しました。アドレスバーにコピーする必要があります。
javaScript:alert(window.c = function a(n、v、nv){c = document.cookie; c = c.substring(c.indexof(n)+n.length、c.length); c = c.substring((c.indexof(;)>> - 1)?c.indexof(; document.cookie = n+=+escape(nc); alert( 'Cookie is:'+document.cookie+''); alert(c(provent(cookieの名前:)、プロンプト(この値を変更する)、プロンプト(this:、:、))))))//クッキーを手動で変更する場合は、次のコマンドを使用できます。
JavaScript:alert(document.cookie)
これにより、現在のCookieが表示されます。UserID= 1を想定して、userID = 2に変更する場合は、次のコマンドを使用できます。
javascript:alert(document.cookie = userId = 2)
最後に、すべての変更がクライアント側にあることを強調する必要があります! WebページをPCに保存して変更するようなものです。それでも、このトリックを使用して、ページ(Cookieなど)をだましたり、セキュリティ検証をバイパスしたりできます。たとえば、一部のWebページでは、ユーザーがデータを送信する場所を検出します。 http://www.test.com/form.phpからhttp://www.test.com/check.phpにデータを送信すると、check.phpがhttp://www.test.com/form.phpのフォームからデータが届くかどうかを検出する場合があります。それに加えて、これらのトリックのいくつかを使用して、独自のJavaScriptコードをページに入力する予定がある場合は、画像を変更して同じままにすることができます!
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。