webhacking.kr 24번 문제(old)

2019. 10. 15. 00:41Wargame/webhacking.kr

24번 문제의 메인 화면입니다.

바로 소스를 확인해봅시다.

소스를 해석해보면 

우선 IP가 127.0.0.1 이면 풀리는것 같고

그 전에 조건문에서 str_replace()함수를 통해서

.. -> .     ,  12 -> ""    , 7. -> ""   ,   0. -> ""

으로 각각 변환된다.

실제로 값을 넣어서 어떻게 조작되는지 확인해보자.

쿠키값의 이름으로 REMOTE_ADDR 이라는 이름을 지정해주고 

값으로 127.0.0.1을 입력해주었다.

그랬더니 메인페이지의 client ip 창에 1이라는 숫자밖에 남지 않았다.

이러한 현상의 이유는 

127.0.0.1 의 값을 넣어줬는데

12(공백으로 변환)7.(공백으로 변환)0.(공백으로 변환)0.(공백으로 변환)1

이 되어서 1만 남게 된 상황이다.

str_replace() 함수는 처음 한번 변수에 저장된 값을 검사하여 변조하고 그 후 다시 저장된 값은 검사를 하지 않는다는 

특성이 있다.

그래서 112277...00...00...1 을 적어주면 어떻게 될까?

->  112277...00...00...1 라는 문자열에서 검사를 하여

     112277...00...00...1

     ->127..0..0..1 의 형태로 빨간색의 글자가 필터링 해서 공백으로 치환된다.

     -> 하지만 저 상태에서 .. 은 .으로 또 치환이 되기 때문에 

    127..(.)0..(.)0..(.)1

     ->의 상태로 치환되어 127.0.0.1 의 값으로 변조된다.

     그렇다면 REMOTE_ADDR 의 쿠키값에 112277...00...00...1 를 적어주자.

 

IP 의 값이 127.0.0.1 로 바뀌면서 문제가 풀렸다.

 

'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 27번 문제(old)  (0) 2019.10.15
webhacking.kr 26번 문제(old)  (0) 2019.10.15
webhacking.kr 23번 문제(old)  (0) 2019.10.10
webhacknig.kr(old) 18번 문제  (0) 2019.10.10
webhacking.kr(old) 17번 문제  (0) 2019.10.09