1. 程式人生 > >文件上傳繞過

文件上傳繞過

遇到 抓包工具 內容 重點 自動 文件頭 所有 亂碼 filename

  對於整個HTTP請求包來說,所有內容都是用戶可控的,只是請求包中的幾個點有可能是後臺服務器的檢測重點:

1 Content-Length  上傳內容大小
2 MAX_FILE_SIZE   上傳內容的最大長度
3 filename      上傳文件名
4 Content-Type    上傳文件類型
5 請求包中的亂碼字段  上傳文件的內容
6 有可能存在請求包中的可控點還有上傳路徑

一、客戶端繞過

  利用抓包工具(如BURP),抓包改包。將原上傳正常格式的文件變為 php、asp等文件

  如果是JavaScript驗證,可以使用 IE 禁用 js(火狐的noscript插件也行)。

二、服務端繞過

  BURP抓包,修改相應值,修改文件名位置 filename ,文件類型位置 Content-Type

  1、文件類型

    控制文件類型的是 Content-Type ,我們需要將文件類型改為允許上傳的文件類型。

  2、文件頭

    找到請求包中的文件內容位置,在一句話木馬內容的前面加上一些文件頭信息

  3、文件後綴名

    對於黑名單的繞過,如php、asp、jsp,可以先試試 在文件名後添加空格 或 大小寫的組合。

另外能被解析的文件擴展名列表:
jsp jspx jspf
asp asa cer aspx
php php2 php3 php4 ph5 phtml
exe exee

  4、過濾繞過

    如果遇到,上傳一個php被自動改成其他類型的文件,那麽可能是php被過濾了,那麽這個時候,可以嘗試改後綴名為:pphphp。原理:過濾了 第一個php,分開的p和結尾的hp就組合成為 php

  5、文件重寫

    直接傳個 帶小馬的gif ,再傳個 htaccess 重寫解析規則

.htaccess 文件內容:
<FilesMatch "上傳的文件名">
    SetHandler application/x-httpd-php
</FilesMatch>

文件上傳繞過