Webhacking.kr 5번 문제풀이

동스토리 ㅣ 2020. 6. 10. 11:14

반응형

문제를 들어오면 Login, Join을 볼 수 있습니다.

 

우선 Join을 눌러보면 접근이 거부되는 것을 볼 수 있습니다.

Login을 눌러 admin 계정을 시도해본 결과 Wrong password가 뜨는 것을 볼 수 있습니다.

메인 화면에서 코드 확인 결과 mem 디렉터리가 존재한다는 것을 알 수 있고 

mem 디렉터리에 join.php 경로로 이동하여 코드를 확인해보면 난독화된 코드를 볼 수 있습니다.

코드 정리를 하기 위해 beautifier를 사용해보면 

https://beautifier.io/

 

Online JavaScript beautifier

 

beautifier.io

이후 크롬 Console 기능을 사용하여 if문 전(변수 지정)까지 실행해 보겠습니다.

이후 if문과 else문의 난독화된 코드를 해독하여 보면 다음과 같이 나온다.

난독화 코드를 분석해 보면 다음과 같습니다.

다음 코드를 분석해 보면, 

 

if (eval(document.cookie).indexOf(oldzombie) == -1) {
bye;
}

 

oldzombie의 쿠키값이 없다면 bye를 호출해라

 

if (eval(document.URL).indexOf(mode=1) == -1) {
alert('access_denied');
history.go( - 1);
}

 

URL에 mode=1이 없으면 "access_denied"를 호출해라

 

EditThisCookie를 사용하여 oldzombie에 임의의 쿠키값을 입력하고 URL에 ?mode=1를 추가해보겠습니다.

드디어 join.php 페이지를 볼 수 있게 되고, admin 계정으로 가입을 시도해보면 이미 존재한다는 것을 알 수 있습니다.

임의의 값으로 회원가입 후 로그인을 시도해보면, admin 계정으로 로그인하라는 것을 볼 수 있습니다.

그렇다면 다시 join.php로 돌아와서 (공백)(공백)admin(공백)(공백)으로 회원가입을 다시 시도해서 로그인을 해보면 문제를 해결할 수 있습니다.

 

감사합니다.

 

 

 

반응형

'Hacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 7번 문제풀이  (0) 2020.07.25
Webhacking.kr 6번 문제풀이  (0) 2020.06.13
Webhacking.kr 4번 문제풀이  (0) 2020.06.08
Webhacking.kr 3번 문제풀이  (0) 2020.05.30
Webhacking.kr 2번 문제풀이  (17) 2020.05.29