본문 바로가기

전체 글

(265)
ROOT CTF 2018 (NEW_CVar가 코딩 실수 고친 바이너리, shared/CVar가 대회 당시 사용된 바이너리 입니다) - SmVM - 먼저 모든 instruction 부분들의 idx 체크하는 부분을 보면 idx > 0xf를 하는것을 볼수있다. init_vm을 하는 부분이나, push, pop 부분을 보면 구조체의 0xf 부분은 포인터인것을 알 수 있다.저것을 이용해서 rsp push를 이용해 leak을 하고, 0xf push, 0xf pop을 이용하여서 풀익스가 가능하다.seccomp가 걸려있기때문에 mmap주소 릭, environ으로 stack 릭, orw를 이용해서 풀수있다. 12345678910111213141516171819202122232425262728293031323334353637383940414243..
ROOT CTF 2017 - ROOT CTF 2017 - 2017 익스, 소스코드가 없는 것은 실수로 삭제를 해버렸습니다 ... 1. Allocate -> ptmalloc-fanzine trick 2. HS_CLUB -> poison_null_byte trick3. WarOfTheGods -> fastbin_dup_into_stack
PCTF 2017 Chakrazy (글이 깨져있어서 다시 올립니다 ㅠㅠ) *(args) IDX, *(args+8) ptr로 concat 인자로 들어간 array 다 저장하고있다 ArraySpeciesCreate()로 pDestArray 설정을 함 안에서 constructor를 가져오고 object라면 constructor[Symbol.species]를 가져와서 호출을 해주고 반환값을 pDestArray로 쓴다. concatintargs에서 symbol.IsConcatSpreadable을 가져오는데 이것도 위에있는것처럼 가져와서 호출을해주고 반환값을 가져옴 둘다 대충 GetPropertyName으로 위에 가져오는거 이름에 해당하는 ProportyIDX를 통해서 파파박 가져옴 0xfffffff5 + ProportyIDX를 해주고 shl 4를..
PCTF 2018 d8-dist array.from 소스 흐름?(순서)를 보면 1. Node* iterator_method = iterator_assembler.GetIteratorMethod(context, array_like); 이러한 코드를 사용해서 iterator에 해당하는 함수 부분을 불러온다2. Branch(IsNullOrUndefined(iterator_method), ¬_iterable, &iterable); 가져온 함수가 있는지(NULL값인지) 확인3. NULL이라면 not_iterable로 점프 있으면 iterable로 점프를 하게된다. 요 버그에서는 &iterable에 버그가 있기 떄문에 이 함수를 위주로 분석하면된다. (점프를 할떄 BIND(&이름(BRANCH(&이름)))로 선언되어있는 부분으로 이동함)5. ..
SECCON 2017 vm_no_fun VM 공부할겸 풀어봄 ㅎ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164..
Pwnable.tw critical_heap++ 보호되어 있는 글입니다.
KR startcraft, combabo_calculator 등등 보호되어 있는 글입니다.
Pwnable.tw critical_heap 보호되어 있는 글입니다.