大家好,我是Dest1ny!
今天继续更新我们的redteam系列!
这次主要的方向是撕开口子,找接口。
接口万一可以未授权或者rce,那妥妥的一个0day到手了啊!
也希望大家多多点赞支持!!这对我是最大的鼓励!
请求绕过技术与示例详解
1. 更改请求方法绕过
更改请求的HTTP方法(如从GET
改为POST
、PUT
、DELETE
等)有时可以绕过对特定方法的限制。不同的HTTP方法可能触发不同的响应行为,尤其在API接口场景下,某些方法可能未受限制。
示例:
-
修改前:
Request: GET /test HTTP/1.1 Response: HTTP/1.1 403 Forbidden
-
修改后:
Request: POST /test HTTP/1.1 Response: HTTP/1.1 200 OK
扩展说明:
有些服务器对POST
或PUT
请求的安全性校验不如GET
严格,利用这一点可以发送修改数据的请求来尝试获取访问权限。
2. 更换协议版本绕过
HTTP协议版本的不同(如HTTP/1.1
vs HTTP/1.0
vs HTTP/2
)可能会触发不同的服务端行为。尝试更换协议版本,某些服务可能在不同版本下的配置不一致,导致绕过验证。
示例:
-
修改前:
Request: GET /test HTTP/1.1 Response: HTTP/1.1 403 Forbidden
-
修改后:
Request: GET /test HTTP/1.0 Response: HTTP/1.0 200 OK
扩展说明:
HTTP/1.0和HTTP/1.1的连接管理和缓存机制有区别,有时可以通过降级到HTTP/1.0绕过缓存机制,或者通过HTTP/2.0多路复用尝试绕过服务端限制。
3. 修改User-Agent头绕过
某些应用程序会检测User-Agent
字段来区分是否为合法请求,比如区分爬虫和正常浏览器请求。通过伪造User-Agent
字段,可以假装请求是由合法的浏览器发出,绕过防护机制。
示例:
-
修改前:
User-Agent: curl/7.68.0 Response: HTTP/1.1 403 Forbidden
-
修改后:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Response: HTTP/1.1 200 OK
扩展说明:
通过伪造如Googlebot
或常见的浏览器User-Agent
可以绕过某些基于反爬虫的检测机制。通常这种检测较为简单,仅依赖User-Agent
字段的匹配。
4. 使用特殊头部字段(X-Original-URL, X-Rewrite-URL)绕过
某些Web服务器允许使用特定的头部字段来重新指定请求的路径。通过发送X-Original-URL
或X-Rewrite-URL
,可以覆盖请求中的URL路径,从而绕过访问限制。
示例:
-
修改前:
Request: GET /test HTTP/1.1 Response: HTTP/1.1 403 Forbidden
-
修改后:
Request: GET / HTTP/1.1 X-Original-URL: /test Response: HTTP/1.1 200 OK
扩展说明:
这种方法适用于某些支持内部重写机制的Web服务器或反向代理服务,如Nginx、Apache等,可以通过这些头部字段强制重写请求路径。
5. Referer头部绕过
某些服务器依赖Referer
头部来检查请求的来源,以验证是否为内部页面发出的请求。通过修改Referer
头部,可以欺骗服务器认为请求来自合法来源。
示例:
-
修改前:
Request: GET /test HTTP/1.1 Host: example.com Response: HTTP/1.1 403 Forbidden
-
修改后:
Request: GET /test HTTP/1.1 Host: example.com Referer: https://example.com/test Response: HTTP/1.1 200 OK
扩展说明:
Referer头部用于记录请求的来源页面,很多站点依赖此头部字段来进行CSRF保护、页面跳转验证。伪造Referer可以绕过这些简单的验证机制。
6. Host头部绕过
某些情况下,服务端只允许来自特定域名的请求。通过修改Host
头部为子域名或IP地址,可以绕过这些域名验证限制。
示例:
-
修改前:
Request: GET /admin HTTP/1.1 Host: example.com Response: HTTP/1.1 403 Forbidden
-
修改后:
Request: GET /admin HTTP/1.1 Host: sub.example.com Response: HTTP/1.1 200 OK
扩展说明:
部分站点对不同的子域名或IP地址可能存在不同的安全策略,修改Host字段可以绕过主域名的安全策略。
7. 端口绕过
如果服务器开放了多个端口,而仅有部分端口配置了防护机制,可以尝试通过未防护的端口访问受限资源。通常是运维配置疏忽导致的安全漏洞。
工具推荐:
- 使用
nmap
等工具扫描开放端口。nmap -p 1-65535 example.com
8. IP伪造绕过(X-Forwarded-For等)
使用如X-Forwarded-For
、X-Real-IP
等头部字段,伪造请求的来源IP,欺骗服务器认为请求来自可信IP地址(如本地127.0.0.1
)。
示例:
-
修改前:
Request: GET /admin HTTP/1.1 Response: HTTP/1.1 403 Forbidden
-
修改后:
Request: GET /admin HTTP/1.1 X-Forwarded-For: 127.0.0.1 Response: HTTP/1.1 200 OK
扩展说明:
服务器可能使用头部字段来信任反向代理传递的IP信息,伪造这些字段可使服务器误判请求来源,认为请求来自内部网络。
9. 模糊路径测试绕过
通过在URL路径中引入特殊字符、大小写变换或URL编码等方法,可以尝试绕过路径验证规则,访问受限资源。
示例:
-
修改前:
Request: GET /admin HTTP/1.1 Response: HTTP/1.1 403 Forbidden
-
修改后:
Request: GET /admin/./ HTTP/1.1 Response: HTTP/1.1 200 OK
常见的模糊路径示例:
/admin/./
/admin/%2e/
/admin%20/
/admin/././
扩展说明:
不同的Web服务器在处理URL路径时的规则可能有所不同,通过添加特殊符号或编码,可以绕过路径验证机制。
10. 403状态码绕过工具
可以使用专门的工具自动化尝试绕过403状态码的限制,通过修改请求头、路径等方式进行测试。
工具推荐:
- f403: 用于自动化403绕过尝试的工具。
./f403 -u http://example.com/admin -a 'cookie:123,Referer:https://example.com'
- 403bypasser: 另一个功能类似的工具,支持自定义规则绕过。
11. API版本绕过
某些API接口的不同版本可能存在不同的权限设置,可以通过降级到旧版本的API绕过访问限制。常见于RESTful API中。
示例:
-
修改前:
Request: GET /v3/users_data/1234 Response: HTTP/1.1 403 Forbidden
-
修改后:
Request: GET /v1/users_data/1234 Response: HTTP/1.1 200 OK
扩展说明:
某些API版本被废弃但仍然存在,通过访问旧版本可能可以绕过权限控制或者获得更多数据。
标签:HTTP,1.1,GET,Request,别人找,403,绕过,Response From: https://blog.csdn.net/m0_70065235/article/details/143181619