본문 바로가기

webhacking.kr/Challenge(old)

webhacking.kr 2번 문제 풀이(old)_분석편

안녕하세요. 정보보안 등대지기입니다.

 

오늘은 2번 문제를 풀어보도록 하겠습니다.

 

※ 정답만 보지 마시고 실습을 통해 문제를 직접 풀어보시는 것을 추천드립니다.

 

2번을 클릭하면 제한구역이라며 당신의 IP가 로깅되고 있다는 글이 보일 겁니다.

 

2번 문제 화면

 

 

뭐... 딱히 더 이상 건드릴 게 없으니 F12를 누르거나 우클릭하여 소스보기를 클릭하여 해당 페이지의 소스를 구경합니다.

 

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)변조해보았습니다.

 

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