문제에 들어가면 Access_Denied라는 alert가 뜨고, webhacking.kr 창으로 이동한다.
-> alert가 쓰인 것, /(webhacking.kr)로 이동하는 것을 파악해라. 사소한 정보도 넘기지 말자
alert창이 나온다는 점, 주소창이 js-2로 되어있다는 점에서 페이지가 javascript에 의해 작동하는 것으로 보인다.
-> alert는 순수 javascript의 함수로, 다른 프로그래밍 언어에서는 동일한 문법으로 지원되지 않는다. 앞으로 alert가 보이면 js를 생각하자.
자바스크립트에 의해 alert와 페이지 이동이 작동하는것이라면, 자바스크립트를 꺼주면 해당 액션이 작동하지 않는다는 소리가 된다. chrom > 개인정보보호 및 보안 > 사이트 설정 > 자바스크립트 허용하지 않음으로 바꾼 뒤 old-15문제에 접근하면 아래 html 코드를 얻을 수 있다.
취약점
location.href='/' 에 의해 메인 화면으로 돌아가는것이 문제였다. alert 이후 /로 리다이렉션되고, 브라우저가 페이지 이동을 하게되면 현재 페이지의 자바스크립트 실행이 중단되기 때문에 document.write가 실행되지 않는다.
익스플로잇
document.write 부분에 <a href=?getFlag>가 있으니 이 부분을 콘솔창에 입력하면 아래 주소로 이동할 것이다. 이는 ?쿼리문을 작성하는 것과 동일하게 작동한다(둘다 url 주소 뒤에 ?가 붙게되니).
정리: Write-up을 참고하며 - 버프 스윕트 이용
버프 스윕트에서 html 편집이 가능하다고 한다. 그러면 alert와 location.href 부분을 지우고 요청을 보내면 되는데, html 편집이 안되는 상태이다. 이건 나중에 해결되면 다시 작성하기로 하자.