文件上傳漏洞——漏洞解析彙總

1、.htaccess文件突破上傳

  • 該方法使用的前提:
  • 沒有禁止.htaccess文件的上傳,且服務商允許用戶使用自定義.htaccess文件。
  • 原理:
  • .htaccess文件(或者"分佈式配置文件"),全稱是Hypertext Access(超文本入口)。提供了針對目錄改變配置的方法, 即,在一個特定的文檔目錄中放置一個包含一個或多個指令的文件, 以作用於此目錄及其所有子目錄。作爲用戶,所能使用的命令受到限制。管理員可以通過Apache的AllowOverride指令來設置。
  • 不足:
  • 雖然好用,但是會誤傷其他正常文件,容易被發現。

2、 apache 1.X 2.X解析漏洞(wamp2.0)

  • 漏洞原理:
  • Apache 解析文件的規則是從右到左開始判斷解析,如果後綴名爲不可識別文件解析,就再往左判斷。比如 test.php.a.b的“.a”和”.b” 這兩種後綴是apache不可識別解析,apache就會把test.php.a.b解析成test.php。
  • 不足:
  • 1、如果在 Apache 的 conf 裏有這樣一行配置 AddHandler php5-script .php 這時只要文件名裏包含.php. 即使文件名是 test2.php.jpg 也會以 php 來執行。
  • 2、如果在 Apache 的 conf 裏有這樣一行配置 AddType application/x-httpd-php .jpg 即使擴展名是 jpg,一樣能以 php 方式執行。

3、iis6.0解析漏洞

  • 目錄解析:
  • 形式:www.xxx.com/xx.asp/xx.jpg
  • 原理: 服務器默認會把xx.asp目錄下的文件都解析成asp文件。
  • 文件解析:
  • 形式:www.xxx.com/xx.asp;.jpg
  • 原理:服務器默認不解析;號後面的內容,因此xx.asp;.jpg便被解析成asp文件了。

4、IIS 7.0/IIS 7.5/Nginx <=0.8.37

  • 漏洞原理:
  • Nginx拿到文件路徑(更專業的說法是URI)/test.jpg/test.php後,一看後綴是.php,便認爲該文件是php文件,轉交給php去處理。
  • php一看/test.jpg/test.php不存在,便刪去最後的/test.php,又看/test.jpg存在,便把/test.jpg當成要執行的文件了,又因爲後綴爲.jpg,php認爲這不是php文件,於是返回“Access denied.”
  • 注意:
  • 這其中涉及到php的一個選項:cgi.fix_pathinfo,該值默認爲1,表示開啓。開啓這一選項PHP可以對文件路徑進行“修理”。
  • 舉個例子,當php遇到文件路徑“/1.jpg/2.txt/3.php”時,若“/1.jpg/2.txt/3.php”不存在,則會去掉最後的“/3.php”,然後判斷“/1.jpg/2.txt”是否存在,若存在,則把“/1.jpg/2.txt”當做文件“/1.jpg/2.txt/3.php”,若“/1.jpg/2.txt”仍不存在,則繼續去掉“/2.txt”,以此類推。

5、編輯器解析漏洞

  • 在線web編輯器,也叫做富文本 編輯器。
  • 富文本編輯器,Rich Text Editor, 簡稱 RTE, 是一種可內嵌於瀏覽器,所見即所得的文本編輯器。
  • 富文本編輯器不同於文本編輯器,程序員可到網上下載免費的富文本編輯器內嵌於自己的網站或程序裏(當然付費的功能會更強大些),方便用戶編輯文章或信息。比較好的文本編輯器有kindeditor,fckeditor,ewebeditor等。
  • 這樣的程序,能夠在網站上寫文檔的時候,就像使用word一樣,豐富多彩,且不需要寫文檔的人懂html代碼。
  • 但正是由於這種富文本編輯器,帶有word的功能,圖片顯示(它的圖片顯示相當於word的外部鏈接圖片的形式。word可以是外部鏈接顯示圖片,就是一個word文檔,但是會有多個其他圖片的文件,也可以是嵌入word內部數據,所以只有一個word文檔),所以就很有可能造成文件上傳漏洞。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章