on
old-24
old-24
old-24
IP 주소와 브라우저 정보 그리고 "Wrong IP"를 출력한다.
view-source를 통해 페이지 소스 코드를 살펴보면
Challenge 24 client ip{$ip}agent{$agent}"; if($ip=="127.0.0.1"){ solve(24); exit(); } else{ echo "Wrong IP!"; } ?> view-source
php 구문을 살펴보면
extract()는 배열 속의 키 값들을 변수화시킨다.
따라서, $_SERVER["REMOTE_ADDR"]을 $REMOTE_ADDR로 사용할 수 있다.
$REMOTE_ADDR인 $ip에서 ".."을 "."으로,
"12"를 ""으로,
"7."를 ""으로,
"0."를 ""으로 변환시킨다.
그리고 $ip가 127.0.0.1이면 문제가 풀린다.
그럼 127.0.0.1에서 거슬러 올라가면 된다.
127.00..00..1 -> 127.0.0.1
1277..00..00..1 -> 127.00..00..1
112277..00..00..1 -> 1277..00..00..1
112277...00...00...1 -> 112277..00..00..1
따라서, REMOTE_ADDR이 121277...00...00...1이면 문제를 해결할 수 있다.
REMOTE_ADDR이 변수이므로 개발자 도구(F12)의 콘솔 창에
dcoument.cookie='REMOTE_ADDR=112277...00...00...1'를 입력하고
새로고침을 하면 문제가 풀린다.
이 문제와 같이 extract()를 $_GET, $_POST, $_SERVER와 같은 전역변수에 사용하게 되면 보안상으로 문제가 될 수 있다.
from http://woong971.tistory.com/210 by ccl(A) rewrite - 2021-12-06 13:26:32