php5.2.3遠程CGI緩衝溢出漏洞
影響版本: php5.2.3
不影響版本: 其它版本

php5.2.3在處理CGI的時候,由於一編程錯誤(缺少括號),錯誤計算一字符串長度,導致堆緩衝溢出,可能遠程執行任意代碼。
觸發方式:配置.php到php.exe的CGI映射,請求GET /test.php/aa HTTP/1.1

錯誤發生在php-5.2.3\sapi\cgi\cgi-man.c line 886:

int path_translated_len = ptlen + env_path_info ? strlen(env_path_info) : 0;

程序應該是

int path_translated_len = ptlen + (env_path_info ? strlen(env_path_info) : 0);

程序處理流程:

main()
{
......
init_request_info(TSRMLS_C);
......

}

static void init_request_info(TSRMLS_D)
{
......
int path_translated_len = ptlen + env_path_info ? strlen(env_path_info) : 0;
......
path_translated = (char *) emalloc(path_translated_len + 1);
......
if (env_path_info) {
memcpy(path_translated + ptlen, env_path_info, path_translated_len - ptlen);
}

}

資料來源 http://www.hackeroo.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivan0914 的頭像
    ivan0914

    I'n Blog 之萬象真藏

    ivan0914 發表在 痞客邦 留言(0) 人氣()