滲透測試中403/401頁面繞過的思路總結
做滲透時經常會碰到掃到的資產403的情況,特別是資產微乎其微的情況下,面試有時也會問到,這里做個總結!
利用姿勢
1.端口利用
故事掃描主機端口,找其它開放web服務的端口,訪問其端口,挑軟柿子。
2.修改HOST
Host在請求頭中的作用:在一般情況下,幾個網站可能會部署在同一個服務器上,或者幾個 web 系統共享一個服務器,通過host頭來指定應該由哪個網站或者web系統來處理用戶的請求。
而很多WEB應用通過獲取HTTP HOST頭來獲得當前請求訪問的位置,但是很多開發人員并未意識到HTTP HOST頭由用戶控制,從安全角度來講,任何用戶輸入都是認為不安全的。
修改客戶端請求頭中的 Host 可以通過修改 Host 值修改為子域名或者ip來繞過來進行繞過二級域名;
首先對該目標域名進行子域名收集,整理好子域名資產(host字段同樣支持IP地址)。
先Fuzz測試跑一遍收集到的子域名,這里使用的是Burp的Intruder功能。若看到一個服務端返回200的狀態碼,即表面成功找到一個在HOST白名單中的子域名。我們利用firefox插件來修改HOST值,成功繞過訪問限制。
3.覆蓋請求 URL
嘗試使用 X-Original-URL 和 X-Rewrite-URL 標頭繞過 Web 服務器的限制。
通過支持 X-Original-URL 和 X-Rewrite-URL 標頭,用戶可以使用 X-Original-URL 或 X-Rewrite-URL HTTP 請求標頭覆蓋請求 URL 中的路徑,嘗試繞過對更高級別的緩存和 Web 服務器的限制
RequestGET /auth/login HTTP/1.1ResponseHTTP/1.1 403 Forbidden ReqeustGET / HTTP/1.1X-Original-URL: /auth/loginResponseHTTP/1.1 200 OK or: ReqeustGET / HTTP/1.1X-Rewrite-URL: /auth/loginResponseHTTP/1.1 200 OK
4.Referer 標頭繞過
嘗試使用 Referer 標頭繞過 Web 服務器的限制。
介紹:Referer 請求頭包含了當前請求頁面的來源頁面的地址,即表示當前頁面是通過此來源頁面里的鏈接進入的。服務端一般使用 Referer 請求頭識別訪問來源。
RequestGET /auth/login HTTP/1.1Host: xxxResponseHTTP/1.1 403 Forbidden ReqeustGET / HTTP/1.1Host: xxxReFerer:https://xxx/auth/loginResponseHTTP/1.1 200 OK or ReqeustGET /auth/login HTTP/1.1Host: xxxReFerer:https://xxx/auth/loginResponseHTTP/1.1 200 OK
5.代理 IP
一般開發者會通過 Nginx 代理識別訪問端 IP 限制對接口的訪問,嘗試使用 X-Forwarded-For、X-Forwared-Host 等標頭繞過 Web 服務器的限制。
X-Originating-IP: 127.0.0.1X-Remote-IP: 127.0.0.1X-Client-IP: 127.0.0.1X-Forwarded-For: 127.0.0.1X-Forwared-Host: 127.0.0.1X-Host: 127.0.0.1X-Custom-IP-Authorization: 127.0.0.1 如: RequestGET /auth/login HTTP/1.1ResponseHTTP/1.1 401 Unauthorized ReqeustGET /auth/login HTTP/1.1X-Custom-IP-Authorization: 127.0.0.1ResponseHTTP/1.1 200 OK
6.擴展名繞過
基于擴展名,用于繞過 403 受限制的目錄。 |
site.com/admin => 403site.com/admin/ => 200site.com/admin// => 200site.com//admin// => 200site.com/admin/* => 200site.com/admin/*/ => 200site.com/admin/. => 200site.com/admin/./ => 200site.com/./admin/./ => 200site.com/admin/./. => 200site.com/admin/./. => 200site.com/admin? => 200site.com/admin?? => 200site.com/admin??? => 200site.com/admin..;/ => 200site.com/admin/..;/ => 200site.com/%2f/admin => 200site.com/%2e/admin => 200site.com/admin%20/ => 200site.com/admin%09/ => 200site.com/%20admin%20/ => 200
7.掃描的時候
遇到 403 了,上目錄掃描工具,掃目錄,掃文件( 記住,掃描的時候要打開探測403,因為有些網站的目錄沒有權限訪問會顯示403,但是在這個目錄下面的文件,我們或許能掃描到并訪問 )
8.最后補充再一些401和403 bypass的tips(由HACK學習整理補充)




Github上一些bypass 403的腳本
https://github.com/sting8k/BurpSuite_403Bypasserhttps://github.com/yunemse48/403bypasserhttps://github.com/devploit/dontgo403https://github.com/daffainfo/bypass-403
以及403bypass的wiki
https://kathan19.gitbook.io/howtohunt/status-code-bypass/403bypass
