본문 바로가기
보안/Webhacking.kr

[Webhacking.kr] Challenge(old) old-15 풀이

by zlzzlzz2l 2020. 11. 26.
반응형

개념

: JavaScript 차단, 자바스크립트(location.href, document.write)


풀이

old-15 문제를 클릭하면

Access_Denied 라는 alert 창이 뜬다.

확인을 누르니 다시 webhacking.kr 메인 페이지로 돌아갔다.

Alert 창이 뜨지 않아야 문제를 해결할 수 있을 거 같아 JavaScript를 차단하려고 한다.

오른쪽 상단에 … 클릭 후, <설정>을 누른다.

클릭 후, <설정 검색> 창에서 “자바스크립트”를 검색하면, 검색 결과 1개라는 말풍선이 보일 것이다.

말풍선이 있는 곳을 따라 <사이트 설정>을 클릭한다.

클릭 후, 스크롤을 조금 내리면 <자바스크립트>를 볼 수 있다. <자바스크립트>를 클릭한다.

클릭하면 <허용(권장)>이 열려있는 것을 볼 수 있다.

열린 것을 닫아주어 자바스크립트를 차단해준다.

차단 후에 다시 Old-15 문제를 클릭한다.

그러면 alert 창이 뜨지 않고 빈 화면을 볼 수 있다.

빈 화면으로는 문제를 해결할 수 없을 거 같아 [F12](개발자 도구)를 눌러보았다.

script 태그 안에 location.hrefdocument.write를 볼 수 있었다.

여기서 Flag를 얻을 수 있을 거 같은 느낌이다.

여기서 알아야 될 개념 location.href와 document.write에 대해서 살펴보려고 한다.


개념 설명

location.href

location은 객체이다. location 객체의 속성 중에 href가 있는데 이 속성은 전체 URL을 나타낸다.

‘ ‘ 안의 값을 변경하면 해당 주소로 이동할 수 있다.

= 간단하게 location.href를 이용하여 페이지를 이동할 수 있다는 것이다.

document.write

= 웹 브라우저 화면에 출력할 수 있는 기능이다.

개념을 알았으니 Script 태그를 해석해보자!

소스코드 분석

1
2
3
4
5
//현재 URL은 /이다.
location.href('/');
 
//현재 url이 ?getFlag라면 [Get Flag]로 이동된다.
document.write(“<a href=?getFlag>[Get Flag]</a>”);
cs

코드에서 원하는 대로 Flag를 얻기 위해 url에 ?getFlag를 입력해보았다.

입력하면

old-15가 풀린 걸 확인할 수 있었다.

이 문제를 풀고나서 다시 자바스크립트를 허용해주는 것을 잊으면 안된다!


저의 주관적인 생각이 담긴 글입니다.

이 글을 보신 분들에게 도움이 되고자 글을 썼지만 부족한 부분이 많을 수 있습니다.

그 점 양해 부탁드리며, 추가했으면 하는 부분이나 잘못된 부분은 댓글로 알려주시면 감사하겠습니다!

반응형

'보안 > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] Challenge(old) old-17 풀이  (0) 2020.11.26
[Webhacking.kr] Challenge(old) old-14 풀이  (0) 2020.11.26

댓글