admin 계정으로 접속하자!
현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234
우선, 로그인이 어떻게 진행되는 지 관찰하기 위해 주어진 계정으로 로그인을 해 봅니다
POST 방식으로 로그인이 진행되고 있습니다
로그인 완료 후 이동한 페이지에 대한 request를 확인했더니, cookie가 있는 것을 확인했습니다
쿠키에 아이디가 적혀있는 것을 보니, 이 쿠키 값을 admin으로 변경해보면 좋을 것 같습니다
그대로 아이디와 비밀번호는 주어진 계정으로 입력하고, 패킷을 intercept 해 쿠키 값의 loginUser를 admin으로 변경해 보냈습니다
Flag를 얻었습니다
이번 문제는 쿠키 값을 변경하는 문제였네요!
핵미사일 시스템 접근 권한을 획득했다! 발사만 남았다! 가자!!!
문제 페이지에 한 번 접속해 보도록 하겠습니다
Fire 버튼이 있습니다
한번 눌러보겠습니다
관리자만 이용가능하다는 문구와, 관리자인 경우에만 버튼을 누르라고 합니다.
역시나 버튼을 눌러봅니다
비밀번호를 입력하라고 하네요
본론이 나온 것 같으니 지금까지의 패킷들을 관찰해 보겠습니다
첫번째 페이지
두번째 페이지
세번째 페이지
요청 페이지의 주소가 /3/
, /3/step1.php
, /3/step2.php
로 순차적인 느낌으로 이동하는 것 말고는 크게 특별한 점은 없어 보입니다
다음 페이지는 /3/step3.php
일 가능성이 있어보이니, 이 페이지로의 요청을 시도해보겠습니다
새로운 페이지가 나왔습니다
왠지 Fire 버튼을 누르면 핵 미사일 발사에 성공할 듯 합니다
버튼을 눌러보겠습니다
Flag가 등장했습니다
이 문제는 페이지 이동으로 인증을 그냥 건너뛰는 문제였습니다!
normaltic1 로 로그인하자!
현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234
먼저, 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가 등장했습니다
normaltic2 로 로그인하자!
현재 우리의 계정은 다음과 같다. [ID/PW] : doldol / dol1234
먼저, SQLi 공격이 통하는 지 알아보기 위해 아이디에 doldol' and '1'='1
을 넣어봅니다
로그인에 성공하는 것을 확인했습니다
비밀번호에도 마찬가지로 dold1234' and '1'='1
을 넣어보았습니다
역시나 로그인에 성공했습니다
아이디와 비밀번호 모두 SQLi를 적용할 수 있겠네요
앞선 문제와 마찬가지로, 식별과 인증이 동시에 이루어지는 경우를 가정하고
아이디에 normaltic2'#
비밀번호엔 1234
를 넣어보도록 하겠습니다
Flag가 등장하였습니다
이번 문제는 주석이 필터링되거나 개행이 있지 않은 문제였던 것 같습니다