old-24 풀이
2021. 8. 27. 01:47ㆍwebhacking.kr
728x90
코드를 한 줄 한 줄 해석해보겠습니다.
extrack($_SERVER) : SERVER의 값을 변수로 변환
extrack($_COOKIE) : COOKIE의 값을 변수로 변환
if($REMOTE_ADDR) 부분을 보면 htmlspecialchars() 함수를 사용해서 특수문자를 필터링하는 것을 볼 수 있습니다.
그리고 str_replace() 함수를 이용해 필터링을 해주고 있습니다.
- .. -> .
- 12 -> NULL
- 7. -> NULL
- 0. -> NULL
if($ip=="127.0.0.1")을 보면 ip 주소가 127.0.0.1일 때, 문제가 풀리는 것을 알 수 있습니다.
우선, 같은 문자를 여러 번 넣는 방식으로 필터링 우회를 해서 ip를 조작하면 될 것 같습니다.
$REMOTE_ADDR에 COOKIE의 값이 변수로 바뀌어서 들어가니 COOKIE를 127.0.0.1로 변조해보겠습니다.
쿠키 값을 왜 저렇게 했는지는 아래를 보시면 알 수 있을 겁니다.
112277...00...00...1
1277...00...00...1
127..00...00...1
127.00...00...1
127.0..00...1
127.0.00...1
127.0.0..1
127.0.0.1
이건 여담이지만, EditThisCookie에서 쿠키 생성할 때 No Restriction을 꼭 Lax로 바꾸고 생성해주세요.
안 그러면 쿠키가 저장이 안 됩니다.
멍 때리면서 하다가 저것 때문에 10분 날렸습니다.
728x90