본문 바로가기
Web/Webhacking.kr

Webhacking.kr Challenge old-05 문제 풀이

by jh117jh 2022. 11. 18.
728x90

문제에 들어가면 로그인과 회원가입 버튼 2개가 보인다.

 

로그인을 누르면 login.php로 넘어가 로그인창이 뜨는것을 알 수 있다.

 

하지만 만들어 놓은 아이디가 없으니 회원가입을 해야 된다.

 

회원가입 버튼을 누르니 엑세스 거부 알림이 뜨면서 접속되지 않는다.

 

혹시나 해봐서 login.php를 join.php로 변경하여 접속 해 보았다.

다름없이 엑세스 거부 알림이 나오지만 처음과 달리 대문자가 사라진것을 볼 수있다.

 

개발자 모드를 실행하여 코드를 확인해보니 

문자들을 암호화(?) 해놓은것이 보인다.

우선 가독성을 높이기 위해 https://beautifier.io/ 에 접속하여 코드를 정리 해 보았다.

 

정리된 코드중 중요한 if문을 해석하기 위해 개발자모드의 console 기능을 사용하면 좋다 .

 

코드를 콘솔창에 넣고 알고 싶은 암호화된 문자열을 입력하면 해석해준다.

해석한 if문을 정리하면

 

쿠키값의 oldzombie라는 값이 있어야 하고 url에 mode=1이라는 값이 들어가야 회원가입 페이지에 접속 할 수 있다.

둘다 수행 후 접속해보면 

접속되는것을 확인 할 수 있다.

 

우선 아이디와 비밀번호를 123으로 회원가입을 진행해 보았다.

회원가입에 성공했고 로그인하면 문제가 끝나는줄 알았지만

로그인에 성공했지만 admin이라는 계정으로 로그인해야된다는 메세지가 출력 되었다.

 

다시 아이디를 admin 비밀번호를 123으로 회원가입을 하였지만 

이미 있는 아이디라는 메세지가 출력 되었다.

과연 어떻게 해야 할까 생각해보니 ' '(공백)을 이용하면 될것 같다. 

php에서는 공백을 인식하여 'admin'과 ' admin'을 다르게 인식하지만

sql에서는 같게 인식한다.

그러므로 아이디를 ' admin'으로 회원가입을 진행하면 php에서는 다르게 인식하여 회원가입이 될것이고 sql에서는 admin으로 인식하여 문제풀이에 성공할 것이다.

예상대로 문제풀이에 성공하였다.

728x90