Profile

머리정리하는곳

c2w2m2

Free Top chunk

overflow 로 Top chunk 사이즈 주작치고 더큰걸 할당하면 sysmalloc 으로 인해 Top chunk 가 free 된다.

Pwnable/Heap ·

Pyjail

파이제일 할때 여러가지 알아두면 쓸모있는거 정리하려한다. 1. vars 이번 trustealth ctf pyjail3 낼때 알게 된건데, 개사기,,, __dict__ 가 있는 오브젝트나 함수를 인자로 넘겨주면, 어트리뷰트들을 다 dict 형으로 가져오게 한다. 즉 . 이나 _ 나 getattr 류가 막혔을때 어트리뷰트를 쓸수 있게 되는것이다. 물론 일부지만, __builtins__ 를 인자로 넘겨주면 built-in 함수를 전부 쓸 수 있다. 2. dir dir도 보통 dir(__builtins__) 해서 뭐있는지 보거나, string 우회로 많이 썼는데, 이게 locals() 대용이 되기도 한다. dir 을 막는 경우는 적으니까 상황에 따라 유용하게 쓸 수 있다. 3. "A""B" 이렇게 하면 stri..

Pwnable ·

Unsortedbin attack

2개 만들고 하나 free 하고 bk 에다가 사용할 주소 - 16 or 8 넣고 ( 64bit or 32bit ) 같은 크기로 할당해주면 사용할 주소에 main_arena의 영역주소가 저장된다. pwntw bookwriter 하려고 House of orange 보는데 이거 나오길래 일단 적어둔다

Pwnable/Heap ·

[HITCON-Trainning] lab 11

중간중간에 쉬운거 띄고 푼거 띄고 하니까 11부터 풀게됬다. unlink 도 되고 spirit 도 될거같고 Top 도 될거같은데 그냥 unlink 연습삼아 unlink로 했다.

Pwnable/Heap ·

[Harekaze 2018] Flea_attack

윽 익스 75% 정도 다 짰을떄 같은팀 다른형님이 푸셔서 못써먹은 익스입니다 ㅠㅠ.. 그래도 원하는대로 bss 에 있는 flag 를 읽은게 아닌 쉘을 딴 익스니까 거기에 의미를 둡시당..

Pwnable ·

[Codegate 2016] serial

먼저 첫부분에 시리얼 코드 받는곳이 있는데, 12자리에 4글자씩 끊어서 v5, v6, v7 에 저장해서 막 연산하는걸 볼 수 있는데 z3 돌리면 615066814080 이 나옴니다. 이제 익스해주면 데는데, Add 할때 func 포인터 덮을 수 있고, dump 하면 이거 실행 시켜 주고, 인자도 내가 맘대로 할 수 있으니까, puts ( puts_got ) 꼴로 릭하려 했는데, 포인터상 안맞아서 got 주소가 그대로 나오기 때문에 printf (" %p %p %p " ) 식으로 포맷스트링을 강제로 만들어 릭했다. 릭 하고 나서는 그냥 system 해주면 덴다.

Pwnable ·

[AceBear2018] easy heap

처음 문제를 봤을때는 fastbin dup 으로 풀면 되겠구나 해서 검증 한번 해보고 제대로 되길래 이건줄 알았는데, libc leak 하는 과정에서 인덱스에다가 - 넣을수 있단거 확인하고, 위에 가젯을 쪼개내서 이중 포인터 맞춰주면서, 그냥 이걸로 atoi_got 덮고 /bin/sh 불렀다.

Pwnable ·

[Codegate] Watermelon

코게 얼마 안남아서 스택 오랜만에 풀었습니다. 그냥 play list 100 개 박고 마지막거 조절해 가면서 canary leak, libc leak 하고 rtl. 너무 쉬운걸 잡은거 같습니다 ㅠㅠ 24분컷....

Pwnable ·

[RCTF2017] RNote

오랜만에 깔끔하게 풀린 힙문제임니다. 일단 저기서 1바이트 오버플로우 하나 있고 그리고 UAF 는 까보면 나오는거고, 그래서 UAF 랑 small bin 이용해서 libc leak 해주고, 1바이트 오버플로우 엮어서 fastbin dup 으로 __malloc_hook 을 덮어주면 끝

Pwnable ·