webhacking.kr 15번 풀이

2015. 8. 13. 03:11wargame/webhacking.kr

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번 풀이  (0) 2018.08.08
webhacking.kr 4번 풀이  (0) 2018.08.08
webhacking.kr 14번 풀이  (0) 2015.08.14
webhacking.kr 6번 풀이  (0) 2015.08.13
webhacking.kr 15번 풀이  (0) 2015.08.13
webhacking.kr 1번 풀이  (0) 2015.08.08