百度首页 | 百度空间
 
查看文章
 
php5.2.3远程CGI缓冲溢出漏洞
2008-02-16 11:41

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

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);   
   }     
     
         }

   


类别:漏洞 | 添加到搜藏 | 浏览() | 评论 (9)
 
最近读者:
 
网友评论:
1
2008-02-16 11:55
袁哥讲技术了啊,可惜我听不懂~
 
2
2008-02-16 17:22
php-5.2.3\sapi\cgi\cgi-man.c line 886:
袁哥在Win下测试的?
 
3
2008-02-16 17:25
可能是专门留的后门
 
4
2008-02-16 22:02
哈哈哈,这个漏洞非常经典,很有教育意义,可以做范例了
 
5
2008-02-17 12:42
缺少括号……
 
6
2008-02-18 20:09
哇,0day啊啊啊
 
7
2008-02-19 18:13
CGI映射方式映射的,每次请求都出现一个新的PHP进程,不好调试。
 
8
2008-02-19 22:16
0day的漏洞没什么大的用处吧?现在网吧的补丁都打了。
 
9
2008-03-13 14:34
yuange,你对股市有啥看法?说说看.
你现在股市,总体还赚么?
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请输入下图中的四位验证码,字母不区分大小写。
看不清?
 

     

©2008 Baidu