Profile

youngsouk

youngsouk

[hackctf] adult_fsb

https://github.com/balexios/glibc2.23/blob/master/stdlib/exit.c

 

balexios/glibc2.23

glibc version 2.23. Contribute to balexios/glibc2.23 development by creating an account on GitHub.

github.com

read를 실행한뒤의 레지스터를 활용해 libc leak, stack leak 까지 할 수 있다. 그래서 i의 값을 음수로 바꾸려 했지만 잘 안되서 포맷 스트링 버그를 할 때마다 0으로 바꾸어주면서 여러번 fsb를 할 수 있도록 했다.

그래서 libc leak 후 __free_hook을 one_gadget으로 덮어 둘 수 있다.

이 exit 함수의 cur->idx를 0으로 만들어 우회할 조건을 줄이고, cur -> next에 0이 아닌값을 집어넣어서 하면 free가 호출된다. 아까 덮어놨던 one_gadget으로 쉘을 딸 수 있다.

정리하면

1. read의 레지스터 활용 -> libc, stack leak

2. __free_hook -> one_gadget

3. exit의 루틴 활용&free호출

 

'CTF write-up > hackctf' 카테고리의 다른 글

[hackctf] pzshell  (0) 2020.01.14
[hackctf] Unexploitable_4  (0) 2020.01.13
[hackctf] wishlist  (0) 2020.01.12
Unexploitable_3  (0) 2020.01.11
[hackctf] childheap  (3) 2019.11.29