Up
webhacking.kr Level 24 문제풀이
Level 24 ip가 "127.0.0.1"이면 문제가 풀린다. $ip 에는 $REMOTE_ADDR 값이 들어가고 $agen 에는 $HTTP_USER_AGENT 값이 들어간다. Fiddler를 이용해서 User-Agent값을 수정하여 보냈더니 위 처럼 나타났다. 그러면 ip값은 어떻게 가져올까... 코드를 좀더 살펴보니 $_COOKIE안에서 REMOTE_ADDR 을 가져오는 것 같다. Cookie값에는 PHPSESSID 값 뿐이 없다. 그래서 혹시나 속는셈 치고 REMOTE_ADDR을 넣어봤다. Olleh!!! 그런데 원하는 결과는 나오지 않았다. if($_COOKIE[REMOTE_ADDR]) { $ip=str_replace("12","",$ip); $ip=str_replace("7.","",$ip); ..
webhacking.kr Level 23 문제풀이
Level 23 alert(1); 를 넣는 것이 미션이란다. 그래서 넣어보았다. "no hack"이라고 출력된다. 앞서 푼 문제들로 추정해 봤을 때, 필터링이 있는 것 같았다. 그래서 어떤 문자가 필터링 되는지 여러가지 문자들을 넣어 보았다. '', '(', ')' 등 특수문자들과 숫자는 모두 가능하지만, 알파벳이 연속 2자리 이상 오면 무조건 필터링 된다. php나 c같은 백엔드 언어의 경우 문자열에서 %00(NULL)을 만나면 문자열의 끝이라고 생각하고 더 이상 필터링 하지 않는다. %00 를 넣으니 Clear!
webhacking.kr Level 21 문제풀이
Level 21 Blind SQL Injection이라고 되어 있다. 주소창을 보니 no, id, pw값을 입력받고 있다. no에 숫자들을 입력해 보니 True라고 나오는 숫자는 1과 2뿐이다. 따라서 id값은 1과 2이다. 이제 각 id에 맞는 id와 pw를 찾아내야 한다. 1 and length(id)=5 를 이용하여 id의 길이가 5인 것과, pw의 길이가 5인 것을 알아 냈다. 똑같은 방법으로 no가 2인 id와 pw의 길이도 알아내면 id는 5, pw는 19의 길이를 가지고 있다. no id pw 1 ? (5) ? (5) 2 ? (5) ? (19) 이제 아이디를 찾아보자. 보통 5의 길이를 가진 id는 'admin'이 있다. 이를 예측해보고 no=1의 id를 substr()를 이용하여 찾아보자...
webhacking.kr Level 20 문제풀이
Level 20 해당 페이지의 주요 코드를 보면 위와 같다. id, cmt, hack값을 입력받고 submit을 한다. 입력하고 "Submit"하니 "Wrong"이라고 뜬다. time limit:2 인것 보니 2초 안에 해야 되는 것같다. 그래서 크롬 console을 이용하여 다음 코드를 한번에 입력하였다. javascript:(lv5frm.id.value='1'); javascript:(lv5frm.cmt.value='1'); javascript:(lv5frm.hack.value=lv5frm.attackme.value); javasecript:ck();
webhacking.kr Level 17 문제풀이
Level 17 unlock 값과 패스워드가 같으면 끝. 계산은... 크롬이 대신 해준다. 개발자모드에서 콘솔을 이용하자. flag : 999780930.7
webhacking.kr Level 16 문제풀이
Level 16 키보드 를 누르면 '*' 문자가 생기고 마우스를 갖다 대면 지워진다... 뭥미...? 😕 Challenge 16 * mv 함수를 자세히 보니 cd의 값을 비교하며 작업을 수행하는데 마지막 부분에 cd가 124이면 특정 사이트로 이동 되는것 같다. cd값을 어떻게 변경해야 할까? python으로 확인해보니 ascii값 124는 '|'(파이프) 였다. 크롬 개발자모드의 콘솔에서 mv함수를 강제로 불러와 인자값으로 124를 넘겨줘도 풀릴것 같다. flag : webhacking.kr
webhacking.kr Level 15 문제풀이
level 15 level 15 버튼을 누르면 "Access_Denied"라는 알림창이 뜨고 들어가 지지 않는다. fiddler를 통해 캡처를 해보았다. 패킷에 브레이크 포인트를 걸고 하나씩 보내보니 "password is off_script"라고 뜨고 전 페이지로 리다이렉트 되었다. flag : off_script