網絡安全漏洞滲透測試之文件上傳繞過思路案例詳解

引言

分享一些文件上傳繞過的思路,下文內容多包含實戰圖片,所以打碼會非常嚴重,可多看文字表達;本文僅用於交流學習, 由於傳播、利用此文所提供的信息而造成的任何直接或者間接的後果及損失,均由使用者本人負責,文章作者不為此承擔任何責任。

案例一

一次項目滲透時,通過往png後綴隨便加個字符可知該上傳點為白名單上傳,正常情況下無法繞過

image

通過觀察接口信息,發現接口名字為UploadImg,猜測該接口用於圖片上傳,按照開發的習慣,保不準會存在temp、test,這類的接口,隨後通過fuzz找到存在的上傳接口(file),但此時的接口(file)上傳文件仍舊存在限制,需要繞過。

image

由於黑名單限制不夠嚴謹,經過多個偽後綴嘗試,發現.cer後綴可繞過限制並被解析

image

然後就getshell進內網,後面的操作就不多說瞭。

image

很多師傅看到白名單上傳就會認為這個上傳點足夠安全,無法繞過,但其實不然,在存在多個上傳接口的情況下,或許會存在沒做限制,或者限制不嚴格的上傳點也不一定,關鍵的是我們要如何發現這些接口,在此類接口存在限制時,如何去進行繞過,下面再舉一個和接口繞過相關的例子。

案例二

upload_2018.php接口白名單上傳,在正常情況下,改變後綴會導致上傳失敗,如下

image

再進一步測試時發現存在多個上傳接口,刪除_2018使用upload接口進行文件上傳,可導致任意文件上傳

image

進一步傳shell時發現存在waf(某訊雲),需進一步繞過。

image

通過尋找域名真實IP,使用真實IP進行文件上傳,繞過waf限制,為防止有心人,這裡直接把IP給打碼蓋住瞭,以防萬一。

image

很多時候有一些開發為瞭便捷性,在部署上傳接口時限制不夠嚴謹或壓根沒做限制,這導致一旦被繞過限制傳shell,都會導致非常嚴重的後果,當然,我們可以找一些temp、test這類上傳接口,因為此類接口多數是開發過程中用作測試的,這種接口幾乎都是無限上傳文件類型的,同樣的我們也可以找一些api文檔進行上傳接口的發現,這或許會有驚喜也說不定

案例三

這是一個把圖片轉base64的文件上傳類型,具體繞過如下:

image

通過抓包發現圖片是以base64進行上傳的,觀察瞭下數據包,發現可通過更改upload_0字段內容上傳任意文件

image

訪問HTML頁面,成功被解析,可進一步上傳shell獲取權限。

image

一句話shell上傳後發現無法執行命令,之後通過上傳PHPinfo發現其存在disable_functions,利用某斯拉繞過限制,getshell

image

image

image

案例四

一個關於nginx解析漏洞的利用,這個漏洞是很久之前挖到的,這種漏洞現在應該不會存在瞭,單單是waf都能欄掉,這個就作為思考開拓說一下:

一次外網打點時發現瞭目標的一個核心系統,通過踩點發現瞭某上傳功能,但上傳接口存在白名單限制,且無其它的上傳接口,由於這個站的shell比較重要,必須拿到,之後通過漏洞挖掘,發現目標存在nginx解析漏洞,結合圖片上傳點成功獲取到瞭內網據點。

image

image

image

其它場景&總結

有些時候文件上傳成功後端沒有返回路徑,隻回顯瞭一個id號,這時候如果目標存在註入的話,我們嘗試可以用sqlmap的–search參數或者SQLshell對返回的ID號進行搜索,這樣說不定就能找到shell地址瞭,之前在關於Swagger-UI下的滲透實戰 23也說過,感興趣的可以去看看;也有文件上傳成功卻隻回顯一個文件名的,在前不久的一次攻防就遇到這種情況,後來是用瞭fuzz找到瞭完整的shell路徑,另外在某些時候,上傳文件可以跨目錄,那麼我們可以通過…/進行跨目錄上傳,運氣好的話,或許會在幾個…/後把shell傳到域名的根目錄下,如果當前上傳文件夾無執行權限,那麼跨目錄上傳shell也是個不錯的思路;另外,如果上傳目錄可控,可上傳文件到任意目錄的話,在linux場景我們可上傳一個ssh秘鑰用於遠程登錄,極端一點的話,可考慮上傳passwd、shadow文件覆蓋系統用戶,但前提是權限要足夠大。

如果不能跨目錄,站點又沒有註入的話,那麼我們可以嘗試尋找網站日志文件,例如泛微E-COLOGY日志的日志,像這種日志文件是有規律可循的,可以用burp進行日志爆破,或許在日志文件中能找到shell路徑也說不定。

image

image

image

再者就是文件包含和文件讀取瞭,文件讀取的話可以通過讀取日志和配置文件來發現shell地址,但是成功率太低瞭,至於文件包含,除瞭靶場和ctf,實戰還沒碰過。

還有一個關於burp的使用技巧,這是真實遇到的,上傳shell後沒有回顯路徑,但是通過http history搜索shell的名字發現瞭完整的shell路徑,因為傳上去的文件,如圖片這類的總歸是顯示出來的,這時候可以先在web應用到處點點,多加載一些數據包,然後再到http history搜索shell的名字,或許會有驚喜也說不定。

某些時候上傳黑名單不嚴謹,那麼我們可用偽後綴進行繞過,其它多的就不說瞭,大概思路就這樣,當繞過限制拿到shell時,總會給我帶來樂趣,或許這就是我喜歡滲透的原因。

image

以上就是網絡安全漏洞滲透測試之文件上傳繞過思路案例詳解的詳細內容,更多關於網絡安全漏洞滲透測試之文件上傳繞過的資料請關註WalkonNet其它相關文章!

推薦閱讀: