1. 문제 확인
문제를 클릭하니까 검은색 화면에 Login과 Join 버튼이 나와있는 것을 확인할 수 있다.
Login 버튼을 눌렀더니 이렇게 입력하는 폼이 나와있다.
그래서 admin으로 로그인을 시도해보았다.
그랬더니 이렇게 worng password가 나온다.
이번에 Join을 눌렀더니
이렇게 alert 창이 뜨는 것을 확인할 수 있다.
2. 코드 확인
3. 문제 풀이
여기 코드가 중요한 부분인 것 같다.
로그인 버튼을 눌렀을때 mem.login.php로 이동하는 것을 확인할 수 있다.
그러면 접근이 거부된 join에서도 이런 방식으로 하면 접근이 가능해질 수도 있겠다고 생각을 했다.
그랬더니 bye라고 alert 창에 뜨는 것을 볼 수 있다.
이때의 페이지 소스를 확인해보면 다음과 같이 난독화되어있는 것을 확인할 수 있다.
크롬의 F12번을 눌러 개발자 도구에서 콘솔창에 난독화 되어 있는 것을 복사해서 붙여보았다.
그랬더니 다음과 같이 난독화 되어있는 것이 복호화 되는 것을 확인할 수 있다.
그래서 이를 바탕으로 해석을 하면 document.cookie에 oldzombie라는 문자열이 없거나,
document.URL에 mode=1라는 문자열이 없으면 실패라는 것이다.
그래서 이렇게 쿠키값을 추가하고
?mode=1을 URL 창에 추가해 주었다.
그랬더니 이렇게 새로운 창이 뜨는 것을 확인할 수 있다.
그래서 다음과 같이 로그인을 다시 시도했다.
그랬더니 다음과 같이 alert 창에 뜨는 것을 확인할 수 있다.
그래서 SQL Injection 문제로 생각하고 admin을 적어주었다.
성공했다.
해당 로그인 페이지로 돌아가 다시 로그인을 해준다.
4. 결과
'security > 웹 해킹' 카테고리의 다른 글
Webhacking.kr 7번 (0) | 2020.07.22 |
---|---|
Webhacking.kr 15번 (0) | 2020.07.22 |
Webhacking.kr 20번 (0) | 2020.07.18 |
Webhacking.kr 42번 (0) | 2020.07.18 |
Webhacking.kr 41번 (0) | 2020.07.16 |
댓글