书签 分享 收藏 举报 版权申诉 / 30
上传文档赚钱

类型这是一定要的啦逢甲大学课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5082927
  • 上传时间:2023-02-09
  • 格式:PPT
  • 页数:30
  • 大小:953KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《这是一定要的啦逢甲大学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    一定要 逢甲大学 课件
    资源描述:

    1、Buffer Overflow 原理簡介原理簡介參考資料參考資料:Smashing The Stack Smashing The Stack For Fun And ProfitFor Fun And Profit(By Aleph One)(By Aleph One)逢甲大學資工所平 行 實 驗 室 鍾宜勳Stack的運作方式的運作方式(1/9)pri nt f(“%d”,x);x=1;Funct i on(1,2,3);x=0;i nt x;char buffer15;ret urn;St ack高位址低位址Funct i on()M ai n()xStack的運作方式的運作方式(2/9)

    2、pri nt f(“%d”,x);x=1;Funct i on(1,2,3);x=0;i nt x;char buffer15;ret urn;St ack高位址低位址Funct i on()M ai n()0Stack的運作方式的運作方式(3/9)pri nt f(“%d”,x);x=1;Funct i on(1,2,3);x=0;i nt x;char buffer15;ret urn;St ack高位址低位址Funct i on()M ai n()0321Ret urn addressSFPStack的運作方式的運作方式(4/9)pri nt f(“%d”,x);x=1;Funct i

    3、on(1,2,3);x=0;i nt x;char buffer12;ret urn;St ack高位址低位址Funct i on()M ai n()321Ret urn addressSFP0buffer11buffer10Stack的運作方式的運作方式(5/9)pri nt f(“%d”,x);x=1;Funct i on(1,2,3);x=0;i nt x;char buffer12;ret urn;St ack高位址低位址Funct i on()M ai n()321Ret urn addressSFP0buffer11buffer10Stack的運作方式的運作方式(6/9)pri n

    4、t f(“%d”,x);x=1;Funct i on(1,2,3);x=0;i nt x;char buffer12;ret urn;St ack高位址低位址Funct i on()M ai n()321Ret urn addressSFP0buffer11buffer10Stack的運作方式的運作方式(7/9)pri nt f(“%d”,x);x=1;Funct i on(1,2,3);x=0;i nt x;char buffer12;ret urn;St ack高位址低位址Funct i on()M ai n()0Stack的運作方式的運作方式(8/9)pri nt f(“%d”,x);x

    5、=1;Funct i on(1,2,3);x=0;i nt x;char buffer12;ret urn;St ack高位址低位址Funct i on()M ai n()1Stack的運作方式的運作方式(9/9)pri nt f(“%d”,x);x=1;Funct i on(1,2,3);x=0;i nt x;char buffer12;ret urn;St ack高位址低位址Funct i on()M ai n()1Stack向下成長向下成長,Array向上遞增向上遞增.St ack向低位址成長321Ret urn addressSFP0buffer10buffer11Array向高位址成

    6、長Stack的成長方向的成長方向,與與Array的成長方的成長方向剛好相反向剛好相反.Array被寫入超過其容量的資料被寫入超過其容量的資料(Buffer Overflow)造成Return Address和SFP被覆寫St ack向低位址成長321Ret urn addressSFP0buffer10buffer11Array向高位址成長正常的情形St ack向低位址成長321Ret urn addressSFP0buffer10buffer11Array向高位址成長過量寫入的情形buffer10buffer11buffer12buffer13Buffer Overflow造成造成Retur

    7、n Address不正確不正確可能造成程式Return到隨機的Address去pri nt f(“%d”,x);x=1;Funct i on(1,2,3);x=0;i nt x;char buffer15;ret urn;Funct i on()?Idea 1.利用利用Return Address利用Buffer Overflow可以更改Return Address的特性,透過巧妙的安排,我們可以執行我們想執行的任何程式區段.甚至我們把code放在Stack中,code也可以順利執行.321Ret urn addressSFP0m ovl$0 x8,%ebxm ovl$0 x1,%eaxnop

    8、i nt$0 x80由於Return Address被更改,所以程式並不回到程式節區繼續執行,而是執行Stack中的Code.St ack向低位址成長程式執行方向Idea 2.取得取得Root權限的權限的Shell那個被我們Overflow的執行檔,如果它的suid是root的話,那麼我們可以在overflow時,產生一個shell出來,而得到一個有root權限的shell.然後我們就可以為所欲為了.321Ret urn addressSFP0i nt$0 x80St ack向低位址成長程式執行方向RootRootPri vi l egePri vi l egeShel lShel l產生一個

    9、有Root 權限的shel lIdea 3.由命令列參數引發由命令列參數引發 Buffer Overflow在前面的二個Idea中,我們知道Stack裡也可以執行code,而且這樣的作法有機會可以取得“具有Root權限的Shell”來為所欲為,不過有幾個問題要解決:Stack中要執行的code要從哪來?Return Address要怎麼去更改?要怎麼去buffer overflow別人的程式?這個答案就是透過命令列參數輸入code以及所想要return的新位址.sh-2.04$./vulnerable$CODEShel l CodeRet urn Address初步的作法初步的作法l把要輸入S

    10、tack的code及return address放到環境變數中,這樣進行buffer overflow的輸入會方便許多.l缺點:我們所需的return address很難求得,必需靠許多次的嘗試才能得到結果.Shell Codel欲輸入Stack的code,我們稱之為Shell code.其結構如下:j um p程式主體字串資料Ret urnAddresscal lj um ppopSt ack成長方向Shel l codeShel l codeShell Code的運作過程的運作過程(1/6)j um p程式主體字串資料(函式所需參數)SFPRet urnAddresscal lj um p

    11、popSt ack成長方向Shel l codeShel l code跳到Shel l code的開端Shell Code的運作過程的運作過程(2/6)j um p程式主體字串資料(函式所需參數)SFPRet urnAddresscal lj um ppopSt ack成長方向Shel l codeShel l code跳到Shel l code的尾部,透過cal l 指令,將字串前的位址推入St ack,這是取得code節區中的位址的變通辦法.目的是得到它的位址Shell Code的運作過程的運作過程(3/6)j um p程式主體字串資料(函式所需參數)SFPRet urnAddressca

    12、l lj um ppopSt ack成長方向Shel l codeShel l code取得字串前位址,準備跳回Shel l Code開頭執行.Shell Code的運作過程的運作過程(4/6)j um p程式主體字串資料(函式所需參數)SFPRet urnAddresscal lj um ppopSt ack成長方向Shel l codeShel l code跳回Shel l Code開頭執行.Shell Code的運作過程的運作過程(5/6)j um p程式主體字串資料(函式所需參數)SFPRet urnAddresscal lj um ppopSt ack成長方向Shel l codeS

    13、hel l code將字串前的位址POP出來.Shell Code的運作過程的運作過程(6/6)j um p程式主體字串資料(函式所需參數)SFPRet urnAddresscal lj um ppopSt ack成長方向Shel l codeShel l code由字串前的位址,算出字串的真正位址,並將字串做為execve()的參數,呼叫出我們想要的Shel l.初步作法初步作法技術細節技術細節(1/3)lShell Code的內容必需避免有00H的值.因為有的程式可能會用strcpy()等函式,將命令列參數予以複製並進行處理.這時,Shell Code如果有00H的值,將會被誤以為是字串結

    14、尾0,而使得Shell Code被複製的不完全,而喪失完整性,進而導致Code無法運作.我們也就沒辦法得到Shell了.l透過暫存器與自己做xor運算,產生我們所需要的0,並且避免使用high word是0的立即值,使code中能夠不再有00H出現.l例:movb$0 x0,0 x7(%esi)代換成 xorl%eax,%eax l透過使用環境變數,簡化輸入Shell Code的動作.初步作法初步作法技術細節技術細節(2/3)sh-2.04$./vulnerable$CODEShel l CodeRet urn Addressshellcode=xebx2ax5ex89x76x08xc6x46

    15、x07x00 xc7x46x0cx00 x00 x00 x00 xb8x0bx00 x00 x00 x89xf3x8dx4ex08x8dx56x0cxcdx80 xb8x01x00 x00 x00 xbbx00 x00 x00 x00 xcdx80 xe8xd1xffxffxffx2fx62x69x6ex2fx73x68x00 x89xecx5dxc3;輸入容易輸入不便l要Buffer Overflow別人的程式,常常會算不準要Return的Address,我們可以在Shell Code前面增加一段nop指令來增加我們的成功機會.初步作法初步作法技術細節技術細節(3/3)j um p程式主體字

    16、串資料Ret urnAddresscal lj um ppopSt ack成長方向Shel l codeShel l codeNOP要跳到這一點談何容易只要跳進綠色的範圍就可以成功運作了Array太小太小無法成功無法成功Overflowl不時會遇到左圖的情形,導致無法順利地跳到我們的Shell Code執行.所以必需予以改善.ArraySFPRet urnAddress距離太短Shel l Code 新的Ret urnAddressNOPSt ack成長方向我們新的Ret urn Address無法成功覆寫在原本Ret urn Address的位置l為了改善Array太小,無法動作的窘況.將S

    17、hell Code也移到環境變數中.Stack中只充填新的Return Address.進階作法進階作法技術細節技術細節ArraySFPRet urnAddressSt ack成長方向充滿新的Ret urn Address的環境變數裝滿NOP和Shel l Code的環境變數把St ack中灌滿新的Ret urn Address新的Ret ur nAddr ess跳到環境變數中執行Shel l Code結論結論l透過Buffer Overflow的方式,我們可以不需要擁有root的password,就可以由一般使用者變成super user,進而掌控整個系統.lC語言並沒有bound checking的機制,所以使用C語言會讓我們不經意地,造就出系統安全上的漏洞.所以我們必需要自己去做bound checking的動作.Bound Checking,這是一定要的啦這是一定要的啦!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:这是一定要的啦逢甲大学课件.ppt
    链接地址:https://www.163wenku.com/p-5082927.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库