Pwnable
-
WITHCON 2017 bankPwnable/CTF 2018. 1. 15. 23:58
레이스 컨디션 공부가 제대로 되어있지않아 공부하느라 오래걸리고 노트북이 맛이 가서 A/S 받고 하느라 푸는데 너무 오래걸린것같다레이스컨디션 부분은 WRITE UP을 참고하였다. 몇몇 함수들을 thread로 실행시키는것을 보자마자 레이스 컨디션이라는것을 예상을 하였다. 메인 4번 메뉴인 withdraw를 보면 0x603228 +1 -= a1를 하는데 black을 사용할때 쓰이는 pthread_rwlock_t 변수에서 rdlock을 걸면서 race condition 취약점이 생긴다. http://xnuclear.tistory.com/6 위 링크에서 rdlock 설명 부분을보면 같은 rdlock상태에서 또 다른 쓰레드에서 rdlock을 걸어도 블록이 되지않는다는 것을 볼 수 있는데 그 것을 이용하여서 문제를 ..
-
SECCON 2017 video_playerPwnable/CTF 2018. 1. 11. 23:08
#C++문제다. 처음 문제풀때 main시작부분에서 랜덤 사이즈로 257개 청크를 만드는데 free되어있는거 마음에 안 든다고 for문으로 막 할당을 시켜줘서 없애버렸다.. 덕분에 for문이 많이 돌아가는바람에 서버에서 쉘은 안 따진다 ㅠㅠㅠㅠㅠ물론 for문 제거하고 그에 맞게 heap 오프셋 다시 구하면 따질것이다. (너무 귀찮다 ㄷㄷ..) 로컬에서 LD_PRELOAD설정하고는 바로 따진다. 취약점은 video edit부분에서 생긴다. 새로 할당을 해주고 그것을 구조체 포인터에 넣고 free를 시키고 NULL로 덮지않고 입력을 받는다. fastbin dup !audio같은 부분은 제대로 되어있는것을 볼수있다. (free를 시키고 값을 넣는다) 출력은 video play를 이용하여서 릭을 할 수 있는데 p..
-
-
SECCON 2017 secure Keymanager, ElectionPwnable/CTF 2018. 1. 10. 13:41
fastbin dup, malloc_usable_size 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869from pwn import * p=process("./secure_keymanager")elf=ELF("./secure_keymanager") def init(name,master): p.sendafter('>> ',name) p.sendlineafter('>> ',master) def add(length,title,key): p.sendlineafter('>> ','1') p.sendlineafter('...',str..
-
-
-