보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
Summary Unsorted bin attack ROP Analysis login변수의 값이 있으면 rop를 할 수 있다. Exploit Unsorted bin attack으로 login변수에 값을 넣어줄 수 있다. Unsorted bin attack condition 공격자에 의해 Unsorted chunk를 생성 할 수 있어야 합니다. 공격자에 의해 Free chunk 영역에 값을 저장 할 수 있어야 합니다. 공격자에 의해 Free chunk 와 동일한 크기의 Heap 영역을 할당 할 수 있어야 합니다. exploit flow 2개의 Unsorted chunk 할당 첫 번째 free bk 를 타겟-16(64비트 기준)으로 overwrite free 청크 사이즈만큼 다시 할당. 공격 대상 영역에 ma..
Summary Thread Local Storage(TLS) 리눅스는 x86: gs, x86_64: fs 레지스터로 TLS를 관리한다. TLS란 쓰레드를 관리하기 위한 전역변수이며 해당 변수의 0번 째 인덱스에는 TCB(Thread Control Block)의 주소가 저장된다. TCB는 해당 쓰레드를 관리하기 위한 구조체. typedef struct { void *tcb; /* Pointer to the TCB. Not necessarily the thread descriptor used by libpthread. */ dtv_t *dtv; void *self; /* Pointer to the thread descriptor. */ int multiple_threads; int gscope_flag; u..
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..
보호되어 있는 글입니다.
- fastbindup
- 본선가고싶다
- tcache
- SQLi
- HackCTF
- stack reusing
- rt_sigreturn
- shellcoding
- srop
- oob
- hacking
- codegate
- pwable
- pwnable
- TLS
- exit
- fsop
- heap
- fastbin
- glibc
- FSB
- 해킹
- ebp change
- pwnable.tw
- overflow
- Total
- Today
- Yesterday