保險(xiǎn)網(wǎng)站建設(shè)的總體目標(biāo)seo優(yōu)化交流
文件上傳漏洞
- 描述
- 中國蟻劍安裝
- 1. 官網(wǎng)下載源碼和加載器
- 2.解壓至同一目錄并
- 3.安裝
- 4.可能會(huì)出現(xiàn)的錯(cuò)誤
- 文件上傳過程
- 必要條件
- 代碼示例
- dvwa靶場(chǎng)攻擊示例
- 1.書寫一句話密碼進(jìn)行上傳
- 2. 拼接上傳地址
- 3.使用中國蟻劍鏈接webshell
- 前端js繞過方式
- 服務(wù)端校驗(yàn)請(qǐng)求頭中content-type
- 黑名單繞過
- 1.修改后綴名為黑名單以外的后綴名
- 2.htaccess重寫解析繞過上傳
- 3.大小寫繞過
- 4.空格繞過上傳
- 5.利用windows系統(tǒng)特性繞過上傳(添加.)
- 6.ntfs交換數(shù)據(jù)量::$DARA繞過上傳
- 7.利用windaows環(huán)境疊加特性繞過
- 8.雙寫后綴名繞過
- 白名單繞過
- 1.目錄可控%00截?cái)嗬@過上傳
- 2.文件頭檢測(cè)繞過
- 3.繞過圖片二次渲染上傳
- 其他文件上傳漏洞
- 文件上傳漏洞防御方法
描述
文件上傳漏洞是指由于程序員未對(duì)上傳的文件進(jìn)行嚴(yán)格的驗(yàn)證和過濾,而導(dǎo)致的用戶可以越過其本身權(quán)限向服務(wù)器上上傳可執(zhí)行的動(dòng)態(tài)腳本文件。如常見的頭像上傳,圖片上傳,oa 辦公文件上傳,媒體上傳,允許用戶上傳文件,如果過濾不嚴(yán)格,惡意用戶利用文件上傳漏洞,上傳有害的可以執(zhí)行腳本文件到服務(wù)器中,可以獲取服務(wù)器的權(quán)限,或進(jìn)一步危害服務(wù)器。
中國蟻劍安裝
1. 官網(wǎng)下載源碼和加載器
GitHub地址:https://github.com/AntSwordProject
》加載器咱們下載win64版本(往下滑找到下載地址)
2.解壓至同一目錄并
3.安裝
》點(diǎn)擊antSword.exe,進(jìn)行初始化
》初始化時(shí)選擇antSword_masster文件夾
4.可能會(huì)出現(xiàn)的錯(cuò)誤
原因是文件夾目錄選擇錯(cuò)了,一定要選擇安裝在antSword_masster文件夾
文件上傳過程
必要條件
- 存在上傳點(diǎn)
- 可上傳
- 可執(zhí)行且可解析
- 可訪問上傳的腳本文件
代碼示例
dvwa靶場(chǎng)攻擊示例
1.書寫一句話密碼進(jìn)行上傳
2. 拼接上傳地址
》1. 拼接為啟動(dòng)目錄
》2. 往后依次進(jìn)行拼接
未返回404 可行
3.使用中國蟻劍鏈接webshell
成功拿到shell權(quán)限,入侵成功
前端js繞過方式
方法1:上傳圖片(jpg、png等)文件后,使用bp抓包修改文件后綴為php文件
方法2:前端F12模式刪除相關(guān)校驗(yàn)代碼
服務(wù)端校驗(yàn)請(qǐng)求頭中content-type
把bp抓包后,修改content-type為image/jpeg或image/png
黑名單繞過
1.修改后綴名為黑名單以外的后綴名
》上傳黑名單以外的后綴名即可。
在iis里asp禁止上傳了,可以上傳asacercdx這些后綴,如在網(wǎng)站里允許.net
執(zhí)行可以上傳ashx代替aspx。如果網(wǎng)站可以執(zhí)行這些腳本,通過上傳后門即可
獲取webshell。
在不同的中間件中有特殊的情況,如果在apache可以開啟application/x-httpd-php
在AddTypeapplication/x-httpd-php.php.phtml.php3
后綴名為phtml、php3均被解析成php有的apache版本默認(rèn)就會(huì)開啟。
上傳目標(biāo)中間件可支持的環(huán)境的語言腳本即可,如.phtml、php3。
2.htaccess重寫解析繞過上傳
前提:apache開啟rewrite重寫模塊
1.上傳含有webshell的txt文件,修改后綴為.jpg文件
2.上傳.htaccess文件到網(wǎng)站中內(nèi)容如下:
<FilesMatch"jpg">
SetHandlerapplication/x-httpd-php
</FilesMatch> #意思為把jpg文件識(shí)別為php文件
3.大小寫繞過
修改后綴名部分大寫或小寫后上傳
或者使用bp抓包后進(jìn)行修改大小寫
4.空格繞過上傳
bp抓包后在上傳文件末尾輸入空格進(jìn)行上傳
5.利用windows系統(tǒng)特性繞過上傳(添加.)
bp抓包后上傳文件末尾輸入.進(jìn)行繞過
原理:windows中文后綴名.系統(tǒng)會(huì)自動(dòng)忽略,直接可以執(zhí)行
6.ntfs交換數(shù)據(jù)量::$DARA繞過上傳
前提:win
bp抓包后修改后綴名為php::$DATA上傳即可
7.利用windaows環(huán)境疊加特性繞過
1.bp抓包后修改文件后綴為(webshell).php:.jpg,此時(shí)在服務(wù)器中會(huì)生成一個(gè)xxx.php空文件
2.再次修改文件后綴為.>>>,會(huì)把本文件中的文件寫入到xxx.php文件中
匹配規(guī)則:
“” = .
>=? 匹配一個(gè)字符 # >>>匹配為php
<=*匹配多個(gè)字符
8.雙寫后綴名繞過
bp抓包后修改php為phphpp,此時(shí)會(huì)過濾掉一個(gè)php
白名單繞過
1.目錄可控%00截?cái)嗬@過上傳
前提:
1.請(qǐng)求報(bào)文中存在保存的目錄
2.gpc為關(guān)閉狀態(tài)
3.php版本小于5.3.4
原理:bp抓包后修改后綴名為php%00.jpg,相當(dāng)于%00后均在上傳過程中不識(shí)別,但服務(wù)器會(huì)識(shí)別所以可以造成上傳繞過
2.文件頭檢測(cè)繞過
前提:使用getReailFileType檢測(cè)文件開頭是否是jpg、png、gif文件頭
常見的圖片文件頭:
?JPEG(jpg),文件頭:FFD8FF
?PNG(png),文件頭:89504E47
?GIF(gif),文件頭:47494638
?TIFF(tif),文件頭:49492A00
方法:使用圖片和一句話木馬合成一個(gè)文件進(jìn)行上傳
copy xx.png/b+xxx.php shell.php #生成shell.png文件進(jìn)行上傳
3.繞過圖片二次渲染上傳
應(yīng)用場(chǎng)景:上傳webshell圖片后,網(wǎng)站為了符合要求會(huì)二次渲染照片(調(diào)整圖片大小分辨率等)
方法:使用hxd文件(16進(jìn)制)打開渲染前和渲染后的照片,對(duì)比那些在渲染后未改變,未改變部分修改為webshell木馬
其他文件上傳漏洞
nginx0.83----- 1.jpg%00php 解析為1.php
apahce1x或者2x------當(dāng)apache遇見不認(rèn)識(shí)的后綴名,會(huì)從后向前解析例如1.php.rar不認(rèn)識(shí)rar就向前解析,直到知道它認(rèn)識(shí)的后綴名。
phpcgi漏洞(nginxiis7或者以上)上傳圖片后1.jpg。訪問1.jpg/1.php也會(huì)解析成php。
ApacheHTTPD換行解析漏洞(CVE-2017-15715)
apache通過mod_php來運(yùn)行腳本,其2.4.0-2.4.29中存在apache換行解析漏洞,在解析php時(shí)xxx.php\x0A將被按照PHP后綴進(jìn)行解析,導(dǎo)致繞過一些服務(wù)器的安全策略。
文件上傳漏洞防御方法
服務(wù)器端使用白名單防御,修復(fù)web中間件的漏洞,禁止客戶端存在可控參數(shù),存放文件目錄禁止腳本執(zhí)行,限制后綴名一定要設(shè)置圖片格式j(luò)pg、gif、png文件名隨機(jī)的,不可預(yù)測(cè)。