【Web安全】文件上傳漏洞原理分析

0x01 文件上傳漏洞簡介php

  爲了讓用戶將文件上傳到網站,就像是給危機服務器的惡意用戶打開了另外一扇門。即使如此,在今天的現代互聯網的Web應用程序,它是一種常見的要求,由於它有助於提升業務效率。企業支持門戶,給用戶各企業員工有效地共享文件。容許用戶上傳圖片,視頻,頭像和許多其餘類型的文件。向用戶提供的功能越多,Web應用受到攻擊的風險和機會就越大,這種功能會被惡意用戶利用,得到到一個特定網站的權限,或危及服務器的可能性是很是高的。上傳文件自己沒有錯,問題與漏洞在於服務器怎麼處理上傳的文件html

 

0x02 上傳漏洞的危害nginx

  這個漏洞在DVBBS6.0時代被黑客們利用的最爲猖獗,利用上傳漏洞能夠直接獲得WEBSHELL,危害等級超級高,如今的入侵中上傳漏洞也是常見的漏洞。編程

 

0x03 上傳漏洞成因安全

  上傳文件的時候,若是服務器腳本語言,未對上傳的文件進行嚴格的驗證和過濾,就容易形成上傳任意文件,包括上傳腳本文件。若是是正常的PHP文件,對服務器則沒有任何危害。PHP能夠像其餘的編程語言同樣,能夠查看目錄下的文件,查看文件中的嗎內容,能夠執行系統命令等。上傳文件的時候,若是服務器端腳本語言,未對上傳的文件進行嚴格的驗證和過濾,就有可能上傳惡意的PHP文件,從而控制整個網站,甚至是服務器。服務器

 

0x04 上傳漏洞原理編程語言

index.html: post

 1 <html>  
 2 <head>  
 3 <meta charset="utf-8">
 4 <title>文件上傳漏洞 - 燁</title>   
 5 </head>  
 6 <body>  
 7 <center>
 8 <h2>文件上傳漏洞</h2>
 9 <p>2017.7.30 By.燁</p>
10 <p>
11 文件上傳漏洞是指用戶上傳了一個可執行的腳本文件,並經過此腳本文件得到了執行服務器端命令的能力。<br>
12 這種攻擊方式是最爲直接和有效的,「文件上傳」自己沒有問題,有問題的是文件上傳後,服務器怎麼處理、解釋文件。<br>
13 若是服務器的處理邏輯作的不夠安全,則會致使嚴重的後果。<br>
14 </p>
15 <hr>
16 <h2>漏洞演示</h2>
17 <form action="upload.php" method="post" onsubmit="checkFile()" enctype="multipart/form-data">  
18     <input type="file" name="file" id="file"> 
19     <input type="submit" value="上傳文件" name="submit">  
20 </form>  
21 </center>
22 </body>  
23 </html>  

upload.php:測試

 1 <?php  2     error_reporting(0); //抑制全部錯誤信息
 3     @header("content-Type: text/html; charset=utf-8"); //語言強制
 4     ob_start();  5 
 6     if(isset($_POST["submit"])){  7         $name = $_FILE['file']['name'];  8         $name = md5(date('Y-m-d h:m:s')).strrchr($name,".");//上傳文件重命名
 9         $size = $_FILES['file']['size']; 10         $tmp = $_FILES['file']['tmp_name']; 11         move_uploaded_file($tmp,$name); 12         echo "文件上傳成功!path:".$name; 13  } 14 ?>

咱們提早準備一個上傳的文件 1.php網站

1.php的源碼以下:

<?php phpinfo() ?>

而後咱們在本地搭建網站上傳測試一下:

 

上傳成功,咱們來打開咱們上傳的文件

成功打開咱們的文件,這時再查看咱們的網站根目錄:

 

0x05 解析漏洞

接下來爲你們列舉一些比較經常使用的解析漏洞:

nginx解析漏洞:

http://www.xxxx.com/1.jpg/a.php
http://www.xxxx.com/1.jpg%00.php

IIS7.0/7.5解析漏洞:

http://www.xxxx.com/UploadFiles/image/1.jpg/.php

IIS6.0解析漏洞:

http://www.xxxx.com/UploadFiles/image/1.jpg;x.php

Apache解析漏洞:

http://www.xxxx.com/test.php.x1.x2.x3
相關文章
相關標籤/搜索