webhacking.kr - old 05

2024. 3. 15. 14:48·Wargame/Webhacking.kr

 

 

 

문제 화면을 보면 'Login' , 'Join'이 있다. 하나씩 눌러보자.

 

 

 

 

 

 

 

 

 

 

'Join'을 눌렀더니 'Access_Denied'이 뜬다 해당 페이지 소스코드를 한번 보자.

 

 

 

 

 

 

 

 

 

 

코드를 보니 'Login' 은 정상적으로 작동되는 거 같다.

 

'Login'을 눌러보자.

 

 

 

 

 

 

 

 

 

 

 

 

'login.php'에는 id, pw를 입력하여 login을 시도하는 거 같다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그런데 경로를 보면 중간 상위 디렉토리에 'mem' 란게 존재한다 mem으로 한번 이동해 보자.

 

 

 

 

 

 

 

 

 

 

'mem' 디렉터리 에는 'join.php'가 있다 눌러서 한번 들어가 보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

들어가자마자 'bye'가 출력된다. 이것도 아마 'alert'로 출력되는 거 같다 소스코드를 한번 봐보자.

 

 

 

 

 

 

 

 

 

<script>
    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>');}
</script>

 

 

읽기 힘들 정도로 난독화되어있는 거 같다.

 

가독성 있게 바꿔보자.

 

 

 

 

 

 

 

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>');

 

[alert('bye') , alert('access_denied')] 는 이미 봤으니 일단은 두 번째 'else'로 넘어가야지 문제가 해결될 거 같다.

 

일단 난잡하게 잡혀있는 문자열들을 정상적으로 console로 한번 보자.

 

 

 

cookie : oldzombie로 설정하여 URL를 mode=1로 접근해야지 join.php를 볼 수 있는 거 같다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

회원가입 페이지로 들어와 졌다 바로 admin 관리자를 만들어보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

이미 admin에 대한 정보가 있다는 말 같다.

 

Burp suite를 이용해서 공백을 넣어보자 공백에 대한 필터링은 없었다.

 

 

 

 

 

 

 

 

 

 

%20 = [공백]

 

 

 

 

 

 

 

 

 

 

회원가입 성공

 

 

 

 

 

한 칸 띄우고 로그인해보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

webhacking.kr - old 20  (0) 2024.03.20
webhacking.kr - old 12 (Javascript Obfuscation)  (0) 2024.03.20
webhacking.kr - old 23  (0) 2024.03.15
webhacking.kr - old 25 (PHP wrapper [LFI])  (0) 2024.03.14
webhacking.kr - old 27 (SQL INJECTION)  (0) 2024.03.14
'Wargame/Webhacking.kr' 카테고리의 다른 글
  • webhacking.kr - old 20
  • webhacking.kr - old 12 (Javascript Obfuscation)
  • webhacking.kr - old 23
  • webhacking.kr - old 25 (PHP wrapper [LFI])
G_OM
G_OM
최대한 설명 열심히 하려고 합니다. 궁금한 거 있으면 언제든지 물어보셔도 좋습니다.
  • G_OM
    끄적끄적
    G_OM
  • 전체
    오늘
    어제
    • 분류 전체보기 (157)
      • 모의해킹 (18)
      • CTF (22)
      • Wargame (69)
        • Linux_bandit (33)
        • Webhacking.kr (36)
      • DreamHack (52)
        • WEB (14)
        • Reverising (9)
        • System (0)
      • Mobile_security (13)
        • Drozer_Android (4)
        • Frida_Android (1)
        • IOS (1)
        • tool (1)
      • 정보보안기사 (2)
      • IT? (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

    • DreamHack 에 대한 문제들...
  • 인기 글

  • 태그

    모의해킹
    overthewire
    lfi
    정보보안기사
    Linux wargame
    insecurebankv2
    리눅스 워게임
    webhacking.kr
    Android
    bandit18
    Frida
    CTF
    wargame
    난독화
    php
    sql injection
    drozer
    webhacking
    bandit30
    bandit17
    php wrapper
    Linux
    Dreamhack
    리눅스
    OSINT
    bandit20
    cookies
    워게임
    url encode
    bandit
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
G_OM
webhacking.kr - old 05
상단으로

티스토리툴바