'CTF從入門到提升(十)文件上傳'

Apache PHP Linux 圖像處理 Nginx 安全牛 2019-09-12
"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

過5秒鐘就刪掉,會形成產生一個臨時文件的,趁臨時文件沒有被刪掉趕緊訪問。這種題目對服務器的性能影響比較大。

上傳php 文件,進行訪問,顯示查不到。

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

過5秒鐘就刪掉,會形成產生一個臨時文件的,趁臨時文件沒有被刪掉趕緊訪問。這種題目對服務器的性能影響比較大。

上傳php 文件,進行訪問,顯示查不到。

CTF從入門到提升(十)文件上傳

我們可以考慮讓剛上傳的文件去生成一個新的文件產生新的需要。

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

過5秒鐘就刪掉,會形成產生一個臨時文件的,趁臨時文件沒有被刪掉趕緊訪問。這種題目對服務器的性能影響比較大。

上傳php 文件,進行訪問,顯示查不到。

CTF從入門到提升(十)文件上傳

我們可以考慮讓剛上傳的文件去生成一個新的文件產生新的需要。

CTF從入門到提升(十)文件上傳

第一個是文件名,下面是文件的內容,可以content寫入文件。

"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

過5秒鐘就刪掉,會形成產生一個臨時文件的,趁臨時文件沒有被刪掉趕緊訪問。這種題目對服務器的性能影響比較大。

上傳php 文件,進行訪問,顯示查不到。

CTF從入門到提升(十)文件上傳

我們可以考慮讓剛上傳的文件去生成一個新的文件產生新的需要。

CTF從入門到提升(十)文件上傳

第一個是文件名,下面是文件的內容,可以content寫入文件。

CTF從入門到提升(十)文件上傳"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

過5秒鐘就刪掉,會形成產生一個臨時文件的,趁臨時文件沒有被刪掉趕緊訪問。這種題目對服務器的性能影響比較大。

上傳php 文件,進行訪問,顯示查不到。

CTF從入門到提升(十)文件上傳

我們可以考慮讓剛上傳的文件去生成一個新的文件產生新的需要。

CTF從入門到提升(十)文件上傳

第一個是文件名,下面是文件的內容,可以content寫入文件。

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳"

服務端校驗——白名單

白名單和上一節講的黑名單的區別在哪裡?黑名單是未經許可非法用戶禁止入內,我禁止某些人入內,大部分人是可以進去的。白名單是未經允許禁止入內,只有允許的人才能進入,對應的文件上傳就是隻有合法文件才能上傳。解析的時候我們為什麼要文件合法?因為中間件能夠解析,只允許不能被解釋的文件且只符合當前業務的文件才能夠上傳。比如頭像png、jpg、gif,不需要其他的文件名,做好限制極大地杜絕安全問題。

從規則上來講白名單是比較難突破的,除非類似%00截斷,而且這種截斷也要看具體代碼邏輯才能夠實現,從代碼層面去做突破略難。簡單的題目有配合Apache的解析漏洞以及其他漏洞。像多層壓縮包嵌套、或者本身有缺陷產生的文件上傳問題等等後面都會分享,本次內容為配合Apache的解析缺陷。

我使用的環境一般是放在Linux下Apache用的比較多,包括nginx 和 IIS 都存在這種解析漏洞的。所以白名單突破需要配合的就是中間件的缺陷。

具體環境操作如下:

CTF從入門到提升(十)文件上傳

上傳.php禁用js,非法文件禁止上傳。開啟bp那麼去傳一個 jpg文件,

CTF從入門到提升(十)文件上傳

提示非法文件禁止上傳。

CTF從入門到提升(十)文件上傳

服務端校驗——文件內容頭校驗

內容頭校驗涉及到一些函數,例如對圖像處理的函數。比如getimagesize獲取圖像大小。

CTF從入門到提升(十)文件上傳

如果不是指定的圖像、有效的圖像,就會產生一條false,這個函數可以判斷這個文件是不是一個圖片。

CTF從入門到提升(十)文件上傳

新建一個文件:

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

很多文件有對應的文件格式:

CTF從入門到提升(十)文件上傳

這些函數是通過文件頭來做判斷的。如果可以把這個文件頭給偽造出來,基本可以對它實現欺騙成功繞過。

CTF從入門到提升(十)文件上傳

競爭上傳

CTF從入門到提升(十)文件上傳

競爭上傳是邏輯上的錯誤文件上傳成功後,正常邏輯是後端代碼一直在運行檢測,合法就可以保存,不合法直接刪掉。

在遠程服務器上寫入a.php

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

過5秒鐘就刪掉,會形成產生一個臨時文件的,趁臨時文件沒有被刪掉趕緊訪問。這種題目對服務器的性能影響比較大。

上傳php 文件,進行訪問,顯示查不到。

CTF從入門到提升(十)文件上傳

我們可以考慮讓剛上傳的文件去生成一個新的文件產生新的需要。

CTF從入門到提升(十)文件上傳

第一個是文件名,下面是文件的內容,可以content寫入文件。

CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳CTF從入門到提升(十)文件上傳

以上內容參考安全牛課堂《CTF從入門到提升》

"

相關推薦

推薦中...