먼저 view-source를 확인해보았다.
extract 함수 : 함수에 배열타입의 변수를 넣고, 배열속의 키값들을 변수화
htmlspeicalchar 함수 : 문자열에서 특수 문자를 html엔티티로 변환
$REMOTE_ADDR : 사용자의 IP정보
$HTTP_USER_AGENT : 사용자의 웹접속환경 정보를 담고 있는 PHP전역변수
코드를 해석해보면,
$ip는 $REMOTE_ADDR의 값과 같은데, 이 중 특수문자는 html엔티티로 변환되고, ".."는 "."로, "12", "7.", "0."은 공백으로 대체된다.
이 때, $ip가 127.0.0.1이면 문제가 해결된다 !
$_SERVER[REMOTE_ADDR]는 IP주소 값인데, IP주소값을 바꿀 수는 없다.
코드를 보면 extract($_SERVER)보다 extract($_COOKIE)가 더 늦게 실행되므로 $_COOKIE[REMOTE_ADDR]값을 127.0.0.1로 바꿔주면 문제를 해결할 수 있다.
REMOTE_ADDR이라는 쿠키를 생성하고 127.0.0.1을 입력했더니, client ip에 1이 출력되었다.
12와 7.과 1.이 모두 공백으로 대체된 것이다ㅠ
이를 우회하기 위해 112277...00...00...1을 입력하였더니,
문제 해결 ٩꒰。•◡•。꒱۶
'WEB > webhacking.kr (old)' 카테고리의 다른 글
webhacking.kr 25번 (0) | 2020.02.06 |
---|---|
webhacking.kr 23번 (0) | 2020.02.05 |
webhacking.kr 20번 (0) | 2020.02.02 |
webhacking.kr 19번 (0) | 2020.01.29 |
webhacking.kr 15번 (0) | 2020.01.27 |