20145206鄒京儒《網絡對抗》逆向及Bof基礎實踐

20145206鄒京儒《網絡對抗》逆向及Bof基礎實踐

1 逆向及Bof基礎實踐說明

1.1 實踐目標

本次實踐的對象是一個名為pwn1的linux可執行文件。
該程序正常執行流程是:main調用foo函數,foo函數會簡單回顯任何用戶輸入的字符串。
該程序同時包含另一個代碼片段,getShell,會返回一個可用Shell。正常情況下這個代碼是不會被運行的。我們實踐的目標就是想辦法運行這個代碼片段。

1.2 基礎知識

該實踐需要同學們熟悉Linux基本操作,能看懂常用指令,如管道(|),輸入、輸出重定向(>)等。
理解Bof的原理。
能看得懂匯編、機器指令、EIP、指令地址。
會使用gdb,vi。

2 直接修改程序機器指令,改變程序執行流程

(1)防止操作中出現錯誤,先把原文件復制,執行文件,結果是輸入什么字符串就返現相同的字符串
877170-20170228174842079-1487081605.png

(2)先進行反匯編
877170-20170228175151985-478755353.png

877170-20170228175158220-113431429.png

(3)找到相應修改的位置
877170-20170228175251266-597520017.png

877170-20170228175257673-196542289.png

(4)修改之后
877170-20170228175328751-1934370134.png

(5)再次進行反匯編,運行,成功!
877170-20170228175401407-879145794.png

877170-20170228175409860-361323376.png

877170-20170228175414923-1672155556.png

3 通過構造輸入參數,造成BOF攻擊,改變程序執行流

(1)先復制pwn1文件
877170-20170228195500048-1311376842.png
(2)使用GDB調試:
877170-20170228195643860-59811915.png
877170-20170228195654970-1872772853.png
(3)同時查看每個寄存器的值,查看的關鍵是寄存器eip的值:
877170-20170228195859688-731816747.png
(4)再次調試查看是哪個字符被覆蓋到了eip中:
877170-20170228200002876-1745246135.png
877170-20170228200357141-2031340911.png

(5)如果輸入字符串1111111122222222333333334444444412345678,那 1234 那四個數最終會覆蓋到堆棧上的返回地址,進而CPU會嘗試運行這個位置的代碼。那只要把這四個字符替換為 getShell 的內存地址,輸給5206,5206就會運行getShell。
(6)接下來要確認下字節序(這里是低字節放在高位的大端法),簡單說是輸入11111111222222223333333344444444\x7d\x84\x04\x08。(前面32字節可以任意輸入)
由為我們沒法通過鍵盤輸入\x7d\x84\x04\x08這樣的16進制值,所以先生成包括這樣字符串的一個文件。\x0a表示回車,如果沒有的話,在程序運行時就需要手工按一下回車鍵。
877170-20170228200427235-1215473749.png
(7)可以使用16進制查看指令xxd查看input文件的內容是否如預期:
877170-20170228200458423-1755070873.png
(8)然后將input的輸入,通過管道符“|”,作為5206的輸入:
877170-20170228200540860-1529864839.png
877170-20170228200549329-1516002233.png

轉載于:https://www.cnblogs.com/ZouJR/p/6480705.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393668.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393668.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393668.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機專業考研過關率高么,考研過國家線的幾率有多大?被刷的有多少?

考研每年究竟有多少人可以過國家線,可能很多同學都對很奇心,很想知道這個數據。很多人應該都知道,教育部在劃定國家線時,會統計考生的總體情況,然后再分別統計13個大類學科,產生一個大致的數據的&#xff0…

復工復產三個一內容_節后復產復工,彭聰恩強調“三個一”

彭聰恩查看大良永旺購物商場監控室順德城市網消息 (記者張瓊)春節已過,元宵將至,安全生產工作時刻不可放松。為確保全區市民過上一個安全祥和的元宵節,昨日(2月21日)上午,順德區委副書記、區長彭聰恩,副區長賴雪暉帶隊…

leetcode1405. 最長快樂字符串(貪心算法)

如果字符串中不含有任何 ‘aaa’,‘bbb’ 或 ‘ccc’ 這樣的字符串作為子串,那么該字符串就是一個「快樂字符串」。 給你三個整數 a,b ,c,請你返回 任意一個 滿足下列全部條件的字符串 s: s 是一個盡可能…

Haproxy+Keepalived實現負載均衡

HaproxyKeepalived實現負載均衡HAProxy介紹反向代理服務器,支持雙機熱備支持虛擬主機,但其配置簡單,擁有非常不錯的服務器健康檢查功能,當其代理的后端服務器出現故障, HAProxy會自動將該服務器摘除,故障恢復后再自動將該服務器加入新的1.3引入了frontend,backend;f…

chrome麥克風權限_如何在Chrome擴展程序中處理麥克風輸入權限和語音識別

chrome麥克風權限by Palash Taneja由Palash Taneja 如何在Chrome擴展程序中處理麥克風輸入權限和語音識別 (How to handle mic input permissions and speech recognition in Chrome extensions) This tutorial assumes that you have a basic understanding of Chrome extens…

云計算機房架構圖,云計算架構技術與實踐

云計算架構技術與實踐從將云計算技術引入傳統數據中心所帶來的獨特商業價值角度看,重點可以從開源與節流兩個方面來衡量云計算的核心競爭力。1節流(Cost Saving)方面在業務系統搭建過程中,云計算和虛擬化使得企業及運營商的煙囪式軟件應用可以突破應用邊…

C#使用CLR/C++的DLL間接調用Native C++的DLL

C#使用CLR/C的DLL間接調用Native C的DLL 開發環境:win 7 VS2010 簡介:C#的exe使用CLR/C間接調用Native C的DLL. 第一步:創建一個C#的Console Application工程-->命名“ConsoleApplication1”。 第二步:創建一個CLR/C的工程&am…

列表輸出循環左移_python 列表推導式(經典代碼)(21)

文章首發微信公眾號,微信搜索:猿說python截止到目前為止,python基礎內容已經學習了50%左右,在學習編程過程中,我們不僅要學習python語法,同時也需要學習如何把自己代碼寫的更美觀,效率更高。一.…

leetcode100. 相同的樹(dfs)

給定兩個二叉樹,編寫一個函數來檢驗它們是否相同。如果兩個樹在結構上相同,并且節點具有相同的值,則認為它們是相同的。示例 1:輸入: 1 1/ \ / \2 3 2 3[1,2,3], [1,2,3]輸出: true### 代碼java /*** Definiti…

k8s 分發證書文件 啟動文件

接著上面的博客繼續寫 準備三臺主機 192.168.1.71 192.168.1.72 192.168.1.73 現在k8s壓縮包 我使用時1.12版本 不能下載請FQ 百度網盤提供1.12版本 https://pan.baidu.com/s/1Ty6DRaRtL-0HiTCwy5ubPA n6cy 192.168.1.71 執行 pwd -> /tmp tar -zxf kubernetes-server-lin…

如何確保您的Progressive Web App保持其Lighthouse審核分數

by Ondrej Chrastina通過Ondrej Chrastina 如何確保您的Progressive Web App保持其Lighthouse審核分數 (How to make sure your Progressive Web App keeps its Lighthouse audit score) I bet most of you have implemented a web application before. Some of you may even …

計算機字節換算在線,計算機字節換算(計算機字節換算器)

8bit(位)1Byte(字節)1024Byte(字節)1KB1024KB1MB1024MB1GB 換算率約等于1000(1024),從大到小順序為T、GB、MB(兆Zhao)、KB、B再小就是位了。.字節(Byte 發音:/‘bait/):字節是通過網絡傳輸信息(或在硬盤或內存中存儲信息)的單位。 在ASCII碼中…

Robot Framework自動化測試(一)--- 安裝

所需環境: 1、python 2、robotframework  https://pypi.python.org/pypi/robotframework/2.8.5#downloads 3、wxPython ——>是python的一個GUI庫,下面要安裝的RIDE是基于這個庫開發的,所以要安裝 地址:https://wxpython.org…

leetcode1296. 劃分數組為連續數字的集合(貪心算法)

給你一個整數數組 nums 和一個正整數 k,請你判斷是否可以把這個數組劃分成一些由 k 個連續數字組成的集合。 如果可以,請返回 True;否則,返回 False。 示例 1: 輸入:nums [1,2,3,3,4,4,5,6], k 4 輸出&…

linux_svn命令操作

轉至元數據起始 linux下svn命令大全 1、將文件checkout到本地目錄 svn checkout path(path是服務器上的目錄)例如:svn checkout svn://192.168.1.1/pro/domain簡寫:svn co 2、往版本庫中添加新的文件 svn add file例如&#xff1a…

用python玩轉數據慕課答案第四周_大學慕課用Python玩轉數據章節測試答案

大學慕課用Python玩轉數據章節測試答案更多相關問題滲透泵型片劑控釋的基本原理是A.減小溶出B.減慢擴散C.片劑膜外滲透壓大于片劑膜內,將片內藥物從語義學批評是什么?As usual, _____ man was given his individual as…

html怎么讓五張照片并排顯示,最考驗右腦5張照片,30s內能發現問題都是牛人,PS做不出來...

我們的大腦認定這種空間不可能存在,然而卻要忍受眼睛親眼所見其存在的苦惱。“眼見為實”已經成為錯誤的判斷標準,于是你會感到很過癮,顛覆的快感。事實上,通過色彩,不僅可以考量人們的視力,更能判斷大腦水…

aws v2.2.exe_如何使用Python 3.6在AWS EC2上創建運行uWSGI,NGINX和PostgreSQLDjango服務器...

aws v2.2.exeby Sumeet Kumar通過Sumeet Kumar 如何使用Python 3.6在AWS EC2上創建運行uWSGI,NGINX和PostgreSQLDjango服務器 (How to create a Django server running uWSGI, NGINX and PostgreSQL on AWS EC2 with Python 3.6) Getting a server up and running …

Cloud in Action: Install OpenStack Ocata from scratch

Cloud in Action: Install OpenStack Ocata from scratch薛國鋒 xueguofeng2011gmail.comOpenStack can control and manage large pools of compute, storage, and networking resources throughout a datacenter, througha dashboard or via the OpenStack API, and work…

jQUery中closest和parents的主要區別是

①,前者從當前元素開始匹配尋找,后者從父元素開始匹配尋找;②,前者逐級向上查找,直到發現匹配的元素后就停止了,后者一直向上查找直到根元素,然后把這些元素放進一個臨時集合中,再用…