ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] 53번 풀이
    Wargame/webhacking.kr (old) 2019. 5. 8. 22:35


    hello world만 출력되어 있다.

    소스를 보자.



    hidden_table의 값을 get 방식으로 전송해주면 문제가 풀린다.

    val의 값은 union 등의 문자열이 필터링되어 있고 쿼리문을 살펴보면 '가 없다.

    숫자인 것으로 추측할 수 있다.


    val 값을 입력해보자.


    1. val = 1



    2. val = 2



    3. val = 3



    4. val = 4



    5~ 의 숫자에는 페이지에 아무것도 출력되지 않는다.

    데이터가 4개인 것으로 추측해본다.


    우선 MySQL을 통해 테이블 명을 알아보자.

    num_53이라는 테이블을 생성하였다.



    1. information_schema

    select test1 from num_53 where test2=1

    union select table_name from information_schema.tables;



    . . . . . .



    test1의 결과와 information_schema의 table_name이 함께 출력되어 테이블 명을 알아낼 수 있다.

    (단, union 사용 시 필드 개수, 형식이 동일해야 한다.)


    [ information_schema ] https://poqw.tistory.com/24


    2. procedure analyse (내장 함수)

    select test1 from num_53 where test2=1 procedure analyse();



    Field_name을 보면 DB명.Table명.Field명의 형식으로 출력한다.


    [ procedure analyse ] https://hyunmini.tistory.com/46


    다시 문제로 돌아가면 val 값에는 union, select, from이 필터링되어 있다.

    SQL 내장함수인 procedure analyse를 사용하여 hidden_table의 값을 알아내야 한다.


    val=1 procedure analyse()



    DB명.Table명.Field명 의 형식으로 출력되었다.

    hidden_table은 Chal12NGe_53_TabLE_zz 이다.


    알아낸 테이블 명인 Chal12NGe_53_TabLE_zz를 get 방식으로 answer로 보내주거나,

    challenge53 TABLE NAME에 입력해주면 문제가 풀린다.




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

    [Webhacking.kr] 55번 풀이  (0) 2019.05.08
    [Webhacking.kr] 54번 풀이  (0) 2019.05.08
    [Webhacking.kr] 52번 풀이  (0) 2019.05.08
    [Webhacking.kr] 51번 풀이  (0) 2019.05.08
    [Webhacking.kr] 49번 풀이  (0) 2019.05.08

    댓글

@Jo Grini's Blog