3번 문제 포스팅을 이어 4번 문제를 해결 하려 했지만..감이 안 와서 구글링을 해보았더니 엄청난 리소스가 소요되는 문제라 추후에 풀이를 해보려고 합니다.
그리하여 5번 문제 도전 !!
1. 문제

Login 버튼과 Join 버튼이 보입니다.
2. 풀이

임의의 ID/Pw 입력하니 Wrong password라는 문구가 출력됩니다.

Join 버튼을 누르니 접근이 거부 되었다고 뜨네요..

홈페이지 소스 코드를 확인해보니 login 버튼을 클릭시 move 함수로 인해 mem/login.php 이동되지만
Join 버튼 클릭시 no 함수로 인해 alert 창만 띄우고 끝입니다...
회원가입 후에 Login을 하면 풀리는 것 같습니다만.. 해당 소스만 봤을 때 어떻게 해야 할지 몰라
Directory Listing이 가능한지 확인해봤습니다.

정말 다행이도 web-05/mem 디렉터리 안에 join.php와 login.php가 있습니다.

join.php로 이동을 시도하자 ' bye ' 라는 문구만 나오네요..
l='a';ll='b';lll='c';llll='d';lllll='e';llllll='f';lllllll='g';llllllll='h';lllllllll='i';llllllllll='j';lllllllllll='k';llllllllllll='l';lllllllllllll='m';llllllllllllll='n';lllllllllllllll='o';llllllllllllllll='p';lllllllllllllllll='q';llllllllllllllllll='r';lllllllllllllllllll='s';llllllllllllllllllll='t';lllllllllllllllllllll='u';llllllllllllllllllllll='v';lllllllllllllllllllllll='w';llllllllllllllllllllllll='x';lllllllllllllllllllllllll='y';llllllllllllllllllllllllll='z';I='1';II='2';III='3';IIII='4';IIIII='5';IIIIII='6';IIIIIII='7';IIIIIIII='8';IIIIIIIII='9';IIIIIIIIII='0';li='.';ii='<';iii='>';lIllIllIllIllIllIllIllIllIllIl=lllllllllllllll+llllllllllll+llll+llllllllllllllllllllllllll+lllllllllllllll+lllllllllllll+ll+lllllllll+lllll;
lIIIIIIIIIIIIIIIIIIl=llll+lllllllllllllll+lll+lllllllllllllllllllll+lllllllllllll+lllll+llllllllllllll+llllllllllllllllllll+li+lll+lllllllllllllll+lllllllllllllll+lllllllllll+lllllllll+lllll;if(eval(lIIIIIIIIIIIIIIIIIIl).indexOf(lIllIllIllIllIllIllIllIllIllIl)==-1) {alert('bye');throw "stop";}if(eval(llll+lllllllllllllll+lll+lllllllllllllllllllll+lllllllllllll+lllll+llllllllllllll+llllllllllllllllllll+li+'U'+'R'+'L').indexOf(lllllllllllll+lllllllllllllll+llll+lllll+'='+I)==-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='+llllllllll+lllllllllllllll+lllllllll+llllllllllllll+li+llllllllllllllll+llllllll+llllllllllllllll
+'>');document.write('<table border=1><tr><td><font color=gray>id</font></td><td><input type=text name='+lllllllll+llll+' maxlength=20></td></tr>');document.write('<tr><td><font color=gray>pass</font></td><td><input type=text name='+llllllllllllllll+lllllllllllllllllllllll+'></td></tr>');document.write('<tr align=center><td colspan=2><input type=submit></td></tr></form></table>');}
해당 홈페이지 소스 코드를 보니...난독화가 되어 있는 것 같습니다만
지식이 부족한 해당 문제 풀이를 아주 조금...참고 해보았습니다.

상기 소스 코드를 해독해보니 'oldzombie'의 쿠키값이 없다면 'bye' 출력
URL에 mode=1이 포함되지 않으면 'access_denied' 출력입니다


크롬 브라우저의 개발자 도구를 사용하여 oldzombie를 생성 후 임의의 값을 입력.
그 후 URL 뒤에 mode=1을 넣어주었습니다.

드디어 Join.php의 본 모습이 나타났습니다 !

계정을 생성 후 Login.php로 돌아가 접속을 시도해보니

admin 계정으로 접속을 하랍니다...


admin 계정을 생성하려 하였지만 이미 계정이 기생성 되어 있다네요... brute force 공격을 할 수 도 없고...
곰곰히 생각하다가 가입 페이지지만 일반 웹 사이트의 가입 페이지 처럼 ID, Passwd 형식에 제한이 없을 것이라는 예상을 해봤습니다.

그리하여 admin이라는 ID 앞 뒤로 공백 2개을 추가하여 생성을 시도 하였더니 성공적으로 생성이되었습니다.


생성한 ' admin ' / '1234' 입력 하여 로그인을 시도하니 정상적으로 문제가 풀렸습니다

다소 어려웠던 문제는 아니지만 난독화된 코드에서 벽이 한 번 있어서 아쉬웠고
제 힘으로 100% 풀이를 못 했다는게 살짝 아쉬웠습니다..
감사합니다 !
'4. Web Hacking > 1. Webhacking.kr' 카테고리의 다른 글
Challenge(old) - 03 (0) | 2022.02.04 |
---|---|
Challenge(old) - 02 Part.3 (0) | 2022.02.04 |
Challenge(old) - 02 Part.2 (0) | 2022.02.04 |
Challenge(old) - 02 (0) | 2022.02.04 |
Challenge(old) - 01 (0) | 2022.02.04 |