文件上傳漏洞的總結

防御文件上傳的一些思路

  • 客戶端javascript校驗(通常校驗擴展名)
  • 檢查文件擴展名
  • 檢查MIME類型
  • 隨機文件名
  • 隱藏路徑
  • 重寫內(nèi)容(影響效率)imagecreatefromjpeg…
  • 檢查內(nèi)容是否合法

繞過技巧

  • $_FILES[‘file’][‘type’]:burp抓包可修改
  • 內(nèi)容檢查:
    • <script language=“php”></script>
  • 文件名拓展檢查:黑名單繞過 ○ Php3 php5 phtml PPHP pHp phtm inc ○ Jsp jspx jspf ○ Asp asa cer aspx ○ Exe exee ○ 后綴名加空格 ○ 00截斷 ○ 雙重后綴名繞過
  • 常配合文件包含漏洞達到特殊效果
  • 通過比較gd函數(shù)處理前后的文件找到不產(chǎn)生變化的區(qū)塊寫入特殊的payloadhttp://www.freebuf.com/articles/web/54086.html
  • phpinfo+lfi
  • htaccess攻擊
    • AddType application/x-httpd-php .jpg
<FilesMatch "lw.gif">
SetHandler application/x-httpd-php
</FilesMatch>
  • opcache文件getshell(利用phpinfo獲得緩存目錄后上傳shell)https://www.exehack.net/3272.html

    • 如果內(nèi)存緩存的優(yōu)先級高于文件緩存,那么重寫opcache文件并不會執(zhí)行我們的webshell
    • 開啟了validate_timestamp的繞過:
      • Wordpress某些文件時間戳一樣
    • opcache-override
  • 文件頭檢測方法:將木馬后綴到文件末(常見的是通過getimagesize()函數(shù))

  • file_put_contents 數(shù)組繞過

  • 當代碼中存在spl_autoload_register()函數(shù)時可以上傳.inc文件(laravel、composer中常用)(湖湘杯)

    • spl_autoload_register()函數(shù)使用后將會自動調用inc文件
  • move_uploaded_file() 名稱可控時可上傳至任意位置,aaaa/../index.php/.繞過后綴名檢測

  • 上傳模板文件

  • 上傳繞過 parse_url函數(shù)可以通過多個斜杠來繞過

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 文件上傳漏洞是指用戶上傳了一個可執(zhí)行的腳本文件,并通過此腳本文件獲得了執(zhí)行服務器端命令的能力。這種攻擊方式是最為直...
    付出從未后悔閱讀 1,252評論 0 4
  • 本文使用環(huán)境來自于:https://github.com/c0ny1/upload-labs 客戶端 js檢查 一...
    Echocipher閱讀 10,454評論 0 2
  • 一 預定義接口 1.1 遍歷 Traversable(遍歷)接口 檢測一個類是否可以被foreach遍歷,該接口不...
    coderhu閱讀 1,306評論 0 0
  • ?當我寫下這些文字的時候,說明過往的悶悶不樂,我都放下了。 你會不會還是晚上很晚睡覺呢?你總是告訴我說沒辦法,生活...
    言小胡閱讀 337評論 0 1
  • 食晏睇《血滴子》,幾個兄弟,系忠同義嘅決擇作出唔同嘅選項,因忠而斷義,因義而迸忠,殊對殊錯,見人見智。 唯一可以解...
    常珍細仔閱讀 371評論 0 1

友情鏈接更多精彩內(nèi)容