1. 程式人生 > >緩沖區溢出

緩沖區溢出

內存 system ron article 數據包 解決 動態分配 語言 fan

原理:
通過往程序的緩沖區寫超出其長度的內容,造成緩沖區的溢出,從而破壞程序的堆棧,造成程序崩潰或使程序轉而執行其它指令,以達到攻擊的目的。造成緩沖區溢出的原因是程序中沒有仔細檢查用戶輸入的參數。

攻擊者在通過超長的數據包發送覆蓋了程序buffer的關鍵返回ret位置,導致CPU控制流的劫持,錯誤地把攻擊者數據當作代碼來執行

詳細說明:
緩沖區是程序運行時計算機內存中的一個連續的塊,它保存了給定類型的數據.問題隨著動態分配變量而出現.為了不用太多的內存,一個有動態分配變量的程序在程序運行時才決定給他們分配多少內存.如果程序在動態分配緩沖區放入太多的數據會有什麽現象?它溢出了,漏到了別的地方.一個緩沖區溢出應用程序使用這個溢出的數據將匯編語言代碼放到計算機的內存中,通常是產生root權限的地方.單單的緩沖區溢出,並不會產生安全問題.只有將溢出送到能夠以root權限運行命令的區域才行.這樣,一個緩沖區利用程序將能運行的指令放在了有root權限的內存中,從而一旦運行這些指令,就是以root權限控制了計算機.
總結一下上面的描述.緩沖區溢出指的是一種系統攻擊的手段,通過往程序的緩沖區寫超出其長度的內容,造成緩沖區的溢出,從而破壞程序的堆棧,使程序轉而執行其它指令,以達到攻擊的目的.據統計,通過緩沖區溢出進行的攻擊占所有系統攻擊總數的80%以上.

危害:
緩沖區溢出攻擊,可以導致程序運行失敗、系統關機、重新啟動,或者執行攻擊者的指令,比如非法提升權限,等操縱程序的內存中的內容。

解決:
代碼->通過實現安全編碼實踐,解決安全問題的應用程序在開發和測試來預防。

另外,也可詳細查看相關blog:http://www.cnblogs.com/fanzhidongyzby/archive/2013/08/10/3250405.html
試了下,沒看懂 =。=

還有:http://www.freebuf.com/articles/system/40107.html

緩沖區溢出