-
[Webhacking.kr] 24번 풀이Wargame/webhacking.kr (old) 2019. 5. 6. 17:19
ip가 잘못되었다고 한다..?
소스를 보니 ip가 127.0.0.1 이어야 한다.
extract()
배열 속의 키 값을 변수화 시켜주는 함수
ex) \$a[x] = 11; \$a[y] = 22;
extract(a) => x=11, y=22
\$REMOTE_ADDR
php의 환경변수 \$_SERVER의 값 중 하나로, 사이트에 접속한 클라이언트의 IP주소를 나타낸다.
\$HTTP_USER_AGENT
php의 환경변수 \$_SERVER의 값 중 하나로, 클라이언트의 브라우저 정보를 나타낸다.
소스를 해석해보면,
\$_SERVER의 키 값과 \$_COOKIE의 키 값을 변수화 시킨다.
\$REMOTE_ADDR 변수에 값이 없으면, \$_SERVER[REMOTE_ADDR]의 값을 넣어준다.
이때, \$_SERVER[REMOTE_ADDR]의 값은 나의 IP주소이다.
쿠키 값에 REMOTE_ADDR이라는 변수가 존재하면 ip 값의 특정 값들을 공백으로 대체시킨다.
우선, REMOTE_ADDR이라는 쿠키를 생성하였다.
원래 나의 ip값이 있었던 client ip 값이 1로 바뀌었다.
str_replace 함수에 의해 127.0.0.1에서 '12', '7.', '0.'이 공백으로 대체되어 1이 남은 것이다.
str_replace 함수를 우회하여 127.0.0.1을 만들어주면 된다.
112277..00..00..1 을 입력하면 str_replace 함수에 의해 공백으로 바뀌어도 127.0.0.1이 남는다.
4
쿠키를 생성하는 방법으로 개발자 도구의 콘솔 창을 이용할 수도 있다.
document.cookie="REMOTE_ADDR=112277..00..00..1";
쿠키 값을 위와 같이 설정해주면 ip값이 127.0.0.1이 되면서 문제가 풀린다.
'Wargame > webhacking.kr (old)' 카테고리의 다른 글
[Webhacking.kr] 26번 풀이 (0) 2019.05.07 [Webhacking.kr] 25번 풀이 (0) 2019.05.07 [Webhacking.kr] 23번 풀이 (0) 2019.05.06 [Webhacking.kr] 22번 풀이 (0) 2019.05.06 [Webhacking.kr] 21번 풀이 (0) 2019.04.19 댓글