문제에 접속하면 다음과 같은 화면이 나타납니다.
-> login 버튼과 join 버튼이 보입니다.
-> Login을 클릭하면 mem/login.php로 이동합니다.
->Join을 클릭하면 Access_Denied 문구가 출력되는 알림 창이 나타나게 됩니다.
Login = mem/login.php 이므로 Join = mem/join.php라고 생각하고 join.php로 이동해 보았습니다.
-> bye이라는 알림 창이 나타났습니다.
확인 후 F12 Elements 탭에서 코드를 확인하였습니다.
-> 변수명을 복잡하게 하여 난독화 되어 있는 코드가 눈에 보입니다.
코드를 정리하면 다음과 같이 간략한 코드가 나타나게 됩니다.
oldzombie= 'oldzombie';
cookie = 'document.cookie';
if(eval(cookie).indexOf(oldzombie) == -1) {
alert('bye');
throw "stop";
}
if(eval('document.URL').indexOf('mode=1') == -1){
alert('access_denied');
throw "stop";
}else {
document.write('<font size=2 color=white>Join</font><p>');
document.write('.<p>.<p>.<p>.<p>.<p>');
document.write('<form method=post action='join.php'>');
document.write('<table border=1><tr><td><font color=gray>id</font></td><td><input type=text name='id' maxlength=20></td></tr>');
document.write('<tr><td><font color=gray>pass</font></td><td><input type=text name='pw'></td></tr>');
document.write('<tr align=center><td colspan=2><input type=submit></td></tr></form></table>');
}
-> 변수 부분을 삭제하였습니다.
결론 join.php에 접속하려면 oldzombie cookie가 있어야 하고 url 매개변수로 mode=1을 추가해야 합니다.
-> 임의로 가입하고 login.php로 이동하여 로그인해보았습니다.
-> admin으로 로그인해야 한다고 합니다.
단순히 admin으로 가입하려고 하면 이미 있는 계정이라고 나옵니다.
꽤 다양한 시도 후에~~
_ = 공백
_______1로 가입하든 ___1로 가입 하든 sign up as 1 success라는 문구가 출력되었습니다.
-> 문자열 앞 또는 뒤에 있는 공백을 지워주는 것을 확인할 수 있습니다.
따라서 이를 이용하여 ___admin으로 가입하고 로그인하였습니다.
끝~~
'Hacking > WebHacking.kr' 카테고리의 다른 글
Webhacking.kr : old-11 (300 pt) (0) | 2021.02.11 |
---|---|
Webhacking.kr : old-07 (300 pt) (0) | 2021.02.11 |
Webhacking.kr : old-58 (150 pt) (0) | 2021.02.09 |
Webhacking.kr : old-56 (250 pt) (0) | 2021.02.09 |
Webhacking.kr : old-51 (250 pt) (0) | 2021.02.08 |