Challenge 21 시작!!
Blind SQL Injection 문제이기 때문에 가능한 출력값들을 찾아야 한다.
일단 여러 값들을 입력해보았고 결과는 다음과 같았다.
- 필터링된 문자 입력 시
- 쿼리가 참일 경우
- 쿼리가 거짓일 경우
세 개의 출력결과가 있었고 이를 통해 Blind Injection 을 수행할 수 있었다.
if(), length(), substr(), ord() 함수 등이 필터링 되어 있지 않았기 때문에 쉽게 쿼리를 짤 수 있었다.
조건이 참일 경우 wrong password 가 출력되는 것을 이용하여 파이썬 코드를 작성하였다.
- id 탐색
- pw 탐색
adein 이라는 id 와 ghere 라는 pw 를 알아냈다!
하지만 결과는 fail 이었다.
곰곰히 생각하다 혹시 id,pw 가 여러 개 존재하지 않을까해서 아이디, 패스워드 길이를 6자리 이상으로 검색해보았다.
6자리 이상의 id 는 존재하지 않았지만 36자리의 새로운 pw 가 존재하고 있었다.
바로 ghere_is_no_rest_for_the_white_angel 이다.
하지만 여전히 fail 이 떴다.
가만히 보니 id 가 admin 과 비슷하고 pw 앞 부분도 there 인 것 같은 느낌이 들었다.
그래서 바꿔서 시도해보았다.
그 결과,
예상이 맞았다!
아마도 3번째 자리가 e 인 id 와 첫 번째 자리가 g 인 아이디가 존재하기 때문인 것 같다.
그렇기 때문에 알파벳 순으로 출력하여 admin 의 m과 there 의 t 가 다르게 출력된 것이지 않을까?
이때 딱 떠오른게 guest 였다.
역시나 guest / guest 계정이 존재했다.
처음에 guest 를 테스트 해봤으면 좋았을텐데...
아무튼, 우여곡절 끝에 문제를 해결하였다.
성공!!
'WarGame > webhacking.kr' 카테고리의 다른 글
Challenge 23 (0) | 2020.02.26 |
---|---|
Challenge 22 (0) | 2020.02.26 |
Challenge 20 (0) | 2020.02.25 |
Challenge 19 (0) | 2020.02.25 |
Challenge 16 (0) | 2020.02.25 |