文件上傳繞過的方法

1.直接上傳,沒有繞過方式

    捕獲.JPG

2.繞過前端js過濾進行上傳

  •      關閉瀏覽器中的js,然後進行上傳;禁用js或者F12修改即可

      1.JPG

  • 通過burpsuit進行抓包,修改後綴名進行上傳

      2.JPG

      3.JPG


3.MIME-TYPE檢測繞過;Burp截包,修改Content-Type,然後放行,即可繞過


     捕獲.GIF

     捕獲1.GIF

     捕獲2.GIF

          捕獲3.GIF

         捕獲4.GIF

4.文件頭繞過上傳;添加jpg等的二進制頭部

   文件頭檢查

  添加GIF圖片的文件頭GIF89a,繞過GIF圖片檢查。


     捕獲5.GIF

              捕獲8.GIF

               捕獲9.GIF

              捕獲6.GIF

              捕獲11.GIF

             捕獲10.GIF

          捕獲7.GIF

5.黑名單方式繞過

  •      文件名後綴大小寫混合繞過。.php改成.phP然後上傳即可。感覺和XSS的一些過濾繞過非常相似。

  •      這種只刪除一次php的,即可:雙寫文件名繞過,文件名改成xx.pphphp

  •      利用Windows系統的文件名特性  文件名最後增加點和空格,寫成.php.,上傳後保存在Windows系統上的文件名最後的一個.會被去掉,實際上保存的文件名就是.php

  •      Windows文件流特性繞過   文件名改成.php::$DATA,上傳成功後保存的文件名其實是.php

  •     上傳路徑名%00截斷繞過  上傳的文件名寫成11.jpg, save_path改成../upload/11.php%00,最後保存下來的文件就是11.php

      捕獲13.GIF

         捕獲14.GIF

           4.JPG

           5.JPG

           捕獲15.GIF

             要使用截斷上傳需要在php.ini中將magic_quotes_gpc改爲off,並需要確保php版本在5.3以下

            6.JPG

        

6.白名單繞過

  •      渲染函數導致可用圖片webshell

             原理:將一個正常顯示的圖片,上傳到服務器。尋找圖片被渲染後與原始圖片部分對比仍然相同的數據塊部分,將Webshell代碼插在該部分,然後上傳。具體實現需要自己編寫Python程序,人工嘗試                         基本是不可能構造出能繞過渲染函數的圖片webshell的。

  •     條件競爭

            利用條件競爭刪除文件時間差繞過。

         捕獲16.GIF


       通過圖片馬進行繞過上傳  

          製作圖片馬

     捕獲18.GIF

  •           通過上傳圖片馬直接執行php文件,需要修改http.conf中的以下文件添加執行的文件後綴名

      捕獲17.GIF      

  • 通過文件包含漏洞進行php文件的執行

     7.JPG

     8.JPG

      9.JPG

    文件包含

      10.JPG

圖片渲染上傳繞過

將一個正常顯示的圖片,上傳到服務器。尋找圖片被渲染後與原始圖片部分對比仍然相同的數據塊部分,將Webshell代碼插在該部分,然後上傳。具體實現需要自己編寫Python程序,人工嘗試基本是不可能構造出能繞過渲染函數的圖片webshell的。


條件競爭

利用條件競爭刪除文件時間差繞過。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章