본문 바로가기

Wargame22

[Grotesque] wtf 100점 밖에 안되는 문제이다 ... 바이너리는 아주 간단한 x64 bof 취약점을 가진다. 전에 unexploitable 풀때도 버퍼링 문제가 있었는데 그때는 그냥 sigreturn을 사용해서 해당 문제를 넘겨 버렸었다.그런데 이 문제는 애초에 버퍼링을 해결하는 것이 문제 !!! 문제는 c나 python으로 popen해서 통신할 때 wrtie를 해주더라도 버퍼링 때문에 계속해서 read함수에 걸려있다는 것이다 ㅜ버퍼링 때문에 다음 코드 진행이 안됨 ㅡㅡ;;; 삽질 끝에 방법을 알았다 ... strace -f로 자식프로세스의 시스템콜을 보면 4096byte가 들어올때까지 read하는 것 같았다.그래서 나머지를 더미로 채워넣어서 4096 넣으니 버퍼링 문제가 해결된다;;; 이게 unexploitable에도.. 2015. 2. 25.
2014 PlaidCTF - ezhp[200] ezhpPwnables (200 pts)-------------------Luckily when you travel back in time, you still get to use all yourknowledge from the present. With that knowledge in hand, breakinginto this service (at 54.81.149.239:9174) owned by The Plagueshouldn't be hard at all. 위와 같이 메모를 추가, 수정, 삭제하는 프로그램으로 Heap Overflow 문제이다. 노트를 추가하는 add함수와 삭제하는 remove 함수이다. 여기서 해당 함수에서 heap에 메모리에 대한 관리를 한다. int add_8048794() { .. 2014. 10. 7.
[Rookiss] tiny_easy 먼저 readelf -h로 엔트리 포인트 확인 ... ( Entry point address: 0x8048054) 디버깅 결과 (gdb) b *0x8048054Breakpoint 1 at 0x8048054(gdb) rStarting program: /home/tiny_easy/tiny_easy Breakpoint 1, 0x08048054 in ?? ()(gdb) x/10i $eip=> 0x8048054: pop %eax 0x8048055: pop %edx 0x8048056: mov (%edx),%edx 0x8048058: call *%edx 0x804805a: add %al,(%eax) .....(gdb) x/4x $esp0xff998890: 0x00000001 0xff99a783 0x00000000 0.. 2014. 7. 28.
[Hacker's Secret] unexploitable 공유라이브러리의 ASLR을 해제하기 위해서 setarch `uname -m` -R $SHELL 명령어 실행 후 ldd를 확인보면 아래와 같이 고정되어있다.그런데 실제로 실행해보면 ASLR이 계속 적용되어있음 ... 공격 방법 1. puts로 실제 함수 주소를 얻어온다. (stage1)2. 다시 main으로 돌아가서 read 함수를 다시 이용한다. (stage2)3. '1'에서 얻어온 주소로 offset을 계산해서 execl을 호출시킨다. * x64에서 edi가 첫 번째 인자이므로 아래 가젯을 사용해서 puts의 인자를 조작한다. - 0x400610L: mov edi [esp+0x30] ; dec eax ; add esp 0x38 ;; - 0x601000 : puts@got- 0x400430 : puts@.. 2014. 7. 27.