0x02 Study :)/Webhacking

    webhacking.kr Level 31 문제풀이

    webhacking.kr Level 31 문제풀이

    Level 31 $port=rand(10000,10100); $socket=fsockopen("$_GET[server]","$port",$errno,$errstr,3) or die("error : $errstr"); port를 10000 ~ 10100 중 랜덤 값으로 설정되고 server주소로 해당 포트번호 접속을 시도한다. 칼리에서 nc -nvl -p 10000 로 접속을 기다리고 있으면 랜덤 포트가 10000 됬을 때 password를 날려준다. 공유기를 사용하면 공유기 설정에서 포트포워딩 설정을 해줘야 한다. flag값은 자신의 아이피에 따라 달라진다.

    webhacking.kr Level 26 문제풀이

    webhacking.kr Level 26 문제풀이

    Level 26 index.phps eregi 함수가 뭐지...😢 php에서 http메소드를 통해 들어오는 사용자의 입력 검증 또는 필터링을 통해 eregi와 같은 함수를 사용한다. [+] 추가적으로 "id=admin"이라는 값을 넣었을 때, PHP 5.2+, 5.3+에서는 모두 정상적으로 필터링 되고 있다. 하지만 앞부분에 "%00"의 NULL을 넣으니 PHP 5.3+에서는 필터링을 하지 못했다. 이를 통해 PHP 5.3+ POSIX Regex필터링을 우회할 수 있다. PHP 5.3+에서 위의 문제를 수정하기 위해 POSIX Regex함수들을 PCRE Regex로 변경하는 것을 요구하고 있다. 다시 문제로 돌아와서 해당 문제는 GET 방식으로 id를 받고, 해당 값이 "admin"이면 필터링을 수행한다..

    webhacking.kr Level 25 문제풀이

    webhacking.kr Level 25 문제풀이

    Level 25 url을 보니http://webhacking.kr/challenge/bonus/bonus-5/?file=hello 이렇게 되어 있다.ls -la 명령어 처럼 파일 들이 보여지는데, hello.txt파일이 있다. 하단은 해당 파일 내용이 보여 지는 듯 하다. file 인자에 hello만 넣어도 hello.txt가 실행 된 것으로 보아... 자동으로 .txt 를 붙여 주는 듯하다. 따라서 우리는 password.php를 실행 시켜야 하므로 php이후에 %00을 넣어주면 .txt가 붙어도 의미가 없게 된다. http://webhacking.kr/challenge/bonus/bonus-5/?file=password.php%00 flag : Challenge 25 password is~~nullb..

    webhacking.kr Level 24 문제풀이

    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 문제풀이

    webhacking.kr Level 23 문제풀이

    Level 23 alert(1); 를 넣는 것이 미션이란다. 그래서 넣어보았다. "no hack"이라고 출력된다. 앞서 푼 문제들로 추정해 봤을 때, 필터링이 있는 것 같았다. 그래서 어떤 문자가 필터링 되는지 여러가지 문자들을 넣어 보았다. '', '(', ')' 등 특수문자들과 숫자는 모두 가능하지만, 알파벳이 연속 2자리 이상 오면 무조건 필터링 된다. php나 c같은 백엔드 언어의 경우 문자열에서 %00(NULL)을 만나면 문자열의 끝이라고 생각하고 더 이상 필터링 하지 않는다. %00 를 넣으니 Clear!

    webhacking.kr Level 21 문제풀이

    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 문제풀이

    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();