奥运会网球比分规则|雪缘网网球比分直播|
歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

個人PWN入坑常見方法總結

來源:本站整理 作者:佚名 時間:2019-04-16 TAG: 我要投稿

本文介紹個人學習pwn過程中的一些總結,包括常用方法,網上諸多教程雖然有提供完整的exp,但并未解釋exp為什么是這樣的,比如shellcode寫到哪里去了(這關系到跳轉地址),ROP鏈怎么選擇的。對于pwn,本人也是新手,其中有總結錯誤的,歡迎各位大佬指正。
文中用到的測試程序都在:https://github.com/silience/pwn
0×02 PWN常用的基本知識
首先拿到一個PWN程序,可以先使用file命令,判斷是32位還是64位。

可以使用objdump讀取plt和got表,plt和got網上都有詳細的介紹,再此不再贅述。


這邊要提一下數據在寄存器中的存放順序,這個在格式化字符串漏洞中要格外注意,特別是64位,32位的先后順序是eax->edx->ecx->ebx,64位的先后順序是rdi->rsi->rdx->rcx->r8->r9。
剛開始學習的時候,個人經常把pop和push經常搞反,因此在此把這兩個指令的介紹說一下:push [reg]/[num] 是將reg寄存器中的值或是數字num壓入堆棧中,而pop [reg]是將堆棧棧頂的值彈出到reg寄存器中,并將這個值從堆棧中刪去。
有時候要查看寄存器中的值,可以用到如下命令:
print $esp:打印esp的值
x/10x $esp:打印出10個從esp開始的值
x/10x $esp-4:打印出10個從偏移4開始的值
x/10gx $esp:以64位格式打印

下面先使用hello練練手,首先使用IDA的F5大法可以看到內部有個getshell函數,可以直接跳轉到該函數getshell。

使用工具pade可以很方便的計算出偏移量,pattern create 100。

pattern offset 0×41284141,計算出偏移量為22。

查看匯編代碼,獲取getshell的地址,也就是要跳轉的地址。

最后得到完整的exp如下。

0×03 shellcode
生成方式
1、在shellcode數據庫網站找一個shellcode,http://shell-storm.org/shellcode/
2、使用kali的msfvenon生成shellcode,如命令msfvenon -p linux/x86/exec CMD=/bin/sh -f python
3、使用pwntools自帶的函數如asm(shellcraft.sh())
但有時候不知道shellcode寫到哪里去了,在回答這個問題前,要提一下bss段、data段、text段、堆(heap)、棧(stack)的一些區別。
1、bss段(bss segment)通常是指用來存放程序中未初始化的全局變量的一塊內存區域,bss段屬于靜態內存分配。
2、data段:數據段(data segment)通常是指用來存放程序中已初始化的全局變量的一塊內存區域,數據段屬于靜態內存分配。
3、text段:代碼段(code segment/text segment)通常是指用來存放程序執行代碼的一塊內存區域。這部分區域的大小在程序運行前就已經確定,并且內存區域通常屬于只讀(某些架構也允許代碼段為可寫,即允許修改程序)。在代碼段中,也有可能包含一些只讀的常數變量,例如字符串常量等。
4、堆(heap):堆是用于存放進程運行中被動態分配的內存段,它的大小并不固定,可動態擴張或縮減。當進程調用malloc等函數分配內存時,新分配的內存就被動態添加到堆上(堆被擴張);當利用free等函數釋放內存時,被釋放的內存從堆中被剔除(堆被縮減)。
5、棧(stack):棧又稱堆棧,是用戶存放程序臨時創建的局部變量,也就是說我們函數括弧“{}”中定義的變量(但不包括static聲明的變量,static意味著在數據段中存放變量)。除此以外,在函數被調用時,其參數也會被壓入發起調用的進程棧中,并且待到調用結束后,函數的返回值也會被存放回棧中。由于棧的先進先出(FIFO)特點,所以棧特別方便用來保存/恢復調用現場。
下面以ret2shellcode,同樣使用IDA看下代碼,很明顯,shellcode寫入到bss段。

使用命令readelf -S ret2shellcode查看獲取bss段地址為0x0804a040。

[1] [2] [3]  下一頁

【聲明】:黑吧安全網(http://www.nddver.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        奥运会网球比分规则
        qq捕鱼大亨 金币 梅州市双色球大奖兑奖 雪缘园意甲积分榜 美人捕鱼下载 三分彩软件 四川体彩网 足彩半全场胜胜是什么意思 七星彩走势图最近100期 足彩进球彩对阵表 汉唐国际首页