Wargame/webhacking.kr(30)
-
webhacking.kr 23번 문제(old)
23번 문제의 메인 페이지다. 아래의 글을 보니 1이라는 경고창(alert())을 띄우면 될것 같다. 그래서 바로 스크립트 문을 주입해 주었다. 아마도 주입한 저 문자열에서 필터링이 걸리는것 같다. 그래서 하나하나 다 조사해 보니 , / 등은 걸리지 않는다. 하지만 여기서 저 특수문자들은 사용이 가능한데 아무 문자열을 2개이상 붙혀서 입력하면 no hack 이 뜨는것 같다. 결국 script 문자열을 사용하지 못한다는 말이다. 그래서 Null bite(%00) 을 글자 사이사이 마다 입력해보자. a%00l%00e%00r%00t(1); 그렇다면 null 의 특성때문에 각각의 자리에서 문자열이 끊길 것이고 그렇기때문에 우회가 가능 할 것으로 보인다. 이처럼 1이라는 경고창이 뜨게 되었고 문제를 풀..
2019.10.10 -
webhacknig.kr(old) 18번 문제
바로 소스를 봅시다. 주석을 보면 admin 의 no 는 2라고 하고 id 가 admin이면 문제가 풀리는것 같습니다. 그리고 preg_match() 함수를 통해 공백,( , ) | , & ,select , from , 0x 등을 필터링 하는것으로 보입니다. 그냥 url 값에다가 get 방식으로 no 를 넣어주어봅시다. 하지만 no의 값을 2로 만들어 줘야 하기 때문에 ?no=0%0aor%0ano=2 를 입력해봅시다. 여기서 %0a 는 개행문자(\n)로 공백을 우회할때 쓰이는 문자입니다.
2019.10.10 -
webhacking.kr(old) 17번 문제
문제를 접속하면 아래와 같은 입력창이 뜬다. 바로 소스코드를 확인해보자. 아래와 같은 스크립트 태그를 볼 수 있다. 정말 쉽다. 그냥 입력값과 unlock 의 값이 같으면 문제가 풀리는것 같다. 하지만 unlock 의 값이 너무나 길다. 그렇지만 저 값을 개발자 도구의 console 창에 입력해준다면 바로 값이 출력된다. 한번 입력해보자. 7809297.1 이란 값이 나왔다. 이제 이 값을 입력창에 넣고 check 버튼을 눌러주자.
2019.10.09 -
webhacking.kr(old) 16번 문제
16번 문제를 접속하면 보이는 화면이다. 바로 소스코드를 확인해보자. 아무래도 제일 아래에 있는 if 문에 do it 이라는 주석이 있는것을 보아 저 조건문을 실행시켜줘야 할 것 같다. 이 코드를 보기 전에 위의 사진과 같이 body 태그에서 키보드 입력이 있으면 그 키코드를 mv() 함수의 인자값으로 보내 mv함수를 실행시키는 것을 확인하였다. 그래서 mv 함수를 보면 키보드 입력 값이 100,97,119,115,124 중 하나이면 조건문을 통과해 저 이상한 * 이 움직이는것 같다. 이 값들은 아스키 코드값이다 . 아래의 표를 참고하시길 바랍니다. 위의 표에서 100,97,119,115 은 각각 d,a,w,s 를 의미한다. 그럼 키 값에 124 는 무엇일까? 124에는 영어 알파벳 l 처럼 생긴 문자가..
2019.10.09 -
webhacking.kr(old) 15번 문제
문제를 들어가자마자 Access_Denied 라는 문구와 함께 index 창으로 넘어왔다. 이 문제는 자바스크립트로 alert() 창을 띄운 후에 이전페이지 또는 webhacking.kr 의 주소로 이동되는것 같다. 그렇다면 위의 사이트에서 사용되는 javascript를 무력화 해준다면 alert 창이 뜨지 않으면서 15번의 문제로 들어갈 수 있을것 같다. 인터넷 오른쪽 상단의 점 3개? 버튼을 눌러 크롬 설정창으로 이동합시다. 그 후 아래로 스크롤을 쭉 내려서 고급 이란 버튼을 눌러줍니다. 개인정보 및 보안이라는 카테고리에 가서 사이트 설정에 접속합니다 권한이라는 카테고리안에 자바스크립트가 허용된것을 볼 수 있습니다. 자바스크립트항목을 클릭 후 15번 문제의 주소를 복사해서 입력한후 15번 문제의 자바..
2019.10.09 -
webhacking.kr 14번 문제(old)
14번 문제를 들어가면 위와같은 창이 뜬다. 그냥 아무값이나 먼저 넣어보자. 얻은건 아무것도 없었으니 바로 소스를 봅시다. ul 이란 변수에 document.URL(현재 위치하는 페이지 즉 14번 문제의 url값) 을 넣습니다. 그리고 ul에 ul.indexOF(".kr")의 값을 넣는다고 하는군요 자바스크립트 함수인 indexOF 는 문자열 안에 조건이 되는 문자열이 몇 번째 위치에 존재하는 지를 확인하는 함수입니다. ex) ul=1234.kr -> .kr이 시작하는 위치인 4가 되는 것입니다. 사용법은 "문자열".indexOF("검색할 문자열",시작 위치); 입니다. 그래서 소스를 다시 해석한다면 변수 ul에 들어있는 문자열 에서 .kr이 시작되는 위치를 숫자로 표현하여 다시 ul에 저장 시키고 그 ..
2019.10.04