0x.STORY_TELLER
-
CHAPTER 3.Viva_La_Vida HowToSolve0x.STORY_TELLER/HowToSolve 2018. 9. 3. 18:52
CHAPTER 3.Viva_La_Vida HowToSolve 파일 & 소스 : https://github.com/pwnwiz/STORY_TELLER/tree/master/STORY_0x02 글로벌 포인터로 청크들을 관리하는 청크의 주소를 보면 0x603100인데, root_cavalry청크에 대한 정보가 차례대로 저장되어 있음을 알 수 있다. 0x603130의 주소는 global_cavalry 청크인데 들어가보면 첫 번째 root와 knight1 등에 대한 구조체의 주소를 관리해주는 청크이다. root_cavalry의 첫번째 포인터를 참조해보면 name에 대한 정보가 들어가있고, 그 다음에 salary에 입력한 값이 들어가있으며, smallbin(0x100)을 할당한 영역이 차례대로 들어가있다. 이곳을 ..
-
CHAPTER 3.Viva_La_Vida MakingFilm0x.STORY_TELLER/MakingFilm 2018. 9. 3. 18:49
CHAPTER 3.Viva_La_Vida MakingFilm BoB7기 내부 CTF 문제로 제작한 heap overflow 문제이다. 워낙 잘하는 사람이 많기 때문에 어떤 방식으로 제작할까를 고민해보다가 여러 구조체를 겹쳐 할당하여 포인터 형식으로 참조하도록 설계하였고, 그 과정에서 unsorted bin과 fastbin을 활용하여 prev_inuse flag를 해제하는 것과, double free를 통한 consolidate, overflow를 통한 prev_size 오버라이트, uaf를 통한 fake chunk 생성을 통한 unlink로 구조체를 덮어서 got_overwring를 통하여 릭 및 익스가 가능하다. 글로벌 변수는 다음과 같이 구성되어있다. cavalry는 기사의 name, salary, ..
-
CHAPTER 2.HalloweenDay HowToSolve0x.STORY_TELLER/HowToSolve 2018. 4. 11. 11:50
CHAPTER 2.HalloweenDay HowToSolve 문제 링크 : https://github.com/pwnwiz/STORY_TELLER/tree/master/STORY_0x01 이 문제는 fastbin_dup_into_stack 취약점이 존재하는 문제로, fake_chunk를 생성한 다음 값을 오버라이팅하여 풀 수 있는 문제이다.이 문제를 풀기 위해서는 다음의 개념들에 대한 이해가 필요하다. fastbin의 개념(64bit fastbin size)fastbin_dup_into_stack(fake_chunk)smallbin to unsorted binmalloc hook or free hook 해당 바이너리를 실행시켜보면 다음과 같이 뜬다. 오늘은 할로윈데이이며 누군가가 캔디를 받으로 집을 방문할..
-
CHAPTER 2.HalloweenDay MakingFilm0x.STORY_TELLER/MakingFilm 2018. 4. 11. 11:44
CHAPTER 2.HalloweenDay MakingFilm 문제 링크 : https://github.com/pwnwiz/STORY_TELLER/tree/master/STORY_0x01 Fastbin과 관련된 여러 문제들을 풀어보기도 하였고, 이해도 잘 된 것 같아 마무리 차원에서 문제를 만들어보게 되었다. 처음에는 엄청 어렵게 만들어볼까 생각했었지만, 푸는 사람들을 고려하여 문제 난이도를 하향하였기에 익스에 쓸모가 없어진 메뉴가 생기기도 하였지만, 어쨌든 익스는 정상적으로 진행이 된다. 패스트빈과 관련된 문제의 핵심은 fake_chunk를 할당할 수 있는가이다. fd의 값이 조작이 되는 상황속에서 특정한 장소에 fake_chunk를 할당하여 그 곳의 값들을 오버라이팅하는 것이 정석인데, 그 장소가 스택..
-
CHAPTER 1. Nymph's_fault HowToSolve0x.STORY_TELLER/HowToSolve 2018. 2. 28. 16:27
CHAPTER 1. Nymph's_fault HowToSolve 문제 링크 : https://github.com/pwnwiz/STORY_TELLER/blob/master/STORY_0x00/Nymph's_fault_basic 이 문제는 64bit ROP + 간단한 Anti-Hexrays가 적용된 문제이다. 아주 쉬운 문제라고 할 수 있는게 카나리가 전혀 적용되어 있지 않고, Partial-Relro이기에 bss 또는 dynamic 영역등을 사용하여 /bin/sh;를 떄려넣고 익스를 할 수가 있다. BSS에 대해서 잠깐 설명하자면 변수의 선언이 되는 과정에서 초기화 되지 않은 프로그램의 메모리에 대한 정보를 담고 있는데, 프로그램이 시작될 때 0으로 초기화 시켜주는 역할을 한다. 익스플로잇 과정에서는 굳이..
-
CHAPTER 1. Nymph's_fault MakingFilm0x.STORY_TELLER/MakingFilm 2018. 2. 28. 16:27
CHAPTER 1. Nymph's_fault MakingFilm 문제 링크 : https://github.com/pwnwiz/STORY_TELLER/tree/master/STORY_0x00 이 문제를 기획하게 된 계기는 가장 먼저 동아리 내부 CTF 문제를 만들어라는 특명에서 비롯되었다. 풀어본 문제라고는 몇 가지 오버플로우 문제와 간단한 리버싱 문제가 전부였기에, 그나마 풀어본 버퍼 오버플로우 문제를 만들어보는 것이 어떨가라는 생각에서 제작하기 시작하였다. ropasaurusrex가 32bit 버퍼오버플로우 문제였다면, 가장 최근에 출제된 CODEGATE 2018의 baskinrobins31이 64bit 오버플로우 문제였는데, 페이로드가 많이 달라져서 상당히 당황했었다. 그래서 이 참에 64bit 체제..