日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件上传检测的基本思路

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件上传检测的基本思路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1: 前臺腳本檢測擴展名—繞過

原理

當用戶在客戶端選擇文件點擊上傳的時候,客戶端還沒有向服務器發送任何消息,就對本地文件進行檢測來判斷是否是可以上傳的類型,這種方式稱為前臺腳本檢測擴展名。
  • 1

繞過方法

  • 繞過前臺腳本檢測擴展名,就是將所要上傳文件的擴展名更改為符合腳本檢測規則的擴展名,通過BurpSuite工具,截取數據包,并將數據包中文件擴展名更改回原來的,達到繞過的目的。

  • 例如:文件名本來為【evil.jpg】,上傳時,用BurpSuite截包后,將數據包中的名字改為【evil.php】(或其它腳本類型)即可。

    • 1
    • 2

    2: Content-Type檢測文件類型—繞過

    原理

    當瀏覽器在上傳文件到服務器的時候,服務器對說上傳文件的Content-Type類型進行檢測,如果是白名單允許的,則可以正常上傳,否則上傳失敗。
    • 1

    繞過方法

    繞過Content--Type文件類型檢測,就是用BurpSuite截取并修改數據包中文件的Content-Type類型(如改為:image/gif),使其符合白名單的規則,達到上傳的目的。
    • 1

    3: 文件系統00截斷—繞過

    原理

    在上傳的時候,當文件系統讀到【0x00】時,會認為文件已經結束。利用00截斷就是利用程序員在寫程序時對文件的上傳路徑過濾不嚴格,產生0x00上傳截斷漏洞。
    • 1

    繞過方法

    通過抓包截斷將【evil.php.jpg】后面的一個【.】換成【0x00】。在上傳的時候,當文件系統讀到【0x00】時,會認為文件已經結束,從而將【evil.php.jpg】的內容寫入到【evil.php】中,從而達到攻擊的目的。
    • 1

    4: 服務器端擴展名檢測黑名單—繞過

    原理

    當瀏覽器將文件提交到服務器端的時候,服務器端會根據設定的黑白名單對瀏覽器提交上來的文件擴展名進行檢測,如果上傳的文件擴展名不符合黑白名單的限制,則不予上傳,否則上傳成功。
    • 1

    繞過方法

    將一句話木馬的文件名【evil.php】,改成【evil.php.abc】(奇怪的不被解析的后綴名都行)。首先,服務器驗證文件擴展名的時候,驗證的是【.abc】,只要該擴展名符合服務器端黑白名單規則,即可上傳。另外,當在瀏覽器端訪問該文件時,Apache如果解析不了【.abc】擴展名,會向前尋找可解析的擴展名,即【.php】
    • 1

    5: JS檢測上傳文件—繞過

    原理

    上傳文件時,對方使用JavaScript語句語法檢測上傳文件的合法性問題。
    • 1

    繞過方法

    在本地瀏覽器客戶端禁用JS即可。可使用火狐瀏覽器的NoScript插件、IE中禁用掉JS等方式實現。
    • 1

    6: 重寫解析規則—繞過

    原理

    上傳覆蓋.htaccess文件,重寫解析規則,將上傳的帶有腳本馬的圖片以腳本方式解析。
    • 1

    繞過方法

  • 在可以上傳.htaccess文件時,先上傳.htaccess文件,覆蓋掉原先的.htaccess文件;再上傳【evil.gif】文件。使用如下的.htaccess語句,即可將【evil.gif】文件以php腳本方式解析。

  • <FilesMatch "evil.gif">

  • ?
  • SetHandler application/x-httpd-php

  • </FilesMatch>

    • 1
    • 2
    • 3
    • 4
    • 5

    7: 其它方式—繞過

    原理

    部分程序員的思維不嚴謹,并使用邏輯不完善的上傳文件合法性檢測手段,導致可以找到方式繞過其檢測方式。
    • 1

    繞過方法

  • 1. 后綴名大小寫繞過

  • 用于只將小寫的腳本后綴名(如php)過濾掉的場合;

  • 例如:將Burpsuite截獲的數據包中的文件名【evil.php】改為【evil.Php】

  • ?
  • 2. 雙寫后綴名繞過

  • 用于只將文件后綴名,例如"php"字符串過濾的場合;

  • 例如:上傳時將Burpsuite截獲的數據包中文件名【evil.php】改為【evil.pphphp】,那么過濾了第一個"php"字符串"后,開頭的'p'和結尾的'hp'就組合又形成了【php】。

  • ?
  • 3. 特殊后綴名繞過

  • 用于檢測文件合法性的腳本有問題的場合;

  • 例如:將Burpsuite截獲的數據包中【evil.php】名字改為【evil.php6】,或加個空格改為【evil.php 】等。

  • 總結

    以上是生活随笔為你收集整理的文件上传检测的基本思路的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。