滲透中 常見上傳突破總匯


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

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

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

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

常見的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

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

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

其實跟%00截斷原理類似

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

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

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文件,沒有擴展名,內容是一句話,這個時候就成功繞過。

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

解析漏洞繞過

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一份,這樣就會出現兩個上傳點~





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM