CGIphp5.2.3远程缓冲区溢出漏洞

点评:当php5.2.3处理CGI,由于编程错误(没有括号),它是计算一个字符串的长度错误,造成堆缓冲区溢出,并能执行远程代码。


触发方式:配置CGI映射。PHP php.exe,并请求得到 /测试。PHP / AA HTTP / 1.1

在php-5.2.3sapicgicgi-man发生错误。C线886:

国际path_transl






当php5.2.3处理CGI,由于编程错误(没有括号),由一个字符串的长度计算错误,导致堆溢出,并远程执行任意代码。


触发方式:配置CGI映射。PHP php.exe,并请求得到 /测试。PHP / AA HTTP / 1.1

在php-5.2.3 CGI CGI SAPI人发生错误。C线886:

国际path_translated_len = ptlen env_path_info strlen(env_path_info):0;

程序应该是

国际path_translated_len = ptlen(env_path_info strlen(env_path_info):0);

程序处理流程:

(主)


{


......


init_request_info(tsrmls_c);


......

}

静态init_request_info(tsrmls_d)


{


......


国际path_translated_len = ptlen env_path_info strlen(env_path_info):0;


......


path_translated =(char *)emalloc(path_translated_len 1);


......


如果(env_path_info){


Memcpy(path_translated ptlen,env_path_info,path_translated_len - ptlen);


}

}