LYS Rop lab_rop4 Writeup
lab_rop4
這次藉著到 AIS3 當助教的緣故順便跟 Curious 一起把 LYS ROP 系列課程的 lab 整理到了部落格,也方便給學員參考。
那因為是一系列的 lab,所以接下來只會主要講跟上個版本的差異
Diff & Exploitation
這次是用更新的 gcc 編譯的,因為沒有 csu_init 所以 binary 沒有 pop_rdi 可以用了,但我們原本其實只是要用他來指定 printf 要 leak 某個 libc_adress,那 printf 在設定 rdi 時其實是用 mov rdi, rax
,所以換句話說,我們只要控好 rax 就可以成功 leak,那這可以透過 deregister_tm_clones
來讓 rax 設定成一個特定的值,剛好因為 setvbuf
的關係所以 deregister_tm_clones
這邊會執行 mov eax, stdout@GLIBC_2.2.5
,就可以 leak 出 stdout_got 算出 libc_base,那最後會用 execve('/bin/sh', 0, 0)
而不是像之前一樣 system('/bin/sh')
是因為 system 的毛比較多,exploit 跑到 system 裡會爛掉,改成 execve
就可以順利 RCE 了。
Exploit
1 | import warnings |
Result
1 | └─$ python exploit.py |
Pwned !!!
- Title: LYS Rop lab_rop4 Writeup
- Author: kazma
- Created at : 2024-08-05 23:52:01
- Updated at : 2024-08-06 02:14:31
- Link: https://kazma.tw/2024/08/05/LYS-Rop-lab-rop4-Writeup/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments