任意文件上传之绕过云waf+本地防火墙双重防护
0x01 waf攔截
在打某市 Hvv 第一天就找到一個(gè)文件上傳的點(diǎn),經(jīng)過測試,可以直接任意文件上傳,沒有什么道理。
直接嘗試上傳 Php 文件,被 waf 攔截了?
不知道這是哪家的waf,知道的師傅可以說下
嘗試了一系列的繞過,發(fā)現(xiàn)利用換行+chunk 可以過后綴
之后就要過內(nèi)容檢測的 waf,但是在這里死活過不去
Webshell內(nèi)容+chunk編碼過后綴,但會提示502
之后嘗試上傳txt,想先看看能不能先繞過內(nèi)容檢測,發(fā)現(xiàn)這個(gè)waf檢測不能同時(shí)存在<?和(),如:<?phpinfo(); 這種語句就會被攔截。因?yàn)樗瑫r(shí)出現(xiàn)了<?和()。
如果你的內(nèi)容檢測沒有同時(shí)出現(xiàn)()和<?時(shí),就可以過內(nèi)容檢測,不知道市面上有沒有這種類型的webshell,我找了一圈好像都有。
0x02 host碰撞繞過
該站點(diǎn)為某個(gè)單位的類似官網(wǎng)的站點(diǎn),然后網(wǎng)站有超鏈接,該超鏈接定向跳轉(zhuǎn)到某些ip
因?yàn)檫@種單位很喜歡將自己的服務(wù)器部署在C段的分散的IP上,于是猜測,這個(gè)類似官網(wǎng)網(wǎng)站的站點(diǎn)也很有可能就搭建在這個(gè)超鏈接的C段上,我們不妨 host 碰撞一下,如果找到了真實(shí)IP的話,那么就可能繞過云 waf?
于是直接用 host 碰撞的 py 腳本去碰撞一下該C段IP,發(fā)現(xiàn)居然成功了。?
直接修改Target為碰撞出來的真實(shí)IP,之后就不用 chunk +后綴換行也能過后綴waf攔截了(需要換行,不用chunk)。?
但是這里內(nèi)容檢測還是過不了,但是不會顯示云 waf 地址或者 502了,猜測肯定是過了 cdn, 但是不知道是什么攔截住了(可能為本地的硬件防火墻)?
0x03 content-Encoding繞過
于是翻了翻筆記,找到以前屢試不爽的上傳 Tips ————添加 Accept-Encoding: deflate,但發(fā)現(xiàn)這種方法已經(jīng)過時(shí)了,換成 Accept-Encoding: gzip 發(fā)現(xiàn)還是過不了這個(gè)攔截
在http協(xié)議中,可以對內(nèi)容(也就是body部分)進(jìn)行編碼, 可以采用gzip這樣的編碼。從而達(dá)到壓縮的目的。也可以使用其他的編碼把內(nèi)容攪亂或加密,以此來防止未授權(quán)的第三方看到文檔的內(nèi)容。
Accept-Encoding——瀏覽器發(fā)給服務(wù)器,聲明瀏覽器(客戶端)支持的編碼類型。
當(dāng)服務(wù)端接收到請求,并且從header里拿到編碼標(biāo)識時(shí),就可以選擇其中一種方式來進(jìn)行編碼壓縮,然后返給客戶端。
發(fā)現(xiàn)還有一個(gè) header 字段 Content-Encoding 這個(gè)字段大概意思是:決定文件接收方將以什么形式、什么編碼讀取這個(gè)文件,指定服務(wù)器響應(yīng)的 HTTP 內(nèi)容類型。
一般來說:
-
Accept-Encoding設(shè)置在請求頭當(dāng)中,會告訴服務(wù)器,我可以接受哪種編碼壓縮。
-
Content-Encoding設(shè)置在響應(yīng)頭中,會告訴客戶端,我用的是哪種編碼壓縮。但是也可以放在Header頭上
看說了這么多我們也不懂啊,我們大概可以理解它的本質(zhì),這兩個(gè)header頭都會影響服務(wù)器對于數(shù)據(jù)內(nèi)容的傳輸格式類型(壓縮算法)。
大家也可以看看下這個(gè)文章
https://www.cnblogs.com/xuzhudong/p/8486761.htmlhttps://www.cnblogs.com/xuzhudong/p/8486761.html
嘗試了一下,發(fā)現(xiàn)content-Encoding居然可以繞過
如果沒找到真實(shí)IP,這樣也是過不了的。
之后就可以直接上傳了。但是后來發(fā)現(xiàn)該服務(wù)器的 disable_function 賊難繞,這是后話了。?
0x04?總結(jié)
通 過 host 碰 撞 找 到 真 實(shí) IP 繞 過 云 waf(fofa 這 種 是 搜 不 到 真 實(shí) IP 的)
Content-Encoding=deflate 繞過本地防火墻內(nèi)容檢測,gzip也是能繞的
總結(jié)
以上是生活随笔為你收集整理的任意文件上传之绕过云waf+本地防火墙双重防护的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下的ps命令
- 下一篇: Python从入门到入土-Python3