php5.2.3远程CGI缓冲溢出漏洞 's

admin 2017年4月26日18:54:45评论325 views字数 656阅读2分11秒阅读模式
摘要

yuange http://hi.baidu.com/yuange1975影响版本: php5.2.3
不影响版本: 其它版本php5.2.3在处理CGI的时候,由于一编程错误(缺少括号),错误计算一字符串长度,导致堆缓冲溢出,可能远程执行任意代码。
触发方式:配置.php到php.exe的CGI映射,请求GET /test.php/aa HTTP/1.1

yuange http://hi.baidu.com/yuange1975

影响版本: 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);
}

}

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年4月26日18:54:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   php5.2.3远程CGI缓冲溢出漏洞 'shttps://cn-sec.com/archives/47363.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息