1、使用objdump -d pwn1
將pwn1
d反彙編
從上圖可以看出,80484b5: e8 d7 ff ff ff call 8048491
這條彙編指令,在main函式中呼叫位於位址8048491
處的foo
函式,e8
表示「call」,即跳轉。如果我們想讓函式呼叫getshell
,只需要修改d7 ff ff ff
即可。根據foo函式與getshell位址的偏移量,我們計算出應該改為c3 ff ff ff
。
2、修改步驟如下
3、反彙編檢視修改後的**,發現call指令正確呼叫getshell
4、執行修改後的**,可以得到shell提示符
1、使用gdb
除錯pwn2
進入gdb除錯,輸入字串1111111122222222333333334444444455555555
;觀察一下各暫存器的值
2、將輸入字串的「55555555」改成「12345678」,以便進一步觀察修改的地方。
3、輸入perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input
4、然後將input的輸入,通過管道符「|」,作為pwn1的輸入。
修改以下內容
3.1 構造攻擊buf(採用 retaddr+nop+shellcode 方法)
3.2確定返回位址的值
設定斷點來檢視注入buf的記憶體位址disassemble foo
ret的位址為 0x080484ae,ret完就會跳到我們覆蓋的返回位址了
break *0x080484ae設定斷點
在另乙個終端按下回車,這樣程式就會執行之後在斷點處停下來
再在gdb除錯的終端輸入 c 繼續執行程式
通過info r esp檢視esp暫存器的位址
上圖可以看到01010304
所在的位址為0xffffd23c
,那麼注入的shellcode**的位址應該在該位址後四個位元組的位置,即0xffffd23c + 0x00000004 = 0xffffd240
退出gdp除錯。
修改注入**的覆蓋位址
通過這次實驗初步感受到這門課的內容,雖然本次實驗的實驗原理比較簡單,但是實踐過程中需要細節需要注意,涉及到的知識也比較多,複習了彙編和計算機原理的許多知識,為今後的學習打下了基礎。
- 關於對漏洞的理解
通過這次實驗我覺得漏洞可能是程式本身的一些設計漏洞或缺陷,使得攻擊者利用這個缺陷改變程式的執行邏輯,使得程式按照攻擊者的意願執行。
漏洞的危害:可能導致計算機安全性的破會,程式癱瘓,資料丟失,財產損失等。
20145232韓文浩《網路對抗》PC平台逆向破解
1 linux下有兩種基本構造攻擊buf的方法 retaddr nop shellcode,nop shellcode retaddr。我們採用anything retaddr nops shellcode的方法。2 實驗的目標是找到返回位址的位置和shellcode的位址。然後通過修改返回位址使其...
手機平台的PC模擬環境
越來越多的公司採用 linux tinyx gtk 系列作為手機開發環境,它本身可以認為是完全免費的,但需要大量的時間去研究它,去裁減它,還要建立整合開發環境,模擬執行環境等等,這一切都不是免費的。乙個專案耗費一到兩年時間,已經屢見不鮮見了。在建立開發環境,模擬執行環境,等這類簡單的事情,花大多時間...
玩客雲pc端 幸運雲IP創意平台PC電腦端上線了!
從2018年開始策劃搭建幸運雲平台到2019年02月beta1第乙個版本開發完成 再到今天的beta公測版,2020年9月19日我們正式上線了!當前平台只支援pc電腦端瀏覽 暫不支援手機及h5瀏覽 我們梳理打造幸運雲品牌,幸運雲主要涉及三個方向和乙個實驗室 幸運圖 幸運物 幸運造 幸運池。幸運雲 傳...