Webhacking.kr old-24
문제 화면
소스코드
$ip = $REMOTE_ADDR; //ip 변수에 $REMOTE_ADDR 값 저장
$agent = $HTTP_USER_AGENT; //agent 변수에 $HTTP_USER_AGENT 값 저장
if($REMOTE_ADDR){ //REMOTE_ADDR 값이 존재한다면
$ip = htmlspecialchars($REMOTE_ADDR); //REMOTE_ADDR의 값에서 특수 문자를 html로 변환해 재저장
$ip = str_replace("..",".",$ip); //ip의 값에서 ..을 .로 치환
$ip = str_replace("12","",$ip); //ip의 값에서 12를 공백으로 치환
$ip = str_replace("7.","",$ip); //ip의 값에서 7.을 공백으로 치환
$ip = str_replace("0.","",$ip); //ip의 값에서 0.을 공백으로 치환
if($ip=="127.0.0.1"){
solve(24);
exit();
}
// ip의 값이 127.0.0.1이라면 문제 해결
쿠키를 변조시켜 이 변수들을 이용해 ip값을 적절히 저장해준다면 문제를 해결할 수 있을 것.
Edit This Cookie를 이용해주었다.
REMOTE_ADDR이라는 쿠키를 새로 작성해 127.0.0.1을 값으로 넣어보았다.
크롬환경에서 edit this cookie를 이용해 주었는데 오류때문인건지 쿠키추가가 되지 않아
환경을 옮겨주었다. (파이어폭스, cookie editor)
그리고 새로고침을 해주었더니
필터링에서 위의 ip주소가 다 날아가 ip에는 1이 남았다.
이 필터링을 우회해 REMOTE_ADDR에 값을 넣어주면 된다.
.. -> .
12 ->
7. ->
0. ->
이므로
필터링 조건들을 고려해 위와 같은 값을 저장해주고 새로고침을 해주었다.
ip 값이 127.0.0.1로 바뀌며
문제를 풀었다.