Wargame/Webhacking.kr
-
<Webhacking.kr> old-18Wargame/Webhacking.kr 2021. 11. 30. 19:11
old-18 SQL Injection 문제인 듯 하다. view-source를 통해 페이지 소스 코드를 살펴보면 전달받은 no에서 공백, /, (, ), |, &, select, from, 0x를 필터링한다. id가 admin이면 문제가 풀린다. admin의 no가 2라고 힌트가 주어져 있다. 즉, select id from chall18 where id='guest' and no=0 or no=2의 형태로 만들면 된다. 빨간 부분은 테이블에 없기 때문에 select id from chall18 where no=2의 형태가 된다. 위의 쿼리를 수행하면 id가 admin이 된다. 공백을 필터링하기 때문에 %09로 우회했다. 입력 창에 %09를 입력하면 %2509로 바뀌어 입력되고 GET 방식이므로 URL ..
-
<Webhacking.kr> old-15Wargame/Webhacking.kr 2021. 11. 29. 14:21
old-15 문제에 접속하자마자 접근이 거부되었다. 접속하는 순간 페이지 소스 코드를 보기위해 마우스 오른쪽 버튼은 동작하지 않고, 개발자 도구(F12)는 아무것도 출력되지 않았다. Burp Suite를 이용해서 페이지 소스 코드를 살펴보면 alert를 이용하여 "Access_Denied"를 경고창을 띄운다. 그리고 /는 루트 경로를 의미하기 때문에 빨간 줄의 경로로 이동한다. 즉, Burp Suite를 이용해 Response에서 script의 두 줄을 지우면 된다.
-
<Webhacking.kr> old-14Wargame/Webhacking.kr 2021. 11. 29. 13:52
old-14 하나의 입력 창이 있다. 페이지 소스 코드를 보면 자바스크립트로 만들어진 ck()가 있다. var ul=document.URL; document.URL은 현재 주소로 "https://webhacking.kr/challenge/js-1/" ul=ul.indexOf(".kr"); ".kr"이 나오는 인덱스를 반환한다. 따라서 18을 반환한다. ul=ul*30; 이므로 ul=540이다. 따라서, 입력 창에 540을 입력하면 문제를 풀 수 있다.
-
<Webhacking.kr> old-13Wargame/Webhacking.kr 2021. 11. 28. 21:31
old-13 제출 칸에 1을 입력하면 0을 입력하면 2를 입력하면 1을 입력하면 1을 2를 입력하면 0을 0을 입력하면 아무것도 출력하지 않는다. 1이면 참 0이면 거짓인 것 같다. 페이지 소스 코드를 살펴보면 SQL INJECTION result0 제출 칸에서 필터링 되는 문자를 살펴보면 사칙연산(+, -, *, /), #, --, , =, like, and, 공백, &&, ||, where, ascii, union 등 감을 못잡아 https://k-owl.tistory.com/156를 참고해서 풀었다. ■데이터베이스 이름 길이 찾기 database()는 데이터베이스 이름을 돌려주는 함수다. 공백을 필터링 하기 때문에 ()를 사용한다. GET 방식이므로 ?no=(0)or(if(length(databas..
-
<Webhacking.kr> old-12Wargame/Webhacking.kr 2021. 11. 27. 17:42
old-12 자바스크립트 문제인 것 같다. 페이지 소스 코드를 살펴보면 javascript challenge 감정 표현으로 이루어진 코드를 살펴볼 수 있다. 구글링을 통해 찾다 보니 자바스크립트의 aaencode 라는 것을 알게 되었다. aadecode 사이트를 통해 풀어보면 var enco=''; var enco2=126; var enco3=33; var ck=document.URL.substr(document.URL.indexOf('=')); for(i=1;i
-
<Webhacking.kr> old-11Wargame/Webhacking.kr 2021. 11. 25. 15:02
old-11 "Wrong" 메시지만 출력한다. view-source를 통해 페이지 소스 코드를 살펴보면 정규표현식과 자신의 IP주소로 이루어진 $pat이 있다. 이 $pat이 GET 방식으로 전달받은 val과 같으면 문제가 풀리게 된다. [1-3] : 1~3 중 하나의 숫자 [a-f]{5} : a~f 중 하나의 문자를 5번 반복 _ : '_' 문자 .*~.* : .* 뒤에 0개 이상의 문자열을 .*까지 반복 \t : tab을 의미(URL encoding 방식으로 %09) 따라서, ?val=1aaaaa_자기 IP주소%09p%09a%09s%09s를 입력하면 문제를 해결할 수 있다. 만약, 자신의 IP주소를 입력해도 되지 않는다면 검색엔진에 "내 IP 주소 확인"을 통해 IP 주소를 확인해보자.