20155323劉威良 網絡對抗《網絡攻防》 Exp1 PC平臺逆向破解(5)M
阿新 • • 發佈:2018-03-18
CP 網絡 同時 制作 十六進制 漏洞 div 地址 情況
保存並退出
實踐目標
本次實踐的對象是linux的可執行文件
該程序正常執行流程是:main調用foo函數,foo函數會簡單回顯任何用戶輸入的字符串。
該程序同時包含另一個代碼片段,getShell,會返回一個可用Shell。正常情況下這個代碼是不會被運行的。我們實踐的目標就是想辦法運行這個代碼片段。我們將學習兩種方法運行這個代碼片段,然後學習如何註入運行任何Shellcode。
實踐內容
手工修改可執行文件,改變程序執行流程,直接跳轉到getShell函數。
利用foo函數的Bof漏洞,構造一個攻擊輸入字符串,覆蓋返回地址,觸發getShell函數。
註入一個自己制作的shellcode並運行這段shellcode。
1.掌握NOP, JNE, JE, JMP, CMP匯編指令的機器碼
2.掌握反匯編與十六進制編程器
3.能正確修改機器指令改變程序執行流程
4.能正確構造payload進行bof攻擊
實踐要求
1.所有操作截圖主機名為本人姓名拼音
2.所編輯的文件名包含自己的學號
實踐一
直接修改程序機器指令,改變程序執行流程
過程:
1.用cp pwn1 20155323lwl
拷貝pwn1文件
2.輸入objdump -d lwl20155323 | more
進行反匯編
3.輸入vi lwl20155323
進行編輯
4.按Esc鍵再輸入:%!xxd
將顯示模式切換為16進制模式
5.輸入/e8d7查找要修改內容
6.將d7修改為c3
7.用:%!xxd -r
轉換16進制為原格式
8.輸入:wq
實踐二
通過構造輸入參數,造成BOF攻擊,改變程序執行流
20155323劉威良 網絡對抗《網絡攻防》 Exp1 PC平臺逆向破解(5)M