標籤:orm 分享 val image 頭像 特定 color 程式設計語言 apach
0x01 檔案上傳漏洞簡介
為了讓使用者將檔案上傳到網站,就像是給危機伺服器的惡意使用者開啟了另一扇門。即便如此,在今天的現代互連網的Web應用程式,它是一種常見的要求,因為它有助於提高業務效率。企業支援門戶,給使用者各企業員工有效地共用檔案。允許使用者上傳圖片,視頻,頭像和許多其他類型的檔案。向使用者提供的功能越多,Web應用受到攻擊的風險和機會就越大,這種功能會被惡意使用者利用,獲得到一個特定網站的許可權,或危及伺服器的可能性是非常高的。上傳檔案本身沒有錯,問題與漏洞在於伺服器怎麼處理上傳的檔案。
0x02 上傳漏洞的危害
這個漏洞在DVBBS6.0時代被駭客們利用的最為猖獗,利用上傳漏洞可以直接得到WEBSHELL,危害等級超級高,現在的入侵中上傳漏洞也是常見的漏洞。
0x03 上傳漏洞成因
上傳檔案的時候,如果伺服器指令碼語言,未對上傳的檔案進行嚴格的驗證和過濾,就容易造成上傳任意檔案,包括上傳指令檔。如果是正常的PHP檔案,對伺服器則沒有任何危害。PHP可以像其他的程式設計語言一樣,可以查看目錄下的檔案,查看檔案中的嗎內容,可以執行系統命令等。上傳檔案的時候,如果伺服器端指令碼語言,未對上傳的檔案進行嚴格的驗證和過濾,就有可能上傳惡意的PHP檔案,從而控制整個網站,甚至是伺服器。
0x04 上傳漏洞原理
index.html:
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的源碼如下:
<?phpphpinfo()?>
然後我們在本地搭建網站上傳測試一下:
上傳成功,我們來開啟我們上傳的檔案
成功開啟我們的檔案,這時再查看我們的網站根目錄:
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
【Web安全】檔案上傳漏洞原理分析