webhacking.kr 15번 풀이
문제가 매우 쉽고 풀이 방법도 많은 데다가
사실,문제의 답을 대놓고 보여주는 문제답게 점수도 낮다.
이 문제에 대한 풀이가 필요할까 싶다.
[HINT]
1. 사륜안(?)
처음 페이지를 들어가게 되면 Access_Denied라고 뜨며 문전박대당하게 된다.
소스를 볼 때면 이미 다 푼 거라 볼 수 있지만, 일단 소스를 보면
javascript의 alert 함수로 Access_Denied를 띄운 뒤,
history.go(-1)를 이용해 자신이 이 페이지를 접하기 전의 페이지로 돌아가게 만든다.
이것을 우회할 방법이 여러 개 존재한다.
해당 풀이는 전부 크롬에서 할 수 있다.
1. view-source: 이용하기
크롬은 프로그램 내 특수한 주소명령체계를 이용하는데 그중 하나가 view-source:이다.
view-source:뒤에 특정 URL을 붙이면 특정 URL의 소스를 보여준다.
2. 새 탭에서 열기
history.go(-1)는 해당 창에서 바로 전에 요청했던 페이지로 이동하게 한다.
하지만 문제 페이지가 처음으로 요청한 페이지라면 뒤로 이동할 수 없게 된다.
그러므로 URL을 복사한 뒤 Alt+Enter를 누르게 되면 새 창에서 열리고 뒤로 이동할 페이지가 없어서
문제 페이지에서 벗어나지 않게 된다.
(아니면 시작 페이지를 문제페이지로 지정해서 브라우저를 열어도 된다.)
3. 자바스크립트 실행 비허용
크롬 옵션의 개인정보 탭에는 자바스크립트의 실행을 결정할 수 있는 옵션이 있다.
옵션 -> 개인정보 -> 컨텐츠 보호 -> 자바스크립트 -> 예외관리 에서
문제 페이지의 자바스크립트 실행을 차단한 후 접속하게 되면 빈 페이지가 나온다.
보이는 것만 빈 페이지일 뿐 flag 값을 js로 출력하기 때문에 차단된 문제 페이지에서는 소스 보기를 통해서만 볼 수 있다.
이 문제는 사실상 페이지에 접속하지 못한 것이 아니고
자바스크립트로 접속한 뒤 바로 전 페이지로 이동해 버리기 때문에 접속 안 된 것처럼 보일 뿐이다.
그러므로 링크를 누르면 문제 페이지로 이동되고 다시 전 페이지로 이동하기 바로 그 직전
문제의 flag 값이 보이게 된다.
그렇기 때문에 사륜안을 통해 flag 값을 알아내도 되는 것이다..
'wargame > webhacking.kr' 카테고리의 다른 글
webhacking.kr 17번 풀이 (1) | 2018.08.08 |
---|---|
webhacking.kr 4번 풀이 (0) | 2018.08.08 |
webhacking.kr 14번 풀이 (1) | 2015.08.14 |
webhacking.kr 6번 풀이 (1) | 2015.08.13 |
webhacking.kr 1번 풀이 (1) | 2015.08.08 |