
초기 상태에서 Create timer 버튼을 누르면 아래와 같이 3초 뒤 Time is up! 창이 뜬다. url바에는 frame뒤에 ?timer=3이 추가된 것을 볼 수 있다. timer.html의 코드를 보면 startTimer('{{ timer }}')의 형식인 것을 알 수 있다. 따라서 xss-game.appspot.com/level4/frame?timer=1');alert('hi 를 입력하면 형식이 맞을 것 같다. 알림창이 뜨지 않는다. 힌트를 보니 인코딩 작업이 필요하다고 해서 다음과 같이 수정했다. frame?timer=1')%3Balert('hi 성공적으로 알림창을 띄우며 클리어했다.

1. wolfman/love eyuna로 로그인 2. bash2, ulimit -c unlimited 명령어 실행 후 ls -l로 디렉터리 내부 파일 확인 3. darkelf.c 파일 확인 환경변수, buffer 사용이 불가하고 buffer의 ret값까지만 변조할 수 있다. 4. gdb로 실행 우선 권한 문제 해결을 위해 darkelf를 copyelf로 복사했다. strcpy가 실행된 후인 에 breakpoint를 걸었다. A 44개와 0xbfbfbfbf를 넣었다. esp를 확인해보니 아래와 같다. 첫줄부터 확인해보면 입력한 값이 성공적으로 들어간 것을 확인할 수 있다. 이것이 buffer의 주소다. 아래 0xbffffc24부터 다시 A가 확인되는데, 여기가 argv 인자값을 저장하는 스택의 주소다. 5..

1. orc/cantata로 로그인 2. bash2, ulimit -c unlimited 명령어 실행 후 ls -l로 디렉터리 내부 파일 확인 3. cat 명령어로 wolfman.c 내용 확인 전 단계와 마찬가지로 환경변수를 사용할 수 없다. buffer hunter 부분을 보니 buffer도 사용할 수 없게 되어있다. 4. gdb로 실행 strcpy 함수가 호출되고 난 후인 에 break point를 걸고 스택메모리의 변화를 관찰한다. A 44개와 0xbfbfbfbf가 잘 들어간 것을 확인할 수 있다. 0xbffffaf4 주소를 이용할 것이다. 5. 공격 및 비밀번호 획득 공격코드는 다음과 같이 구성했다. ./wolfman `python -c 'print "\x90"*44+"\xf4\xfa\xff\xb..

1. goblin/hackers proof로 로그인 2. bash2, ulimit -c unlimited 명령어 실행 후 ls -l로 디렉터리 내부 파일 확인 3. cat 명령어로 orc.c 내용 확인 egghunter라는 주석이 보인다. egghunter는 memset함수를 이용해 환경변수를 초기화하기 때문에 이 문제에서는 환경변수를 사용할 수 없다. if문을 통해 argv[1][47]의 값이 '\xbf'여야 한다는 것을 알 수 있다. argv[1]에만 제한이 걸려있으므로 argv[2]를 활용하면 될 것 같다. 4. gdb로 실행 우선 권한 문제를 해결하기 위해 orc를 cpc 파일로 복사한다. gdb로 실행시키고 main 함수를 살펴본다. strcpy 함수가 호출되는 에 break를 건다. 위와 같이..