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