web/webhacking.kr

[webhacking.kr] old-24

Tyojong 2025. 7. 22. 14:05

기능 분석

내 ip와 agent 정보가 뜨면서 Wrong IP! 라는 문자열이 출력된다.

view-source 버튼을 누르면 소스코드를 볼 수 있다.

 

코드 분석

 

if($ip=="127.0.0.1"){
    
solve(24);
    exit();
  }

코크들 보면 사용자의 ip가 127.0.0.1이면 문제가 해결된다.

 

extract($_COOKIE);
$ip $REMOTE_ADDR;

코드를 보면 php에서 extract함수는 배열을 변수로 바꿔주는 함수이다. 즉 extract($_COOKIE)를 하게되면 cookie의 key값을 변수 이름으로 cookie의 value값을 변수의 값으로 설정하게 된다.

해당 코드에서는 ip를 REMOTE_ADDR이라는 변수에서 가져오기 때문에 REMOTE_ADDR이라는 이름으로 키값을 만들면 ip를 조작할 수 있다.

 

$ip str_replace("..",".",$ip);
$ip str_replace("12","",$ip);
$ip str_replace("7.","",$ip);
$ip str_replace("0.","",$ip);

코드를 보면 str_replace함수는 값을 바꿔주는 함수이다. 해당 코드에서 ..은 .으로 12, 7., 0. 은 공백으로 치환한다.

 

익스플로잇

쿠키값에 따라 client ip가 변경되는 것을 알 수 있다.

 

필터링을 우회하기 위해 112277....00...00....1를 입력하면 문제가 해결된다.