이번 문제는 진짜 삽질만 엄청 했던 문제다 ㅎㅎ
문제를 보면 이 웹사이트에서 flag를 찾을 수 있냐라고 묻고 있다.
사이트를 들어가 보면
로그인 창이 나온다.
우선 간단한 로그인 우회를 해봤는데
쿼리문이 username이랑 password랑 순서가 바뀌어 있어서 다시 시도해봤다.
어라...? 처음엔 필터링이 걸려있나 했는데 출력되는 걸 보니 필터링은 아닌 것 같고....
이것저것 바꿔보면서 시도하던 중 혹시 주석이 문젠가 하고 --을 입력해 봤더니
로그인에 성공했다! (이때 알아차렸으면 내 미래가 좀 달라졌을까....)
이제 검색창에 인젝션을 시도해 봐야 되는데 union을 쓰면 될 거 같아 시도해 봤다.
먼저 칼럼수를 알아내기 위해 ' union select 1 --부터 하나하나 늘려갔더니
3까지 입력하니까 출력이 되는 것을 볼 수 있다.
칼럼수도 알아냈으니 데이터 타입을 확인한 결과
문자열도 출력되는 걸 확인했고 이제 db정보만 출력하면 된다고 생각하고 끝인 줄 알았다.
테이블 이름을 알아낼라고 ' union select table_name,2,3 from information_schema.tables--을 입력했는데
아무것도 출력이 안되는 것이다....
처음엔 오타가 있나 하고 다시 입력해 보고 필터링이 걸려있나 해서 문자들도 다 확인해 보고 오라클, mssql 등 다른 db 언어도 써보고 했는데 안돼서 한 3시간 삽질한 거 같다ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
나중에 아는 선배한테 질문한 결과
힌트에 쓰여있던 게 SQLite라는 db이름이었다... 나는 처음에 힌트를 봤을 때 알아차리지 못하고 넘어간 게 이런 결과를 불러왔다.
이래서 경험이 중요하고 다양한 db를 접해봐야 되는구나....
진짜 울면서 SQLite 문법 찾아보고 ' union select name,2,3 from sqlite_master -- 입력했더니
진짜 너무 행복했다 ㅎㅎㅎㅎ
테이블 이름을 확인하고 다 열어본 결과
' union select sql,2,3 from sqlite_master where tbl_name = 'more_table'--
more_table에 flag가 있는 게 확인되었다.
바로 확인해 보니
' union select flag,2,3 from more_table --
flag를 찾아냈다~~~
'CTF' 카테고리의 다른 글
[U+ Security Hackathon] Account Service-write up (0) | 2024.11.16 |
---|---|
[2023 Fiesta] 금융 보안 위협분석 대회 특별문제 4-1,4-2 writeup (0) | 2023.09.18 |
2023 Pico CTF writeup (web/SOAP) (0) | 2023.03.30 |
2023 Pico CTF writeup (web/MatchTheRegex) (0) | 2023.03.30 |
2023 Pico CTF writeup (web/find me) (0) | 2023.03.30 |