ctf(pwn) canary保护机制讲解 与 解密方法介绍
生活随笔
收集整理的這篇文章主要介紹了
ctf(pwn) canary保护机制讲解 与 解密方法介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果題目開啟了 Canary 保護, 往往需要和 格式化字符串漏洞利用聯系起來
Canary保護機制
canary的意思是金絲雀,來源于英國礦井工人用來探查井下氣體是否有毒的金絲雀籠子。工人們每次下井都會帶上一只金絲雀如果井下的氣體有毒,金絲雀由于對毒性敏感就會停止鳴叫甚至死亡,從而使工人們得到預警。
在函數開始時就隨機產生一個值,將這個值CANARY放到棧上緊挨ebp的上一個位置,當攻擊者想通過緩沖區溢出覆蓋ebp或者ebp下方的返回地址時,一定會覆蓋掉CANARY的值;當程序結束時,程序會檢查CANARY這個值和之前的是否一致,如果不一致,則不會往下運行,從而避免了緩沖區溢出攻擊。
防止攻擊手段:所有單純的棧溢出
Canary繞過破解方式一般有兩種方式
1.爆破canary
2.如果存在字符串格式化漏洞可以輸出泄露canary的地址并利用棧溢出覆蓋canary的地址返回到system地址從而達到繞過
例題查看: 攻防世界(pwn)–Mary_Morton 利用格式化字符串+棧溢出破解Canary的保護機制
總結
以上是生活随笔為你收集整理的ctf(pwn) canary保护机制讲解 与 解密方法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 攻防世界(Pwn) forgot---栈
- 下一篇: (Python)from collect