首頁 > 軟體

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

2022-02-19 19:09:30

引言

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

案例一

一次專案滲透時,通過往png字尾隨便加個字元可知該上傳點為白名單上傳,正常情況下無法繞過

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

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

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

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

案例二

upload_2018.php介面白名單上傳,在正常情況下,改變字尾會導致上傳失敗,如下

再進一步測試時發現存在多個上傳介面,刪除_2018使用upload介面進行檔案上傳,可導致任意檔案上傳

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

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

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

案例三

這是一個把圖片轉base64的檔案上傳型別,具體繞過如下:

通過抓包發現圖片是以base64進行上傳的,觀察了下封包,發現可通過更改upload_0欄位內容上傳任意檔案

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

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

案例四

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

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

其它場景&總結

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

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

再者就是檔案包含和檔案讀取了,檔案讀取的話可以通過讀取紀錄檔和組態檔來發現shell地址,但是成功率太低了,至於檔案包含,除了靶場和ctf,實戰還沒碰過。

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

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

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


IT145.com E-mail:sddin#qq.com