<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    緩沖區溢出漏洞的類型有哪些


    發現錯別字 5個月前 提問
    回答
    1
    瀏覽
    829
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    delay
    高級測評師 CISM-WSE
    最佳答案

    緩沖區溢出的攻擊大致分為以下這些:

    • 棧溢出:未檢查輸入緩沖區長度,導致數組越界,覆蓋棧中局部變量空間之上的棧楨指針%ebp以及函數返回地址retaddr, 當函數返回執行ret指令時,retaddr從棧中彈出,作為下一條指令的地址賦給%eip寄存器,繼而改變原程序的執行流程指向我們的 shellcode.

    • 堆溢出:一種是和傳統的棧溢出一樣, 當輸入超出malloc()預先分配的空間大小,就會覆蓋掉這段空間之后的一段存儲區域,如果該存儲區域有一個重要的變量比如euid,那么我就可以用它 來攻擊。另一種是典型的double-free堆腐敗,在內存回收操作中,合并相鄰空閑塊重新插入雙向鏈表時會有一個寫4字節內存的操作,如果弱點程序由 于編程錯誤free()一個不存在的塊,我們就可以精心偽造這個塊,從而覆蓋任何我們想要的值:函數的返回地址、庫函數的.plt地址等

    • 格式化字符竄漏洞:如果格式竄由用戶定制,攻擊者就可以任意偽造格式竄,利用*printf()系列函數的特性就可以窺探堆棧空間的內容,超常輸入可以引發傳統的緩沖區溢出,或是用”%n”覆蓋指針、返回地址等。

    • 整形變量溢出:利用整數的范圍、符號等問題觸發安全漏洞,大多數整形溢出不能直接利用,但如果該整形變量決定內存分配等操作,我們就有可能間接利用該漏洞。

    • 其他的攻擊手法:只能算是手法,不能算是一種單獨的類別。利用ELF文件格式的特性如:覆蓋.plt(過程連接表)、.dtor(析構函數指針)、.got(全局偏移表)、return-to-libc(返回庫函數)等的方式進行攻擊。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    5個月前 / 評論
    回答數量: 1
    亚洲 欧美 自拍 唯美 另类