문제

    webhacking.kr Level 33 문제풀이

    webhacking.kr Level 33 문제풀이

    Level 33 Challenge 33-1 get이 "hehe"가 되면 Next라는 하이퍼링크가 생성된다. lv2 페이지로 넘어가면서 또다시 코드가 주어졌다. 이번엔 post방식으로 post1과 post2를 입력받는다. 따라서 개발자 모드를 이용하여 해당 페이지의 소스코드를 수정하였다. 그럼 위와 같이 post방식으로 값을 넘길 수 있게 된다. post에는 "hehe", post2에는 "hehe2"를 넘겨주자. lv3 이번엔 myip값이 REMOTE_ADDR과 같으면 된다. 즉 자신의 ip를 넣으면 된다. lv4 힌트로 위와 같은 숫자가주어졌다. password에 time()으로 받아온 값을 md5로 인코딩한 값이 들어면 될 듯하다. 힌트로 주어지는 값은 현재 시간을 가져오는 것 같다. 페이지를 새로고침..

    webhacking.kr Level 32 문제풀이

    webhacking.kr Level 32 문제풀이

    Level 32 1위부터 625위까지 존재하고 맨 아래부분에 "Join"이라는 버튼이 존재한다. 해당 버튼을 누르면 내 id가 추가 되고 0/100 으로 설정된다. 아이디를 누르게 되면 1이 증가하고 vote_check라는 쿠키값이 "ok"로 설정되어 더이상 투표가 불가능해진다. 따라서 fiddler에서 투표하는 패킷을 캡쳐하여 "Reissue Sequentially"를 100번 수행하여 100으로 만들었다.

    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!