Summary 1byte overflow UAF로 풀었는데 dup으로 풀 수 있을듯. Analysis puts("[A]llocate Buffer"); puts("[F]ree Buffer"); puts("[B]anner"); puts("[E]xit"); return printf(">> "); 기능은 크게 2개로 나뉜다. Allocate chunk1(32) 할당. buffer에 입력을 받고 len(buffer)만큼 chunk2(mysize) 할당. ( len(buffer)가 16 이상일 경우, 길이가 16 미만이라면 chunk2를 할당하지 않고 chunk1에 기록.) input_buf_len 15: struct chunk1 { int *chunk2 = malloc(buf_len); int dummy; int..
Summary tcache(18.04) challenge Analysis puts("====== Ethereum wallet service ========"); puts("1. Create new wallet"); puts("2. Deposit eth"); puts("3. Withdraw eth"); puts("4. Show all wallets"); puts("5. exit"); Wallet[0] -> 16byte Wallet[1] -> 16byte Wallet[2] -> 16byte Wallet[3] -> 16byte Wallet[4] -> 16byte 지갑은 이렇게 5개까지 만들 수 있고, 구조체는 struct Wallet { int *fuck_rand_chunk = malloc(0x82); int..
다른 문제 보다가 안풀려서 잠시 쉬어갈 겸 풀어보았다. Summary heap overflow pointer overwrite Analysis puts("\n[V]iew my bowls"); puts("[B]uy marimo"); puts("[S]ell marimo"); puts("[A]bout"); puts("[Q]uit"); printf(">> ");메뉴는 이렇게 있고 입력을 받을 때 show me the marimo를 입력하면 마리모를 하나 준다. (size는 1) 원래 Buy하려면 돈이 필요한데 꽁짜로 준다 ! ㅎㅎ 마리모는 최대 15개 까지 살 수 있다. struct marimo{ int_32 time; int_32 size; int *name = malloc(16); int *profile =..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
- fastbindup
- ebp change
- codegate
- stack reusing
- SQLi
- oob
- pwable
- srop
- heap
- hacking
- 해킹
- fsop
- pwnable.tw
- shellcoding
- fastbin
- rt_sigreturn
- FSB
- 본선가고싶다
- exit
- HackCTF
- overflow
- pwnable
- glibc
- tcache
- TLS
- Total
- Today
- Yesterday