色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP Session_Regenerate_ID函數雙釋放內存破壞漏洞

SEBUG-ID:1491SEBUG-Appdir:php
發布時間:2007-03-17
影響版本:
php php 5.2.1
php php 5.1.6
php php 5.1.5
php php 5.1.4
php php 5.1.3
php php 5.1.3
php php 5.1.2
php php 5.1.1
php php 5.1
php php 5.0.5
php php 5.0.4
php php 5.0.3
+ Trustix Secure Linux 2.2
php php 5.0.2
php php 5.0.1
php php 5.0 candidate 3
php php 5.0 candidate 2
php php 5.0 candidate 1
php php 5.0 .0
php php 5.2
漏洞描述:
php是一款廣泛使用的WEB開發腳本語言。
php Session_Regenerate_ID函數存在雙釋放內容破壞問題,遠程攻擊者可利用此漏洞對應用程序進行拒絕服務攻擊,可能導致任意指令執行。
session_regenerate_id()函數最先會釋放舊的會話識別器,然后馬上分配由會話識別生成器生成的新值:
復制代碼 代碼如下:
php_FUNCTION(session_regenerate_id)
{
...
if (PS(id)) {
...
efree(PS(id));
}
PS(id) = PS(mod)->s_create_sid(&PS(mod_data), NULL TSRMLS_CC);
PS(send_cookie) = 1;
php_session_reset_id(TSRMLS_C);
RETURN_TRUE;
}
RETURN_FALSE;
}

但是此分配操作不是一個原子操作。因此可被如內存限制沖突操作來中斷,另外,根據php配置,生成器可觸發php錯誤也可導致一個中斷。
復制代碼 代碼如下:
phpAPI char *php_session_create_id(PS_CREATE_SID_ARGS)
{
...
switch (PS(hash_func)) {
...
default:
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid session hash function");
efree(buf);
return NULL;
}
...
if (PS(hash_bits_per_character) < 4
|| PS(hash_bits_per_character) > 6) {
PS(hash_bits_per_character) = 4;
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The ini setting hash_bits_per_character...");
}
...

通過注冊一個惡意用戶空間錯誤處理器可比較容易的利用此問題。當此處理器調用一個HASH表分配到前會話識別器相同的地方,然后惡意錯誤處理器可以通過調用session_id()函數和分配包含偽造HASH表到HASH表相同地方,這樣來觸發另一個之前的會話識別器的釋放操作。當用戶錯誤處理器完成后會解構覆蓋的HASH表而調用攻擊者提供的代碼。
http://www.php-security.org/MOPB/MOPB-22-2007.html
測試方法:
[www.sebug.NET]
本站提供程序(方法)可能帶有攻擊性,僅供安全研究與教學之用,風險自負!
http://www.php-security.org/MOPB/code/MOPB-22-2007.php
SEBUG安全建議:
目前沒有解決方案提供:

php技術PHP Session_Regenerate_ID函數雙釋放內存破壞漏洞,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 巴彦县| 芒康县| 利川市| 清远市| 九寨沟县| 穆棱市| 遵义市| 青神县| 深泽县| 双辽市| 寿宁县| 滁州市| 如东县| 晋州市| 华安县| 永善县| 胶州市| 崇信县| 会理县| 肇庆市| 公主岭市| 内黄县| 无极县| 南召县| 林州市| 龙陵县| 陵水| 厦门市| 鹿邑县| 新宾| 清苑县| 黄龙县| 民乐县| 白水县| 综艺| 常州市| 北流市| 河东区| 广宁县| 根河市| 望都县|