php中文件上传的安全问题

2016-02-19 12:10 66 1 收藏

今天图老师小编给大家精心推荐个php中文件上传的安全问题教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - Web开发 】


可以读/etc/passwd!

这段。。

[文件上载]
PHP自动支持基于RFC 1867的文件上载,我们看下面的例子:

FORM METHOD="POST" ENCTYPE="multipart/form-data"
INPUT TYPE="FILE" NAME="hello"
INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="10240"
INPUT TYPE="SUBMIT"
/FORM

上面的代码让用户从本地机器选择一个文件,当点击提交后,文件就会被上载到服务器。这显然是很有用的功能,但是PHP的响应方式使这项功能变的不安全。当PHP第一次接到这种请求,甚至在它开始解析被调用的PHP代码之前,它会先接受远程用户的文件,检查文件的长度是否超过“$MAX_FILE_SIZE variable”定义的值,如果通过这些测试的话,文件就会被存在本地的一个临时目录中。

因此,攻击者可以发送任意文件给运行PHP的主机,在PHP程序还没有决定是否接受文件上载时,文件已经被存在服务器上了。

这里我就不讨论利用文件上载来对服务器进行DOS攻击的可能性了。

让我们考虑一下处理文件上载的PHP程序,正如我们上面说的,文件被接收并且存在服务器上(位置是在配置文件中指定的,一般是/tmp),扩展名一般是随机的,类似“phpxXuoXG”的形式。PHP程序需要上载文件的信息以便处理它,这可以通过两种方式,一种方式是在PHP 3中已经使用的,另一种是在我们对以前的方法提出安全公告后引入的。

但是,我们可以肯定的说,问题还是存在的,大多数PHP程序还是使用老的方式来处理上载文件。PHP设置了四个全局变量来描述上载文件,比如说上面的例子:

$hello = Filename on local machine (e.g "/tmp/phpxXuoXG")
$hello_size = Size in bytes of file (e.g 1024)
$hello_name = The original name of the file on the remote system (e.g "c:temphello.txt")
$hello_type = Mime type of uploaded file (e.g "text/plain")

然后PHP程序开始处理根据“$hello”指定的文件,问题在于“$hello”不一定是一个PHP设置的变量,任何远程用户都可以指定它。如果我们使用下面的方式:

http://vulnhost/vuln.php?hello=/etc/passwd&hello_size=10240&hello_type=text/plain&hello_name=hello.txt

就导致了下面的PHP全局变量(当然POST方式也可以(甚至是Cookie)):

$hello = "/etc/passwd"
$hello_size = 10240
$hello_type = "text/plain"
$hello_name = "hello.txt"

上面的表单数据正好满足了PHP程序所期望的变量,但是这时PHP程序不再处理上载的文件,而是处理“/etc/passwd”(通常会导致内容暴露)。这种攻击可以用于暴露任何敏感文件的内容。 

 

来源:https://www.tulaoshi.com/n/20160219/1600074.html

延伸阅读
标签: Web开发
在WebDev站点上经常看到的一个问题是关于文件上传的。在这篇文章里我将解释如何用PHP实现文件 上传。 设计上传表格 我们主要的目标是完成文件从本地计算机上传到服务器上去。为了做到这一点,我们需要做一个表 格,允许用户选择一个文件并可以提交它。下面是一个例子: HTML HEAD TITLE文件上传表格/TITLE /HEAD BODY TABLE FORM E...
标签: 食疗养生
越是到春节这种人多聚餐的时候,食品安全越要放在心上。现笔者就常见的、容易忽略的一些问题,给大家作个提醒: 水果部分腐烂不能吃 由于保存不当,买回来的水果常常会烂掉,于是不少人就用刀把烂掉的部分挖掉,把没有坏的部分吃了。其实,这是一种错误的做法。有毒物质可以从腐烂部分通过果汁向未腐烂部分扩散,使未腐烂部...
标签: 宠物猫 宠物
注意家里潜在的威胁     检查房间里是否有裸露在外的电线,遗落在地上的塑料袋之类对猫咪有潜在危险的物品。家中的植物最好放在幼猫接触不到的地方,有的植物是有毒的比如夹竹桃,冬青树,杜鹃花,有些调皮的幼猫可能会去啃食。家里纱窗和阳台要关好,防止小猫不当心坠落。     对于杀虫剂、灭鼠药等有毒药物要放到猫咪...
标签: ASP
Microsoft推出的ASP(Active Server Page)以简单、易用、功能多、可扩充性等强大功能得到了网友和大多数网管的喜爱,大有完全代替CGI的趋势。但是我要对你说,如果使用ASP的话,你网络的安全同时也大大降低了! 在我继续说下去之前,请你完成以下步骤: 1.下载这个文件“http://home.gbsource.net/xuankong/dll.zip”,解压缩后把...
标签: ASP
      Microsoft推出的asp以简单,易用,多功能,可扩充性等强大功能得到了网友和大多数网管的青睐,大有完全替代cgi的趋势,但是在这里也存在一些问题,如果在使用asp的话,你网络的安全同时也大大降低了!下面为大家举一个例子,请按照下面的步骤:     1,下载这个文件http://home.gbsource.net/x...

经验教程

849

收藏

74
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部