Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

BEATSLOTH 공대인의 무덤

XSS(Cross-site Scripting)에 대해서 본문

HACKING/Hacking

XSS(Cross-site Scripting)에 대해서

SLOTHH 2016. 3. 20. 21:26

XSS 공격에 대해서 알아봅시다 . 

XSS 는 Cross-site Scripting의 약자로 응 ?? 그럼 css 해야하는거 아닌가요 ?? 

할수 있는데 CSS 는 이미 쓰고 있는 곳 이있어서 명칭이 XSS 가 되었다는 후문 이 있다 .


XSS 는 웹 상에서 기초적인 취약점 공격법 중 하나로 

공격자가 악의적인 스크립트를 사이트에 넣는 방법을 말한다 .

공격에 성공하면 의도치 않은 행동을 수행, 또는 쿠키, 세션 등 , 중요 민감 정보를 탈취 할 수 있다 .


주로 자바스크립트, HTML을 이용하며 공격 방법이 간단하다. 주로 게시판 , 등 사람들이 많이 들어오는 곳에 삽입하며 

스팸메일로도 공격이 가능하다 . 즉  HTML을 사용하지 않는 곳은 발생할 염려가 없다는 뜻 .


CSRF는 특정 행동을 시키는 것이고 XSS 는 자바스크립트를 실행하는 차이점을 가지고 있다 .


예를 들면 

input폼에 악의적인 스크립트를 삽입하는 방법이 있는데 

Cookie.php 라는 파일에 악의 적인 스크립트를 넣으면 게시물을 확인할 때 쿠키값이 해당 사이트로 전송되어 

피해자는 자기도 모르게 털리는 경우가 발생한다. 

세션이 끝나기 전에 해커가 탈취한 세션으로 접속한다면 탈탈 털릴수 있다는 이야기 




OWASP 에서 발표한 XSS 공격 방지 7계명


0.절대 허용된 위치가 아닌 다른 위치에 신뢰할 수 없는 데이터가 들어가는 것을 허용하지 말아라

1.신뢰할 수 없는 데이터에 대해서는 치환 처리를 해라

2.HTML 속성에 신뢰할 수 없는 데이터가 들어갈 수 없도록 하여라 

3.자바스크립트에 신뢰할 수 없는 값이 들어갈수 없도록 하여라

4.CSS에서 모든 신뢰할 수 없는 값에 대해서 검증하여라

5.URL의 경우에도 파라미터에 선회 할 수 없는 값이 있는지 검증하여라

6.HTML 코드를 전체적으로 한번더 검증하라.



공격법


<script>alert('xss');</script>

최근에는 잘 먹히진 않지만 .. 대부분 xss가 먹히는지 안먹히는지 테스트 용도로 많이 쓰는 문장이라고 보면 된다 .




alert는 이것과 같은 거라고 보면 된다. 


script를 막는 다면 다른 태그를 이용하는 방법이 있다 .

<a href="javascript:alert('xss')">XSS</a>

a href 는 하이퍼링크를 이용한 것이다. (html) 하이퍼링크에 javascript:alert를 넣어 실행 하는 방법으로 

옛날 사이트, 관리자가 보안을 하지 않는 곳에서 먹힐 법한 것이다 .

 

<img sec ="j

avascr ipt:alert(1)">

다음 소스는 이미지로 자바스크립트를 우회하는 방법으로 공백이나 탭을 포함 한다 .


<ruby onmouseover="alert(xss)">xss</ruby>

사이트 관리를 하면서 간혹 자주 들어오는 공격문자나 태그를 막는 경우가 있다 .

루비 언어를 사용한 것으로 마우스를 오버시키면 alert가 나오는 공격법


<img src="&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;

&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x27;&#x58;&#x53;&#x53;&#x27;&#x29;">

또는 다음과 같이 난독화가 가능하다 .ㄷㄷㄷ 정성 보소 .. 



방어법 


Java 기반 일 경우는 web.xml에 필터를 선언하여 모든 파라미터가 해당 필터를 거치게 하고 필터링을 잘 하기만 해도 예방이 가능 하다.

PHP 는 input에 대해 Preg_replace를 이용하거나 DOMDocument를 이용해 차단이 가능하다 .


오늘은 XSS 에 대해 알아보았습니다 .


참조 : https://namu.wiki/w/XSS   (나무위키 xss)



Comments