background image

PHP 漏洞全解()-文件上传漏洞

本文主要介绍针对 PHP 网站文件上传漏洞。由于文件上传功能实现代码没有严格限制用户上传的文件后

 

缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意 PHP 文件,并能够将这些文

 

件传递给 PHP 解释器,就可以在远程服务器上执行任意 PHP 脚本,即文件上传漏洞。

AD  

一套 web 应用程序,一般都会提供文件上传的功能,方便来访者上传一些文件。

下面是一个简单的文件上传表单

1.

<form

 

action

=

"upload.php"

 

method

=

"post"

 

enctype

=

"multipart/form-data"

 

nam

e

=

"form1"

>

 

2.

<input

 

type

=

"file"

 

name

=

"file1"

 

/><br

 

/>

 

3.

<input

 

type

=

"submit"

 

value

=

"上传文件"

 

/>

 

4.

<input

 

type

=

"hidden"

 

name

=

"MAX_FILE_SIZE"

 

value

=

"1024"

 

/>

 

5.

</< span>form>

 

php 的配置文件 php.ini,其中选项 upload_max_filesize 指定允许上传的文件大小,默认是
2M

$_FILES 数组变量

PHP 使用变量$_FILES 来上传文件,$_FILES 是一个数组。如果上传 test.txt,那么$_FILES
数组的内容为:

1.

$FILES

 

2. Array 
3. { 
4. [file] => Array 
5. { 
6. [name] => test.txt 

//文件名称

 

7. [type] => text/plain 

//MIME 类型

 

8. [tmp_name] => /tmp/php5D.tmp 

//临时文件

 

9. [error] => 0 

//错误信息

 

10. [size] => 536 

//文件大小,单位字节

 

11. } 
12. } 

如果上传文件按钮的 name 属性值为 file