PHP Session_Regenerate_ID函數雙釋放記憶體破壞漏洞_php技巧

來源:互聯網
上載者:User
SEBUG-ID:1491
SEBUG-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安全建議:
目前沒有解決方案提供:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.