NULL 잡아먹는 놈

[webhacking.kr] 24번 문제 풀이 본문

0x0070 워게임 문제 풀이/0x0071 webhacking.kr 풀이

[webhacking.kr] 24번 문제 풀이

34t3rNULL 2018. 3. 27. 21:09

Prob24

문제 의도 : extract 함수 취약점, REMOTE_ADDR 수정, str_replace 필터링 우회, 쿠키값 변조

이번 문제의 메인 화면이다. 이것만 봐서는 아무 것도 모르니 소스 보기를 해보니 index.phps를 보라고 한다.

일단 extract 함수를 보니깐 딱봐도 extract 취약점을 이용한 문제 같다. 이 취약점은 다음과 같은데 extract를 사용하면 $_GET, $_SERVER, $_POST, $_COOKIE, $_SESSION 등이 붙어있는 변수의 키 값을 따로 변수로 빼준다. 예로 extract($_COOKIE)를 하면 $_COOKIE['example']이라는 변수는 example로도 사용할 수 있다.

이제 문제는 ip를 127.0.0.1로 맞춰야 하는 것이고, COOKIE를 이용하여서 만들면 안 된다는 것처럼 보인다. 하지만 우리는 str_replace의 허점을 알 고 있다. 문제 자체도 문자 2개씩 필터링 하는 것 보면 의도한 것 같다. 우리는 127.0.0.1을 만들기 위하여 112277..00..00..1 이런식으로 우회를 하면 된다. 12와 7.와 0.은 NULL처리 되니 127.0.0.1이 나올 것 같다. 바꿔준다.