ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

@Jo Grini's Blog