Profile

머리정리하는곳

c2w2m2

Only Unsorted bin attack

Unsorted bin attack이 가능하고, 전역변수로 힙이 관리되면서, 이를 수정할수 있고, 전역변수의 주소를 알수 있다. 


대충 이런 조건이면 Unsorted bin attack만을 활용해서 쉘을 얻어낼 수 있다.


힙베릭, 립베릭, 빈베릭 ( If PIE )가 필요하긴한데, 위 조건을 만족하면 view만 있으면 다 릭할 수 있으니까 크게 상관 없다. 빈베릭이 걸리기는 하지만...


어쨋든 이런 조건이면 전역변수에다가 Unsorted bin attack 으로 main_arena + 88 을 적어준다.


보통 Unsorted bin attack이후의 malloc은 main_arena가 꼬이면서 에러를 뱉는데, 여기서 Edit을 통해서 main_arena를 고쳐줄 수 있다.


이를 고치면서, 뒷부분에는 oneshot함수의 주소들을 좀 적어준다.


그리고, Unsorted bin attack을 한번 더 진행하면서, stdout이나 stdin, stderr의 _IO_file_jumps를 덮어주자.


그러면, main_arena안에 있는 값들을 참조할텐데, 여기서 우리가 적어준 oneshot함수가 실행되면서 쉘을 얻어낼 수 있다.



대충 이런식으로 흘러간다.

'Pwnable' 카테고리의 다른 글

ISITDTU CTF 2018 - dead_note_lv2  (0) 2018.08.01
Asis 2015 - math_sequence  (0) 2018.07.30
Seccon2017 - baby_stack  (0) 2018.07.29
strncmp  (0) 2018.04.14
61byte reverse shellcode  (0) 2018.04.11