中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現C++程序釋放后使用導致的漏洞分析

發布時間:2022-01-18 15:02:16 來源:億速云 閱讀:196 作者:柒染 欄目:網絡管理

如何實現C++程序釋放后使用導致的漏洞分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1、釋放后使用

當動態分配的內存釋放時,該內存的內容是不確定的,有可能保持完整并可以被訪問,因為什么時候重新分配或回收釋放的內存塊是內存管理程序決定的,但是,也可能該內存的內容已經被改變,導致意外的程序行為。因此,當內存釋放之后,保證不再對它進行寫入或讀取。

2、 釋放后使用的危害

由內存管理不當導致的問題是 C/C++ 程序中常見的漏洞。釋放后使用會導致可被利用的潛在風險,包括程序異常終止、任意代碼執行和拒絕服務攻擊等。2018年1月至11月,CVE 中共有134條漏洞信息與其相關。部分漏洞如下:

CVE漏洞概述
CVE-2018-1000051 Artifex Mupdf 版本的 fz_keep_key_storable 中存在一個釋放后使用漏洞,可導致拒絕服務或代碼執行問題。通過誘騙受害者打開一個特殊構造的 PDF 文件,該漏洞即可遭利用。
CVE-2018-17474谷歌 Chrome 瀏覽器70.0.3538.67 之前版本 Blink 引擎的 HTMLImportsController 中存在一個釋放后使用漏洞,很有可能導致遠程攻擊者通過一個特殊構造的 HTML 頁面利用堆損壞問題。
CVE-2018-15924Adobe Acrobat 和 Reader 2018.011.20063及之前版本、2017.011.30102 及之前版本、2015.006.30452 及之前版本中存在釋放后使用漏洞。遠程攻擊者可利用該漏洞執行任意代碼。

3、示例代碼

示例源于 Samate Juliet TestSuite for C/C++ v1.3 (https://samate.nist.gov/SARD/testsuite.php),源文件名:CWE416_Use_After_Free__malloc_free_char_01.c。

3.1缺陷代碼

如何實現C++程序釋放后使用導致的漏洞分析

使用360代碼衛士對上述示例代碼進行檢測,可以檢出“釋放后使用”缺陷,顯示等級為高。如圖1所示:

如何實現C++程序釋放后使用導致的漏洞分析

圖1:釋放后使用檢測示例

3.2 修復代碼

如何實現C++程序釋放后使用導致的漏洞分析

在上述修復代碼中,Samate 給出的修復方式為:在第30行使用 malloc()進行內存分配,并在第36行處使用 free() 進行釋放,釋放后不在對該內存進行其他操作。

使用360代碼衛士對修復后的代碼進行檢測,可以看到已不存在“釋放后使用”缺陷。如圖2:

如何實現C++程序釋放后使用導致的漏洞分析

圖2:修復后檢測結果

4 、如何避免釋放后使用

要避免釋放后使用,需要注意以下幾點:

(1) 釋放內存時請務必置空指針,雖然這種方法針對多重或復雜數據結構利用的有效性有限,但可以從一定程度上規避一部分問題。

(2) 在循環語句中進行內存分配或釋放時,需謹慎確認是否存在問題。

(3) 使用源代碼靜態分析工具進行自動化的檢測,可以有效的發現源代碼中的釋放后使用問題。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

江达县| 寻乌县| 方山县| 博客| 托克托县| 东丽区| 九寨沟县| 扶沟县| 尚志市| 定西市| 浏阳市| 永和县| 贞丰县| 屏南县| 库尔勒市| 济阳县| 和顺县| 乐平市| 买车| 航空| 绥中县| 商河县| 招远市| 霸州市| 巴楚县| 中宁县| 贡觉县| 遵义县| 寻乌县| 屯留县| 廊坊市| 武威市| 电白县| 延寿县| 井陉县| 中西区| 黔西县| 临清市| 托克逊县| 奉贤区| 靖远县|