成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP漏洞全解(九)-文件上傳漏洞

系統 Linux
本文主要介紹針對PHP網站文件上傳漏洞。由于文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件后綴以及文件類型,導致允許攻擊者向某個可通過 Web 訪問的目錄上傳任意PHP文件,并能夠將這些文件傳遞給 PHP解釋器,就可以在遠程服務器上執行任意PHP腳本,即文件上傳漏洞。

一套web應用程序,一般都會提供文件上傳的功能,方便來訪者上傳一些文件。

下面是一個簡單的文件上傳表單

  1. <form action="upload.php" method="post" enctype="multipart/form-data" name="form1"> 
  2. <input type="file" name="file1" /><br /> 
  3. <input type="submit" value="上傳文件" /> 
  4. <input type="hidden" name="MAX_FILE_SIZE" value="1024" /> 
  5. form> 

php的配置文件php.ini,其中選項upload_max_filesize指定允許上傳的文件大小,默認是2M

$_FILES數組變量

PHP使用變量$_FILES來上傳文件,$_FILES是一個數組。如果上傳test.txt,那么$_FILES數組的內容為:

  1. $FILES 
  2. Array 
  3. [file] => Array 
  4. [name] => test.txt //文件名稱 
  5. [type] => text/plain //MIME類型 
  6. [tmp_name] => /tmp/php5D.tmp //臨時文件 
  7. [error] => 0 //錯誤信息 
  8. [size] => 536 //文件大小,單位字節 

如果上傳文件按鈕的name屬性值為file

  1. <input type="file" name="file" /> 

那么使用$_FILES['file']['name']來獲得客戶端上傳文件名稱,不包含路徑。使用$_FILES['file']['tmp_name']來獲得服務端保存上傳文件的臨時文件路徑

存放上傳文件的文件夾

PHP不會直接將上傳文件放到網站根目錄中,而是保存為一個臨時文件,名稱就是$_FILES['file']['tmp_name']的值,開發者必須把這個臨時文件復制到存放的網站文件夾中。

$_FILES['file']['tmp_name']的值是由PHP設置的,與文件原始名稱不一樣,開發者必須使用$_FILES['file']['name']來取得上傳文件的原始名稱。

上傳文件時的錯誤信息

$_FILES['file']['error']變量用來保存上傳文件時的錯誤信息,它的值如下:

錯誤信息 數值 說 明
UPLOAD_ERR_OK 0 沒有錯誤
UPLOAD_ERR_INI_SIZE 1 上傳文件的大小超過php.ini的設置
UPLOAD_ERR_FROM_SIZE 2 上傳文件的大小超過HTML表單中MAX_FILE_SIZE的值
UPLOAD_ERR_PARTIAL 3 只上傳部分的文件
UPLOAD_ERR_NO_FILE 4 沒有文件上傳

文件上傳漏洞

如果提供給網站訪問者上傳圖片的功能,那必須小心訪問者上傳的實際可能不是圖片,而是可以指定的PHP程序。如果存放圖片的目錄是一個開放的文件夾,則入侵者就可以遠程執行上傳的PHP文件來進行攻擊。

下面是一個簡單的文件上傳例子:

  1. php 
  2. // 設置上傳文件的目錄 
  3. $uploaddir = "D:/www/images/"
  4. // 檢查file是否存在 
  5. if (isset($_FILES['file1'])) 
  6. // 要放在網站目錄中的完整路徑,包含文件名 
  7. $uploadfile = $uploaddir . $_FILES['file1']['name']; 
  8. // 將服務器存放的路徑,移動到真實文件名 
  9. move_uploaded_file($_FILES['file1']['tmp_name'], $uploadfile); 
  10. ?> 
  11. …… 
  12. <form method="post" enctype="multipart/form-data" name="form1"> 
  13. <input type="file" name="file1" /><br /> 
  14. <input type="submit" value="上傳文件" /> 
  15. <input type="hidden" name="MAX_FILE_SIZE" value="1024" /> 
  16. form> 

這個例子沒有檢驗文件后綴,可以上傳任意文件,很明顯的上傳漏洞

責任編輯:xikder 來源: DoDo's Blog
相關推薦

2012-04-12 15:42:35

2012-04-12 15:59:09

2012-04-12 13:36:59

2012-04-12 15:06:44

2012-04-12 15:27:44

2012-04-12 14:45:13

2012-04-12 11:28:04

2013-07-03 11:28:47

2013-10-31 13:19:06

2009-12-09 09:49:40

2013-03-25 11:51:42

php漏洞代碼審計php

2010-09-16 15:17:33

2013-04-27 17:03:57

2011-04-13 17:28:21

2009-11-22 15:28:35

2009-07-06 17:47:44

2009-08-15 10:19:01

漏洞利用php expEXP程序

2015-02-04 14:50:29

2017-09-19 15:01:06

PHP漏洞滲透測試

2018-02-02 14:29:25

PHP漏洞服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文精品视频 | 天天拍天天插 | 国产一区二区精品在线 | 性做久久久久久免费观看欧美 | 91精品国产综合久久国产大片 | 国产一级在线视频 | 久久涩涩 | 羞羞的视频网站 | 亚洲色图网址 | 国产美女自拍视频 | 精品久久久久久久久亚洲 | 欧美亚洲国产日韩 | 中文字幕av网址 | 中文字幕在线观看一区 | 91av在线电影 | 日韩欧美一区二区三区免费观看 | 国产精品久久久久久久免费大片 | 国产欧美日韩一区二区三区在线 | 中文字幕一区二区三区不卡 | 美女逼网站 | 精品在线免费观看视频 | 日韩在线看片 | 在线第一页| 亚洲国产一区视频 | 亚洲午夜精品 | 97人人澡人人爽91综合色 | 久久精品国产一区 | 欧美综合久久 | 国产二区三区 | 国产精品久久久久久福利一牛影视 | 欧美日韩在线成人 | 99精品在线观看 | 国产精品国产精品国产专区不片 | 亚洲精品国产成人 | 伦理二区 | 天天草夜夜骑 | 国产日韩欧美中文字幕 | 伊人久久大香线 | 日韩欧美视频 | 欧美不卡一区二区三区 | 亚洲精品视频免费 |