English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JavaScript注入 공격이 무엇인가요?
1JavaScript注入는 주소 표시줄에 JS 코드를 입력하여 페이지 JS 변수, 페이지 태그의 내용을 변경하는 것입니다.
JavaScript注入는 사용자가 웹 브라우저 주소 표시줄에 JS 코드를 입력하여 페이지 JS 변수, 페이지 태그의 내용을 변경하는 것입니다.
javascript:alert(#command#)
예를 들어, 다음과 같은 경우:http://www.example.comURL을 주소 표시줄에 입력하여 페이지를 로드한 후, URL을 지우고 다음을 입력하면 됩니다:
javascript:alert("Hello World")
새로운 URL로 변경하고 싶습니다. 이렇게 하면 “Hello World” 경고 팝업이 뜨게 됩니다. 이 기술을 사용하면 웹 페이지의 대부분의 내용을 변경할 수 있습니다. 예를 들어, 한장의 이미지를 변경할 수 있습니다. 예를 들어, 웹 사이트 로고 이미지가 있다면, 페이지 소스 파일을 확인하여 다음과 같은 HTML 코드를 찾을 수 있습니다:
<IMG Name="hi" SRC="hello.gif">
이미지는 “hi”로 명명되었고, 원본 파일은 “hello.gif”입니다. 우리는 이를 우리의 사이트(http://www.mysite.com)에 있는 “bye.jpeg” 파일이 있기 때문에, 이미지의 전체 URL 주소는 http://www.mysite.com/bye.jpeg,JavaScript注入를 사용하여, 주소 표시줄에 입력하면 됩니다:
javascript:alert(document.hi.src="http://www.mysite.com/bye.jpeg")
http:” 팝업을 볼 수 있습니다.//www.mysite.com/bye.jpeg”경고 알림이 뜨고, 그런 다음 이미지가 변경되었습니다. 주의해야 할 것은 이 변경이 일시적인 것임을 알아야 합니다! 페이지를 새로 고침하거나 다시 접속하면 변경 사항이 사라질 것입니다. 그 이유는 PC에서만 변경했기 때문이며, 웹 서버에 변경을 안 했기 때문입니다.
同じ方法で変数の値を確認または変更できます。例えば、ウェブページで以下のようなコードを見つけます:
<SCRIPT LANGUAGE="JavaScript"> var a="test" </SCRIPT>
これは変数aの値が「test」であることを意味します。次に以下のように入力します:
javascript:alert(a)
次にその値を「hello」に変更します:
javascript:alert(a="hello")
JavaScriptインジェクションは通常、フォーム属性の変更に使用されます。以下のようなコードがあります:
<form name="format" action="send.php" method="post"> <input type="hidden" name="mail" value="[email protected]"> <input type="text" name="name"> <input type="submit" value="submit"></form>
フォームを私たちのメールアドレスに送信したい場合、以下のコマンドを使用できます:
javascript:alert(document.format.mail.value="[email protected]")
これらのコマンドの階層関係に注意してみてください:
左から右に順に説明します:
1)一番左はdocument
2)次に変更したいオブジェクト名(例:document.hi.src)またはその含まれるオブジェクト(例:document.format.mail.value)
3)最後に変更したい属性(例:ソースパス:document.hi.src、または変数値:document.format.mail.value)
4)ピリオド"."で区切ります
5)属性値を変更する場合、等号"="と新しい属性値を使用します
*注:新しい属性値が文字列の場合(例:document.format.mail.value="[email protected]")、それをダブルクォートで括ります。
変数の値として使用する場合、ダブルクォート""を使用する必要はありません。例えば、変数bの値を変数aに割り当てたい場合は、javascript:alert(a=b)と入力できます。
ただし、ページのほとんどのタグには名前がありません。例えば:
<form action="send.php" method="post"> <input type="hidden" name="mail" value="[email protected]"> <input type="text" name="name"> <input type="submit" value="submit"></form>
在此コードにはフォーム名がありません。上記の情報を総合すると、このコマンドを使用できます:
javascript:alert(document. .mail.value="[email protected]")
이 경우에는 폼 순번을 계산하고 찾아내어야 합니다. 예제를 보여드리겠습니다:
<form action="send.php" method="post"> <input type="text" name="name"> <input type="submit" value="submit"> </form> <form action="send.php" method="post"> <input type="hidden" name="mail" value="[email protected]"> <input type="text" name="name"> <input type="submit" value="submit"> </form> <form action="send.php" method="post"> <input type="text" name="name"> <input type="submit" value="submit"> </form>
위 코드에서 우리는3폼이 있습니다, 그러나 우리는 두 번째 폼에만 관심이 있습니다. 따라서 원하는 폼 순번은2그렇지 않습니다1부터 계산합니다, 예를 들어1,2,3,4...그러나 JavaScript는 0부터 계산하기 때문에 예를 들어 0,1,2,3...따라서 실제 폼 순번은1이렇지 않습니다2일반적으로 찾은 폼 순번을 1 감소시켜야 합니다. 이 순번을 명령을 완성하기 위해 사용할 것입니다:
javascript:alert(document.forms[1].mail.value="[email protected]")
이렇게 하면 이름이 없는 이미지나 링크를 변경할 수 있습니다. "forms"를 원하는 태그 유형으로 변경할 수 있습니다. 이미지에 대해서는
javascript:alert(document.images[3].src="#the url of the picture you want#")
링크에 대해서는
javascript:alert(document.links[0].href="#the url you want#")
마지막으로, 이 기술로 쿠키를 편집할 수 있습니다. 다음 명령은 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(1, ( (c.indexOf(";")>-1) ?c.indexOf(";") : c.length));nc=unescape(c).replace(v,nv); document.cookie=n+"="+escape(nc);return unescape(document.cookie);}); alert('쿠키는: "'+document.cookie+"'');alert(c(prompt("쿠키 이름:",""), prompt("이 값을 변경하세요:",""),prompt("이와 같이:","")))
//자신의 쿠키를 수동으로 변경하려면 다음 명령을 사용할 수 있습니다:
”, 다음 명령을 사용할 수 있습니다:12
javascript:alert(document.cookie="userid=2
마지막으로 강조하지만, 모든 변경은 클라이언트에서만 발생합니다! 즉, 웹 페이지를 PC에 저장하고 수정하는 것과 같습니다. 그러나, 이 기술을 사용하면 페이지(예: 쿠키)를 속이거나 보안 확인을 우회할 수 있습니다. 예를 들어, 일부 웹 페이지는 사용자가 데이터를 보내는 위치를 검사합니다. http:에서부터 데이터를 보낼 경우://www.test.com/form.php이 http:로 데이터를 전송합니다://www.test.com/check.php, check.php은 데이터가 http:에서 왔는지 검사할 수 있습니다: //www.test.com/form.php에 있는 양식. 이 외에도, 페이지에 자신의 JavaScript 코드를 입력하려고 한다면, 이런 기술을 사용하면 이미지를 변경하고 유지할 수 있습니다!
이 문서의 모든 내용이 끝입니다. 여러분의 학습에 도움이 되길 바랍니다. 또한, 나의 노래教程에 많은 지원을 부탁드립니다.