ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] 35번 풀이
    Wargame/webhacking.kr (old) 2019. 5. 7. 17:34


    우선 소스코드~



    소스 코드를 해석해보면,

    get 방식으로 phone의 값을 전송한 후 문자열을 필터링하고, insert문을 이용하여 값을 DB에 삽입한다.


    admin의 ip주소값과 $_SERVER[REMOTE_ADDR]의 값이 같으면 문제가 풀린다.

    insert 구문을 이용하여 id : admin, ip : 나의 ip주소 로 데이터를 삽입해주어야 하는 문제이다.


    insert 구문을 보면, value가 아닌 values로 되어 있다. 이는 여러개의 데이터를 한 번에 삽입할 수 있다.

    (phone은 '가 없는 것을 보니 int형으로 추측해본다.)


    insert into challenge35_list(id, ip, phone) values('session_id', '내IP', 1),('admin', '내IP',2)


    MySQL을 이용하여 해당 insert문이 올바른 구문인지 확인해보았다.



    에러 없이 두 개의 데이터가 삽입되었다.

    이제 문제로 돌아가서 입력해보았다.



    query error...

    정상적인 구문인데 에러가 났다. 다른 문제들 처럼 magic_quotes_gps가 켜져있는 것 같다.

    '를 우회하기 위해 2진수, 16진수, char를 사용할 수 있는데

    x가 필터링되어 있기 때문에 16진수는 사용할 수 없다.


    [ 2진수 ] admin : 0b0110000101100100011011010110100101101110)

    [ char 함수 ] char(내 IP ascii 값)


    2진수, char 둘 다 사용하여 값을 보내보았다.


    phone=1),(0b0110000101100100011011010110100101101110,char(내 IP),2



    두 개의 데이터가 한 번에 삽입됨으로써, admin의 IP 주소 값이 나의 IP 주소 값이 되어 문제가 풀린다.




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

    [Webhacking.kr] 38번 풀이  (0) 2019.05.07
    [Webhacking.kr] 37번 풀이  (0) 2019.05.07
    [Webhacking.kr] 34번 풀이  (0) 2019.05.07
    [Webhacking.kr] 33번 풀이  (0) 2019.05.07
    [Webhacking.kr] 32번 풀이  (0) 2019.05.07

    댓글

@Jo Grini's Blog