간단한 SQL Injection CTF Write up

gyub·2025년 5월 7일
0

모의해킹 스터디

목록 보기
11/31

1️⃣ Get Admin

❓ 문제

admin 계정으로 접속하자!

현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234

💡 write up

우선, 로그인이 어떻게 진행되는 지 관찰하기 위해 주어진 계정으로 로그인을 해 봅니다

POST 방식으로 로그인이 진행되고 있습니다

로그인 완료 후 이동한 페이지에 대한 request를 확인했더니, cookie가 있는 것을 확인했습니다

쿠키에 아이디가 적혀있는 것을 보니, 이 쿠키 값을 admin으로 변경해보면 좋을 것 같습니다

그대로 아이디와 비밀번호는 주어진 계정으로 입력하고, 패킷을 intercept 해 쿠키 값의 loginUser를 admin으로 변경해 보냈습니다

Flag를 얻었습니다

이번 문제는 쿠키 값을 변경하는 문제였네요!


2️⃣ PIN CODE Bypass

❓ 문제

핵미사일 시스템 접근 권한을 획득했다! 발사만 남았다! 가자!!!

💡 write up

문제 페이지에 한 번 접속해 보도록 하겠습니다

Fire 버튼이 있습니다

한번 눌러보겠습니다

관리자만 이용가능하다는 문구와, 관리자인 경우에만 버튼을 누르라고 합니다.

역시나 버튼을 눌러봅니다

비밀번호를 입력하라고 하네요

본론이 나온 것 같으니 지금까지의 패킷들을 관찰해 보겠습니다

첫번째 페이지

두번째 페이지

세번째 페이지

요청 페이지의 주소가 /3/ , /3/step1.php , /3/step2.php 로 순차적인 느낌으로 이동하는 것 말고는 크게 특별한 점은 없어 보입니다

다음 페이지는 /3/step3.php 일 가능성이 있어보이니, 이 페이지로의 요청을 시도해보겠습니다

새로운 페이지가 나왔습니다

왠지 Fire 버튼을 누르면 핵 미사일 발사에 성공할 듯 합니다

버튼을 눌러보겠습니다

Flag가 등장했습니다

이 문제는 페이지 이동으로 인증을 그냥 건너뛰는 문제였습니다!


3️⃣ Login Bypass 1

❓ 문제

normaltic1 로 로그인하자!

현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234

💡 write up

먼저, SQLi 공격이 통하는 지 알아보기 위해 아이디에 doldol' and '1'='1 을 넣어봅니다

로그인에 성공하는 것을 확인했습니다

그렇다면 식별과 인증이 동시인 경우를 가정하고, 아이디에 doldol'# 비밀번호엔 1234 를 넣어보도록 하겠습니다

그럼 SQL 문은 SELECT [column] FROM [테이블] WHERE id ='doldol'# and pass='1234' 가 될 것으로 예상할 수 있습니다

로그인에 실패하였습니다

주석이 필터링 되거나 SQL 문에 개행이 있을 수도 있겠네요

이번에 아이디에 normaltic1' or '1'='1 비밀번호엔 1234 를 넣어보도록 하겠습니다

그럼 SQL문은

SELECT [column] FROM [테이블] WHERE id ='normaltic1' or '1'='1'
,and pass='1234'

가 될 것으로 예상할 수 있습니다

Flag가 등장했습니다


4️⃣ Login Bypass 2

❓ 문제

normaltic2 로 로그인하자!

현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234

💡 write up

먼저, SQLi 공격이 통하는 지 알아보기 위해 아이디에 doldol' and '1'='1 을 넣어봅니다

로그인에 성공하는 것을 확인했습니다

비밀번호에도 마찬가지로 dold1234' and '1'='1 을 넣어보았습니다

역시나 로그인에 성공했습니다

아이디와 비밀번호 모두 SQLi를 적용할 수 있겠네요

앞선 문제와 마찬가지로, 식별과 인증이 동시에 이루어지는 경우를 가정하고

아이디에 normaltic2'# 비밀번호엔 1234 를 넣어보도록 하겠습니다

Flag가 등장하였습니다

이번 문제는 주석이 필터링되거나 개행이 있지 않은 문제였던 것 같습니다


0개의 댓글