본문 바로가기

보안/웹해킹

[Dreamhack] 1단계 - xss-2

해당 실습은 Dreamhack에서 제공되는 가상환경에서 진행되었습니다.

사전 동의 없는 불법 침입, 수색, 분석 등의 행위는 불법이니 꼭 명심하시길 바랍니다.

 

앞에서는 로드맵에서 기본저인 힌트를 주고 풀이까지 존재하기에 어렵지 않게 넘어갈 수 있었다.

2번 문제는 1번 문제에서 약간의 응용을 요구하는 문제인 것 같다.

 

Step 1)

Stage 4의 '혼자실습'에 설명이 포함되어 있는 문제이다.


Step 2)

접속 정보를 받아 접속해보면 확인할 수 있는 각 페이지들은 다음과 같다.

다운로드한 문제 파일을 열어 소스코드와 같이 확인해 보면 동작한 결과를 이해할 수 있다.

(이번 문제에서는 vuln 페이지의 동작 결과가 다름)

문제 파일(소스코드)

① 메인 페이지에 해당하는 코드

메인 페이지

② vuln(xss) 페이지에 해당하는 코드. 앞선 1번 문제와는 다르게 param 인자를 가져와 화면에 보여주는 것이 아닌 메인 페이지처럼 vuln.html 페이지를 보여준다.

vuln(xss) 페이지

③ flag 페이지에 해당하는 코드. 1번 문제와 동일하다.

flag 페이지

④ memo 페이지에 해당하는 코드. 1번 문제와 동일하다.

memo 페이지


Step 3)

1번 문제는 풀이에 대한 설명도 있고 vuln(xss) 페이지에서 이미 스크립트 구문이 동작한다는 사실을 알려줘서 쉽게 풀이를 할 수 있었다. 1번 문제와 차이점이 vuln(xss) 페이지의 스크립트 동작 여부만 다르다는 것을 알았다면 풀이 방법이 보인다.

vuln(xss) 페이지에서 <script>alert(1)</script> 구문 외에 우회하여 동작하는 스크립트가 있는지 찾아보자.

(xss cheat sheet를 참고하면 다양한 태그에서 동작시킬 수 있는 스크립트 구문을 확인할 수 있다.)

<svg onload=alert(1)>


Step 4)

vuln(xss) 페이지에서 스크립트가 동작하도록 우회 구문을 찾았으니 이를 사용하여 1번 문제풀이와 같이 삽입한다.

<svg onload="location.href='http://127.0.0.1:8000/memo?memo='+document.cookie">


Step 5)

memo 페이지로 이동하면 쿠키 값이 출력되어 있는 것을 볼 수 있다. (Request Bin은 생략)

'보안 > 웹해킹' 카테고리의 다른 글

[Dreamhack] 1단계 - xss-1  (0) 2023.05.22
[Dreamhack] 1단계 - session-basic  (0) 2023.05.16
[Dreamhack] 1단계 - devtools-sources  (0) 2023.05.16
[Dreamhack] 1단계 - cookie  (0) 2023.05.08