[Normaltic's CTF] SQL Injection Practice 1

2024. 5. 29. 13:54정보보안 및 해킹/CTF

연습문제입니다.

게임 검색 사이트인 것 같습니다.

게임을 잘 안해서... 검색을 해도... 뭔지 모릅니다...

일단 그래도 Overwatch는 알기때문에...

검색해봅니다.

저 score는 뭘까요?

그런데 over로만 검색해도

overwatch가 나옵니다.

여기서 Like 구문을 사용한다는 것을 알 수 있습니다.

그럼 바로 SQL Injection이 통하는지 확인하기 위해 %' and '1%' = '1을 사용합니다.

왜 사용하는지 모르신다구요?

그러면 이 게시물을 보고 오시면 훨씬 이해가 쉬우실겁니다.

이렇게 검색을 해도 검색이 되는 것을 확인할 수 있습니다.

그러면 공격이 통한다는 얘기가 되네요

그럼 바로 union공격을 위해 컬럼 갯수를 세러 갑니다.

3줄까지는 잘 도출이 되고.. 4줄까지도 도출이 잘 되는 것을 확인할 수 있습니다.

5줄을 찾으려고 하자 500에러가 나는 것을 확인할 수 있습니다.

컬럼은 4줄이었네요.

그러면 어떤 컬럼이 어느 위치에 있는지 확인하기 위해 1 2 3 4로 확인해봅니다.

1번 어디갔죠..?

2 3 4 만 도출하고있군요. 그러면 저희는 2 3 4번의 위치를 통해 원하는 정보를 도출시킬 수 있겠습니다.

데이터베이스 이름부터 시작하죠.

데이터베이스 이름은 segfault_sql이라고 합니다.

다음 테이블이름입니다.

테이블이 많군요.

game, member, secret, secret_member입니다.

game테이블부터 하나씩 보겠습니다.

어차피 연습문제이니까요.

저희가 지금까지 결과로 보고있는 것이 game 테이블이었네요

다음 member 테이블입니다.

이 중에서.. user_id / user_pass / name / user_level은 접근이 안되었습니다.

직접 여쭤보니, 의도한거라고 하시더라고요.

왜인지는... 저도 잘...........

다음 secret 테이블입니다.

가장 군침이 돌죠

idx와 secret이 있네요

다음은 secret_member 테이블 입니다.

nema, phone, email, level이 있습니다.

member테이블부터 내용물을 살펴볼까요?

볼 수 있는 컬럼이 3개나 있으니 한 번에 3개나 도출시킬 수 있네요

음 유저가.. 4명입니다..

게임이.. 막 서비스를 시작했거나..

섭종 직전이거나...

secret의 내용물은 어떨까요?

너가 왜 여기서 나와

플래그가 왜 여기서 나와..?

깜짝 놀랐습니다.

플래그가 왜 여기서..?

일단 냅다 지웠습니다.

설마 여기서도 플래그가 나오진 않겠죠

secret_member 테이블의 내용물입니다.

xMan 세대..

또 나왔습니다.

이 플래그는 더미데이터라고 합니다.

써 먹을 곳이 없긴 한데

그래도 플래그니까

냅다 지웠습니다.

역시 xMan세대.. 같은 세대였어..