문제화면이다 BLIND SQL INJECTION이라고 친절하게 쓰여있다.
시도해 보자.
id : admin , pw : admin으로 접속을 시도했다.
URL에 보면 id , pw 파라미터이고 그 값을 찾는 거 같다.
guest로 한번 해봤는데 로그인이 되었다.
한번 실험을 해본 결과 injection에 대한 db 가 반응을 하고 있다.
그러면 id 파라미터 값이 'admin'인 그리고 password에 대한 길이가 40 보다 큰지 해본 결과
'login fail' 즉 "거짓"이라는 결과 가 나왔다고 할 수 있다.
그러면 조금 줄인 30 보다 pw length 가 큰지 물어봤는데
'wrong password'가 출력되었다.
이 결과로 db 가 '참'을 이야기한 것과 같다.
그렇다면 비밀번호의 길이는 40 보다 작고 30보다 크다는 소리가 되었다.
정확히 파악해 보자.
코드에 대한 내용을 주석으로 달아놨다.
(본인도 헷갈린 건 안 비밀)
코드를 실행시켜 본 결과
36이라는 값을 얻을 수 있다.
그러면 이 정보를 토대로 password를 찾아보자.
password_length + 1 은 python의 range() 함수가 끝값은 포함하지 않기에 '+1'을 추가시켜줬다.
payload 안에 substr() 함수가 문자열에서 특정 위치의 문자를 추출한 후, ascii() 함수를 이용해 해당 문자의 ascii 코드 값을 가져온다.
코드를 실행시켜보자.
pw 가 정상적으로 출력되었다.
https://github.com/GrayOM/webhacking.kr_code
GitHub - GrayOM/webhacking.kr_code
Contribute to GrayOM/webhacking.kr_code development by creating an account on GitHub.
github.com
코드들은 다 여기에 있다.
'Wargame > Webhacking.kr' 카테고리의 다른 글
webhacking.kr - old 36 (0) | 2024.03.28 |
---|---|
webhacking.kr - old 08 (0) | 2024.03.27 |
webhacking.kr - old 33 (1) | 2024.03.26 |
webhacking.kr - old 07 (0) | 2024.03.22 |
webhacking.kr - old 42 (0) | 2024.03.21 |