JavaScript 주입 공격은 무엇입니까?
1. JavaScript 주입은 페이지 JS 변수 및 페이지 레이블의 내용을 변경하기 위해 브라우저 주소 표시 줄에 JS 코드를 입력하는 것입니다.
JavaScript Injection을 사용하여 사용자는 브라우저 주소 표시 줄에서 수행되는 웹 페이지를 닫거나 저장하지 않고 콘텐츠를 변경할 수 있습니다. 명령의 구문은 다음과 같습니다.
JavaScript : Alert (#command#)
예를 들어, http://www.example.com 사이트에서 경고 경고 상자를 보려면 먼저 주소 표시 줄에 URL을 입력 한 다음 페이지가로드 될 때까지 기다렸다가 URL을 삭제하고 다음을 입력하십시오.
JavaScript : Alert (Hello World)
새로운 URL로. 이 기술을 사용하여 사진과 같은 웹 페이지의 거의 모든 것을 변경하여 Hello World 경고 상자가 나타납니다. 웹 사이트 로고 이미지가 있다고 가정하고 페이지 소스 파일을 보면 HTML 코드 중 하나를 찾습니다.
<img name = hi src = hello.gif>
이미지의 이름은 HI이고 소스 파일은 hello.gif이며 사이트에 저장된 bye.jpeg 파일 (http://www.mysite.com)으로 변경하려고하므로 이미지의 전체 URL 주소는 http://www.mysite.com/bye.jpeg, javaScript 주입을 사용하여 주소를 입력해야합니다.
javaScript : Alert (document.hi.src = http : //www.mysite.com/bye.jpeg)
http://www.mysite.com/bye.jpegalert 경고 팝업이 표시되고 이미지가 변경됩니다. 이러한 변화는 일시적이라는 점에 유의해야합니다! 페이지를 새로 고치거나 다시 입력하면 웹 서버가 아닌 PC에서 이러한 변경을했기 때문에 변경 사항이 사라집니다.
예를 들어, 웹 페이지에서 이와 같은 코드 조각을 찾을 수있는 동일한 방법을 사용하여 변수의 값을 보거나 변경할 수 있습니다.
<script language = javaScript> var a = test </script>
변수 a의 값이 테스트이고 이제 우리는 다음을 입력한다는 것을 의미합니다.
JavaScript : Alert (a)
그런 다음 값을 Hello로 변경합니다.
JavaScript : Alert (a = hello)
JavaScript 주입은 일반적으로 다음과 같은 코드가 있다고 가정 할 때 일반적으로 형태의 속성을 변경하는 데 사용됩니다.
<양식 이름 = 형식 action = send.php method = post> <입력 유형 = hidden name = mail [email protected]> <입력 유형 = 텍스트 이름 = 이름> <입력 유형 = 제출 값 = 제출> </form>
우리는 양식을 누군가가 아닌 우편함으로 보내기를 원합니다. 다음 명령을 사용할 수 있습니다.
JavaScript : Alert ([email protected])
어쩌면 당신은이 명령의 계층을 발견했을 것입니다.
왼쪽에서 오른쪽으로 순서대로 설명해 봅시다.
1) 문서는 가장 왼쪽에 있습니다
2) 그런 다음 변경하려는 객체 이름 (예 : Document.Hi.Src) 또는 포함 된 객체 (예 : Document.Format.Mail.Value)가 있습니다.
3) 마지막으로 변경하려는 속성 (예 : 소스 경로 : Document.Hi.Src 또는 변수 값 : Document.Format.Mail.Value)
4)
5) 속성 값을 변경하려면 = 부호와 새 속성 값을 사용합니다.
*참고 : 새 속성 값이 문자열 인 경우 (예 : [email protected]) 이중 인용문으로 동봉해야합니다.
변수의 값으로 사용하려면 이중 인용문을 사용할 필요가 없습니다. 예를 들어, 변수 b의 값을 변수 a에 할당하려면 javaScript : alert (a = b)를 입력 할 수 있습니다.
그러나 페이지의 대부분의 태그에는 다음과 같은 이름이 없습니다.
<form action = send.php method = post> <입력 유형 = hidden name = mail [email protected]> <입력 유형 = 텍스트 이름 = 이름> <입력 유형 = 제출 값 = 제출> </form>
이 코드에는 양식 이름이 없습니다. 위 정보를 기반 으로이 명령을 사용할 수 있습니다.
javaScript : Alert (문서 .mail.value = [email protected])
이 경우 양식 시퀀스 번호를 계산하고 찾아야하며 다음이 예입니다.
<form action = send.php method = post> <입력 유형 = 텍스트 이름 = 이름> <입력 유형 = 제출 값 = 제출 값 = 제출> </form action = send.php method = post> <input type = hidden name = mail [email protected]> <입력 = 이름> <입력 유형 = 제출 = 제출 = post tethod = input tych. <입력 유형 = 제출 값 = 제출> </form>
위의 코드에서 우리는 3 가지 양식에만 관심이 있지만 두 번째 형식에만 관심이 있으므로 원하는 양식 번호는 2입니다. 1, 2, 3, 4와 같이 1에서 시작하는 반면 JavaScript는 0, 1, 2, 3 등 0부터 시작한다는 것을 잊지 마십시오. 따라서 실제 양식 번호는 1이 아닙니다. 일반적으로 발견 된 양식 숫자는 1입니다. 이 일련 번호를 사용하여 명령을 완료합니다.
javaScript : Alert (document.forms [1] .mail.value = [email protected])
이렇게하면 이름없이 이미지 또는 링크를 변경할 수 있으며 원하는 태그 유형으로 양식을 변경할 수 있습니다. 사진 용
JavaScript : Alert (Document.images [3] .Src =#원하는 사진의 URL#)
링크는입니다
JavaScript : Alert (document.links [0] .href =#원하는 URL#)
마지막 으로이 기술을 사용하여 쿠키를 편집 할 수 있습니다. 다음 명령은 triviasecurity.net의 dr_amado에 의해 작성되었으며 사용자가 편집하기 전에 나타나도록 약간 만 수정했습니다. 주소 표시 줄에 복사하면됩니다.
javaScript : Alert (wind document.cookie = n+=+탈출 (nc); 경고 ( '쿠키는'+document.cookie+''); ALERT (C (프롬프트 (쿠키 이름 :,), 프롬프트 (이 값 변경 :,), 프롬프트 (with :,))))
// 쿠키를 수동으로 변경하려면 다음 명령을 사용할 수 있습니다.
JavaScript : Alert (Document.Cookie)
userId = 1을 가정하면 현재 쿠키가 표시되면 userId = 2로 변경하려면 다음 명령을 사용할 수 있습니다.
JavaScript : Alert (Document.Cookie = userId = 2)
마지막으로 모든 변경 사항이 클라이언트 측에 있다는 것을 강조해야합니다! PC에 웹 페이지를 저장하고 수정하는 것과 같습니다. 그럼에도 불구 하고이 트릭을 사용하면 여전히 페이지 (예 : 쿠키) 또는 우회 보안 검증을 속일 수 있습니다. 예를 들어 일부 웹 페이지는 사용자가 데이터를 전송하는 위치를 감지합니다. http://www.test.com/form.php에서 http://www.test.com/check.php에서 데이터를 보내면 Check.ph는 데이터가 http://www.test.com/form.php의 양식에서 나오는지 여부를 감지 할 수 있습니다. 그 외에도, 자신의 JavaScript 코드를 페이지에 입력 할 계획이라면 이러한 트릭 중 일부를 사용하여 사진을 변경하여 동일하게 남길 수 있습니다!
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.