亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2011年01月27日 21:52:48   作者:  
PHP Session_Regenerate_ID函數存在雙釋放內容破壞問題,遠程攻擊者可利用此漏洞對應用程序進行拒絕服務攻擊,可能導致任意指令執(zhí)行。
SEBUG-ID:1491
SEBUG-Appdir:PHP
發(fā)布時間: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開發(fā)腳本語言。
PHP Session_Regenerate_ID函數存在雙釋放內容破壞問題,遠程攻擊者可利用此漏洞對應用程序進行拒絕服務攻擊,可能導致任意指令執(zhí)行。
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配置,生成器可觸發(fā)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表相同地方,這樣來觸發(fā)另一個之前的會話識別器的釋放操作。當用戶錯誤處理器完成后會解構覆蓋的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實現ip白名單黑名單功能

    php實現ip白名單黑名單功能

    本文給大家分享了2個php用于實現黑白名單的實用函數,分別是安全IP檢測函數和獲取客戶端IP函數,注釋里解釋的非常清楚,這里我就不多廢話了。
    2015-03-03
  • PHP實現的Redis操作通用類示例

    PHP實現的Redis操作通用類示例

    這篇文章主要介紹了PHP實現的Redis操作通用類,結合實例形式分析了php實現的redis連接、隊列、集合、hash表、事務等相關操作封裝技巧,需要的朋友可以參考下
    2018-06-06
  • php cookies中刪除的一般賦值方法

    php cookies中刪除的一般賦值方法

    php cookies中刪除的一般賦值方法 cookie 常用于識別用戶。cookie 是服務器留在用戶計算機中的小文件。
    2011-05-05
  • PHP把空格、換行符、中文逗號等替換成英文逗號的正則表達式

    PHP把空格、換行符、中文逗號等替換成英文逗號的正則表達式

    這篇文章主要介紹了PHP把空格、換行符、中文逗號等替換成英文逗號的正則表達式,需要的朋友可以參考下
    2014-05-05
  • php實現選擇排序法的代碼示例

    php實現選擇排序法的代碼示例

    選擇排序法是一種簡單的排序算法,其基本思想是每次從未排序的部分中選擇最小(或最大)的元素,然后放到已排序部分的末尾,本文給大家介紹了如何使用php實現選擇排序法,感興趣的朋友可以參考下
    2023-11-11
  • php網頁標題中文亂碼的有效解決方法

    php網頁標題中文亂碼的有效解決方法

    測試了php的網頁發(fā)現標題中文亂碼,在網上搜索了下面的解決方法,需要的朋友可以參考下
    2014-03-03
  • 修改php.ini不生效問題解決方法(上傳大于8M的文件)

    修改php.ini不生效問題解決方法(上傳大于8M的文件)

    上傳大于8M的文件需要修改php的配置才可以生效,搜索好多的參考資料,結果修改還是沒有生效,經過一番折騰終于找到了解決方法,下面與大家分享了
    2013-06-06
  • php數組函數array_key_exists()小結

    php數組函數array_key_exists()小結

    本文給大家匯總介紹了php數組函數array_key_exists()的相關知識以及與in_array的性能對比,與isset的區(qū)別分析,非常的詳細,有需要的小伙伴可以參考下。
    2015-12-12
  • php提交post數組參數實例分析

    php提交post數組參數實例分析

    這篇文章主要介紹了php提交post數組參數的用法,結合實例分析了php使用post進行參數提交的相關技巧,需要的朋友可以參考下
    2015-12-12
  • PHP編程實現的TCP服務端和客戶端功能示例

    PHP編程實現的TCP服務端和客戶端功能示例

    這篇文章主要介紹了PHP編程實現的TCP服務端和客戶端功能,結合實例形式分析了php基于socket實現TCP服務器端與客戶端通信功能的相關配置、定義與使用技巧,需要的朋友可以參考下
    2018-04-04

最新評論