Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
forbidden — 绕过 4xx HTTP 响应状态码等。该工具基于 Python Requests、PycURL 和 HTTP Client。 | Kitploit
工具/GitHubGitHub/ivan-sincek/forbidden
漏洞扫描器IDS/IPS规避Web应用程序漏洞利用信息收集WAF绕过Web安全模糊测试渗透测试
GitHubivan-sincek/forbidden

forbidden

绕过 4xx HTTP 响应状态码等。该工具基于 Python Requests、PycURL 和 HTTP Client。

查看仓库
257481301年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Forbidden

绕过 4xx HTTP 响应状态码及更多。

该工具基于 Python Requests、PycURL 和 HTTP Client。

在 Kali Linux v2024.2(64 位)上测试。

仅用于教育目的。希望能有所帮助!

未来计划:

  • 添加 silent 选项以抑制控制台输出。
  • 添加 no color 选项以禁用彩色控制台输出。
  • 添加对 hop-by-hop HTTP 请求头的测试。
  • 添加对 User-Agent HTTP 请求头的测试。
  • 添加对 HTTP cookies 的测试。
  • 添加对 HTTP 走私的测试。
  • 添加对 CRLF 的测试。
  • 添加对 Log4j 的测试。
  • 添加对 AWS 元数据 SSRF 的测试。

目录

  • 如何安装
    • 安装 PycURL
    • 标准安装
    • 从源码构建和安装
  • 如何使用
  • 测试
    • HTTP 方法
    • HTTP 请求头
  • 结果
  • 用法
  • 图片

如何安装

安装 PycURL

在 Kali Linux 上,这应该没有问题;否则,运行:

apt-get -y install libcurl4-gnutls-dev librtmp-dev

pip3 install --upgrade pycurl

PycURL 在 Windows 操作系统上不受支持。


在 macOS 上,运行:

brew uninstall curl
brew uninstall openssl

brew install curl
brew install openssl

echo 'export PATH="/opt/homebrew/opt/curl/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

export LDFLAGS="-L/opt/homebrew/opt/curl/lib"
export CPPFLAGS="-I/opt/homebrew/opt/curl/include"
export PYCURL_SSL_LIBRARY=openssl

pip3 install --no-cache-dir --compile --ignore-installed --config-setting="--with-openssl=" --config-setting="--openssl-dir=/opt/homebrew/opt/openssl@3" pycurl

或者,使用 Homebrew 安装(非本人维护):

brew install forbidden

标准安装

pip3 install --upgrade forbidden

从源码构建和安装

git clone https://github.com/ivan-sincek/forbidden && cd forbidden

python3 -m pip install --upgrade build

python3 -m build

python3 -m pip install dist/forbidden-13.4-py3-none-any.whl

如何使用

绕过 403 Forbidden HTTP 响应状态码:

forbidden -u https://example.com/admin -t protocols,methods,uploads,overrides,headers,paths-ram,encodings -f GET -l initial,path -o forbidden_403_results.json

通过压力测试绕过 403 Forbidden HTTP 响应状态码:

mkdir stresser_403_results

stresser -u https://example.com/admin -r 1000 -th 200 -f GET -l initial -dir stresser_403_results -o stresser_403_results.json

绕过 401 Unauthorized HTTP 响应状态码:

forbidden -u https://example.com/admin -t auths -f GET -l initial -o forbidden_401_results.json

测试开放重定向和损坏的 URL 解析器,即测试带外(OOB)交互:

forbidden -u https://example.com/admin -t redirects,parsers -f GET -l initial -e xyz.interact.sh -o forbidden_oob_results.json

测试

protocols

  • 使用 IP 地址和域名测试 HTTP 和 HTTPS 协议。
  • 测试不带 Host HTTP 请求头的 HTTP/1.0 协议降级,使用 IP 地址和域名。

methods

  • 测试允许的 HTTP 方法,也使用 Content-Length: 0 HTTP 请求头。
  • 使用 HTTP TRACE 和 TRACK 方法测试跨站追踪(XST)。

uploads

  • 使用 HTTP PUT 方法,对 URL 路径中的每个目录递归测试文本文件上传。

overrides

  • 使用 URL 查询字符串参数、HTTP 请求头和 HTTP 请求体测试 HTTP 方法覆盖。
  • 使用 HTTP 请求头测试 URL 方案覆盖,从 HTTPS 到 HTTP 以及从 HTTP 到 HTTPS。
  • 使用 HTTP 请求头测试端口覆盖。
  • 使用 HTTP 请求头测试 HTTP 主机覆盖,也使用两个 Host HTTP 请求头。
  • 使用带有相对 URL 路径的 HTTP 请求头测试 URL 路径覆盖,使用以下 URL:可访问 URL、根 URL 和完整 URL。

headers

  • 使用 IP 地址、逗号分隔的 IP 地址、域名、根 URL、完整 URL 等测试 HTTP 请求头。

values

  • 使用用户提供的 IP 地址、域名、根 URL 和完整 URL 测试 HTTP 请求头。

paths

  • 测试 URL 路径绕过。

encodings

  • 测试 URL 主机和路径的转换与编码。

auths

  • 使用带有空值和预定义 Base64 编码凭据的 HTTP 请求头测试基本认证/授权。
  • 使用带有空值、格式错误的 JWT 和预定义 JWT 的 HTTP 请求头测试 Bearer 认证/授权。

redirects

  • 使用带有重定向 IP 地址、域名、根 URL 和完整 URL 的 HTTP 请求头测试开放重定向。

parsers

  • 使用带有损坏 IP 地址、域名、根 URL 和完整 URL 的 HTTP 请求头测试损坏的 URL 解析器。

如果您想了解更多细节,请参阅:

  • /src/forbidden/utils/forbidden.py
  • /src/forbidden/utils/test.py
  • /src/forbidden/utils/value.py

备注:

  • 所有测试均基于公开的信息安全和漏洞赏金报告。
  • 部分测试存在重叠;但在发送任何内容之前,会应用 唯一过滤器。
  • 所有 HTTP 请求头、URL 查询字符串参数等均根据官方文档进行了验证。
  • 默认情况下,Forbidden 和 Stresser 都使用 Python Requests 引擎。
  • 测试不带 Host HTTP 请求头的 HTTP/1.0 协议降级锁定为使用 HTTP Client 引擎。此外,提供的 cURL 命令无法正常工作,因为 cURL 不允许移除 Host HTTP 请求头。
  • 使用两个 Host HTTP 请求头测试 HTTP 主机覆盖锁定为使用 Python Requests 引擎。此外,提供的 cURL 命令无法正常工作,因为 cURL 不允许使用两个 Host HTTP 请求头。
  • 测试 URL 主机和路径的转换与编码锁定为使用 PycURL 引擎。
  • 某些 Web 代理可能会 规范化 URL(例如在测试 encodings 时)、修改 HTTP 请求或完全丢弃 HTTP 请求。
  • 某些网站可能需要有效或非常特定的 User-Agent HTTP 请求头。
  • 跨站追踪(XST)不再被视为漏洞。
  • 请注意 速率限制 和其他类似的反机器人保护措施;在相同域名上再次运行工具前,请稍作等待。

HTTP 方法

这只是一个快速概览,说明了使用了什么,但不说明如何使用。

ACL
ARBITRARY
BASELINE-CONTROL
BIND
CHECKIN
CHECKOUT
CONNECT
COPY
DELETE
GET
HEAD
INDEX
LABEL
LINK
LOCK
MERGE
MKACTIVITY
MKCALENDAR
MKCOL
MKREDIRECTREF
MKWORKSPACE
MOVE
OPTIONS
ORDERPATCH
PATCH
POST
PRI
PROPFIND
PROPPATCH
PUT
REBIND
REPORT
SEARCH
SHOWMETHOD
SPACEJUMP
TEXTSEARCH
TRACE
TRACK
UNBIND
UNCHECKOUT
UNLINK
UNLOCK
UPDATE
UPDATEREDIRECTREF
VERSION-CONTROL

HTTP 请求头

这只是一个快速概览,说明了使用了什么,但不说明如何使用。

19-Profile
Accept
Base-URL
CF-Connecting-IP
Client-IP
Cluster-Client-IP
Destination
Forwarded-For
Forwarded-For-IP
From
Front-End-HTTPS
Host
Incap-Client-IP
Origin
Profile
Proxy
Proxy-Client-IP
Redirect
Referer
Remote-Addr
Request-URI
True-Client-IP
URI
URL
WAP-Profile
WL-Proxy-Client-IP
X-Client-IP
X-Cluster-Client-IP
X-Forward
X-Forward-For
X-Forwarded
X-Forwarded-By
X-Forwarded-For
X-Forwarded-For-IP
X-Forwarded-For-Original
X-Forwarded-Host
X-Forwarded-Path
X-Forwarded-Port
X-Forwarded-Proto
X-Forwarded-Protocol
X-Forwarded-SSL
X-Forwarded-Scheme
X-Forwarded-Server
X-HTTP-DestinationURL
X-HTTP-Host-Override
X-HTTP-Method
X-HTTP-Method-Override
X-Host
X-Host-Override
X-Method
X-Method-Override
X-Original-Forwarded-For
X-Original-Remote-Addr
X-Original-URL
X-Originally-Forwarded-For
X-Originating-IP
X-Override-URL
X-Proxy-Host
X-Proxy-URL
X-ProxyUser-IP
X-Real-IP
X-Referer
X-Remote-Addr
X-Remote-IP
X-Rewrite-URL
X-Scheme
X-Server-IP
X-True-Client-IP
X-True-IP
X-URL-Scheme
X-Wap-Profile

结果

备注:

  • 结果将按 HTTP 响应状态码 升序、HTTP 响应正文长度 降序 和测试 ID 升序 排序。
  • 默认情况下,仅将 2xx 和 3xx HTTP 响应状态码包含在结果中并显示在控制台输出中。
  • 结果中的 length 属性指 HTTP 响应正文的长度。
  • 要手动过滤掉 误报 结果,对于每个唯一的 HTTP 响应内容长度,运行提供的 cURL 命令并检查 HTTP 响应是否导致绕过;如果不是,则忽略所有具有相同内容长度的结果。
[
   {
      "id":"595-HOST-OVERRIDES-1",
      "url":"https://example.com:443/admin",
      "method":"GET",
      "headers":[
         "Host: 127.0.0.1"
      ],
      "cookies":[],
      "body":"",
      "user_agent":"Forbidden/13.4",
      "command":"curl --path-as-is -iskL -A 'Forbidden/13.4' -H 'Host: 127.0.0.1' -X 'GET' 'https://example.com:443/admin'",
      "status":200,
      "length":14301
   },
   {
      "id":"596-HOST-OVERRIDES-1",
      "url":"https://example.com:443/admin",
      "method":"GET",
      "headers":[
         "Host: 127.0.0.1:443"
      ],
      "cookies":[],
      "body":"",
      "user_agent":"Forbidden/13.4",
      "command":"curl --path-as-is -iskL -A 'Forbidden/13.4' -H 'Host: 127.0.0.1:443' -X 'GET' 'https://example.com:443/admin'",
      "status":200,
      "length":14301
   }
]

用法

Forbidden v13.4 ( github.com/ivan-sincek/forbidden )

用法:   forbidden -u url                       -t 测试 [-f 强制] [-o 输出文件         ]
示例: forbidden -u https://example.com/admin -t all   [-f GET  ] [-o results.json]
下载工具