https://dreamhack.io/wargame/challenges/268
xss-2
여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 문제 수정 내역
dreamhack.io
[1] 문제 탐색
초기 화면이다.
/vuln(xss) page.
아무것도 보이지 않는다.
/memo 페이지
들어간 횟수만큼 "hello"가 적히게 된다.
/flag 페이지
param를 매개변수로하는 어떤 값을 제출할 수 있는 페이지이다.
[2] 문제 풀이
xss-1와 구성은 같지만 더 이상 /vuln페이지에서 <script>를 이용한 스크립트 삽입 공격이 어려웠다.
따라서 <script>가 아닌 innerHTML을 이용하여 XSS 공격을 시도하여 flag 값을 얻어내야 한다.
구글링을 해보니, 'xss 방화벽 우회'를 통해 풀어야 한다는데...
많은 방법이 존재하는데, 아래 티스토리에 나온 방법을 사용해보았다.
https://fascination-euna.tistory.com/137
[Dreamhack] xss-2
xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다 XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다 # 접속 xss-1 문제와 다르지 않은 페이지가
fascination-euna.tistory.com
/vuln?param=<svg onload="alert('1')">
이렇게 코드를 입력하니 alert가 잘 실행이 되는 것을 확인할 수 있었다.
<svg onload="location.href = '/memo?memo=' + document.cookie">
1번 문제와 차이점이 vuln(xss) page의 스크립트 동작 여부만 다르다는 것을 알면 풀이 방법이 보이는 문제라고 한다.
vuln(xss) page 에서 <script>alert</script> 구문 외에 우회하여 동작하는 스크립트가 있는지 찾아보고,
찾아낸 코드를 사용하면 되는 문제이다.
[3] 참고
https://fascination-euna.tistory.com/137
[Dreamhack] xss-2
xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다 XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다 # 접속 xss-1 문제와 다르지 않은 페이지가
fascination-euna.tistory.com
https://maplewina.tistory.com/entry/Dreamhack-1%EB%8B%A8%EA%B3%84-xss-2
[Dreamhack] 1단계 - xss-2
해당 실습은 Dreamhack에서 제공되는 가상환경에서 진행되었습니다. 사전 동의 없는 불법 침입, 수색, 분석 등의 행위는 불법이니 꼭 명심하시길 바랍니다. 앞에서는 로드맵에서 기본저인 힌트를
maplewina.tistory.com
'Hacking (CTF) > 웹 해킹' 카테고리의 다른 글
[Dreamhack/드림핵] XSS Filtering Bypass (0) | 2023.11.10 |
---|---|
[webhacking.kr] Challenge old-23 (0) | 2023.11.09 |
[xss-game] Level 5: Breaking protocol (3) | 2023.11.06 |
[Dreamhack/드림핵] xss-1 (0) | 2023.11.05 |
[Dreamhack/드림핵] DOM XSS (0) | 2023.11.05 |