文件上傳繞過
阿新 • • 發佈:2019-03-05
遇到 抓包工具 內容 重點 自動 文件頭 所有 亂碼 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>
文件上傳繞過