안녕하세요. 정보보안 등대지기입니다.
오늘은 2번 문제를 풀어보도록 하겠습니다.
※ 정답만 보지 마시고 실습을 통해 문제를 직접 풀어보시는 것을 추천드립니다.
2번을 클릭하면 제한구역이라며 당신의 IP가 로깅되고 있다는 글이 보일 겁니다.
뭐... 딱히 더 이상 건드릴 게 없으니 F12를 누르거나 우클릭하여 소스보기를 클릭하여 해당 페이지의 소스를 구경합니다.
소스를 보시면 주석으로 if you access admin.php i will kick your ass라는 약간 변태스러운(?) 문구가 있네요.
무시하시고 문장 앞에 보이는 admin.php라는 단서를 찾으셨을 겁니다.
관리자 페이지로 추정되는 admin.php를 url 맨 뒤에 삽입해 줍니다.
admin.php로 이동하였습니다.
이동했더니 당신의 비밀번호를 입력하라는 입력 폼이 있고 소스를 봤지만 아무런 단서가 없네요.
그렇다면 프록시 도구인 버프 슈트(Burp Suite)를 이용하여 패스워드에 임의 문자(test)를 넣어서 쿼리 전송을 눌렀을 때 어떠한 반응이 있는지 확인합니다.
wrong password 메시지만 보이고 다시 admin.php로 리다이렉트 되네요...
여기서 저는 쿼리 전송이라는 문구에 꽂혀서 입력 폼에서 뭔가가 발생하겠구나! 생각하고 제가 알고 있는 공격 구문은 다 넣어봤는데....... 안돼서 이 방법이 아닌 거 같다고 판단이 들었을 때는 이미 두 시간이나 지나고 난 뒤였습니다.... (하.....ㅠ)
해서 위 사진에서 time이라는 파라미터 값이 수상해서 time값(1591831245 → 1)을 변조해보았습니다.
하지만, 똑같이 wrong password 메시지만 보이고 다시 admin.php로 리다이렉트 됩니다. (여기도 아니더라고요...;;)
이번에는 2번 문제 메인 페이지로 돌아가 패킷을 잡아보았습니다.
별 반응이 보이지 않아서 아까랑 동일한 방법으로 time값(1591831245 → 1)을 변조해 보았습니다.
응답 값(오른쪽 Response)에 시간(09:00:01)이 바뀌었습니다.
이번엔 100을 넣어보았습니다.
시간이 09:01:40으로 바뀌었습니다.
즉, time 값에 입력한 임의의 수를 초로 변환하여 100으로 변조했을 경우, 100초인 1분 40초가 되어 응답 값에 출력되는 것을 알아냈습니다.
오늘 내용은 여기까지 입니다.
다음 시간에는 위 원리를 이용하여 Blind SQL Injection 공격을 시도해보겠습니다.
보안에 관심 있는 분들이 손쉽게 이해하고 접근할 수 있도록 노력하겠습니다 :)
질문 또는 조언해주실 분은 아래 댓글 또는 메일로 남겨주세요.
cjh1503123@naver.com
'webhacking.kr > Challenge(old)' 카테고리의 다른 글
webhacking.kr 3번 문제 풀이(old) (0) | 2020.11.29 |
---|---|
webhacking.kr 2번 문제 풀이(old)_해결편 (0) | 2020.06.12 |
webhacking.kr 1번 문제 풀이(old) (0) | 2020.06.10 |