Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Gixy-Next — Gixy-Next:NGINX 配置安全扫描器与性能检查器 | Kitploit
工具/GitHubGitHub/megamansec/gixy-next
静态分析漏洞扫描器配置审计Web安全云安全DevSecOps硬件安全错误配置
GitHubmegamansec/gixy-next

Gixy-Next

Gixy-Next:NGINX 配置安全扫描器与性能检查器

查看仓库
184417天前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Gixy-Next:用于安全审计的 NGINX 配置安全扫描器

概述

Gixy-Next 吉祥物标志

Gixy-Next(Gixy)是一款开源的 NGINX 配置安全扫描器与加固工具,它会静态分析你的 nginx.conf,在配置进入生产环境之前检测安全错误配置、加固缺口以及常见的性能陷阱。它是 Yandex 的 Gixy 的一个积极维护的分支。Gixy-Next 的源代码托管在 GitHub 上。

Gixy-Next 也可以在浏览器中通过此页面运行。无需下载;你可以在网站上(本地,使用 WebAssembly)扫描你的配置。

快速开始

Gixy-Next(gixy 或 gixy-next 命令行工具)通过 PyPI 分发。你可以使用 pip 或 uv 安装:

root@kitploit:~
# pip
pip3 install gixy-next
# uv
uv pip install gixy-next

然后你可以运行它:

root@kitploit:~
# gixy defaults to reading /etc/nginx/nginx.conf
gixy
# But you can also specify a path to the configuration
gixy /opt/nginx.conf

你还可以将 NGINX 配置导出为单个转储文件(参见 nginx -T 实时配置转储):

root@kitploit:~
# Dumps the full NGINX configuration into a single file (including all includes)
nginx -T > ./nginx-dump.conf
# Scan the dump elsewhere (or via stdin):
gixy ./nginx-dump.conf
# or
cat ./nginx-dump.conf | gixy -

基于 Web 的扫描器

无需在本地下载并运行 Gixy-Next,你可以使用此网页在 Web 浏览器中扫描配置(本地,使用 WebAssembly)。

使用 Docker 扫描

Gixy-Next 以 Docker 镜像形式提供,可从 Docker Hub 或 GitHub Registry 获取。

通过将本地配置文件挂载到容器中来扫描:

root@kitploit:~
# Use Github Registry
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" ghcr.io/megamansec/gixy-next /nginx.conf
# Or Docker Hub
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" megamansec/gixy-next /nginx.conf

扫描 NGINX 实时配置转储:

root@kitploit:~
# Dumps the full NGINX configuration into a single file (including all includes)
nginx -T > ./nginx-dump.conf
# Use Github Registry
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" ghcr.io/megamansec/gixy-next /nginx-dump.conf
# Or Docker Hub
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" megamansec/gixy-next /nginx-dump.conf

从标准输入扫描:

root@kitploit:~
# Use Github Registry
nginx -T | docker run --pull=always --rm -i ghcr.io/megamansec/gixy-next gixy-next -
# Or Docker Hub
nginx -T | docker run --pull=always --rm -i megamansec/gixy-next gixy-next -

它能做什么

Gixy-Next 可以在 nginx.conf 以及所包含的配置文件中检测各种 NGINX 安全与性能错误配置。支持以下插件:

  • [add_header_content_type] 通过 add_header 设置 Content-Type
  • [add_header_multiline] 多行响应头
  • [add_header_redefinition] 通过 "add_header" 指令重定义响应头
  • [alias_traversal] 通过错误配置的 alias 导致路径遍历
  • [allow_without_deny] 指定了 allow 却没有 deny
  • [default_server_flag] 缺少 default_server 标志
  • [error_log_off] 将 error_log 设置为 off
  • [hash_without_default] hash 块中缺少 default
  • [host_spoofing] 请求 Host 头的伪造
  • [http2_misdirected_request] 缺少 HTTP/2 misdirected-request 防护
  • [http_splitting] HTTP 响应拆分
  • [if_is_evil] 在 location 上下文中使用 if 是危险的(evil)
  • [invalid_regex] 无效的正则表达式捕获组
  • [low_keepalive_requests] keepalive_requests 值过低
  • [missing_worker_processes] 缺少 worker_processes

发现未检测到的问题?请在 GitHub 上提交 issue 告诉我们缺少哪些检测!

用法(参数)

gixy 默认从 /etc/nginx/nginx.conf 读取系统的 NGINX 配置。你也可以通过将路径传给 gixy 来指定位置:

root@kitploit:~
# Analyze the configuration in /opt/nginx.conf
gixy /opt/nginx.conf

你可以使用 --tests 运行一组有针对性的检查:

root@kitploit:~
# Only run these checks
gixy --tests http_splitting,ssrf,version_disclosure

或者使用 --skips 跳过一些噪音较大的检查:

root@kitploit:~
# Run everything except these checks
gixy --skips low_keepalive_requests,worker_rlimit_nofile_vs_connections

若只想报告某个严重级别及以上的问题,请使用可叠加的 -l 标志:

root@kitploit:~
# -l for LOW severity issues and higher, -ll for MEDIUM and higher, and -lll for only HIGH severity issues
gixy -ll

默认情况下,gixy 的输出带有 ANSI 颜色;最好在兼容终端中查看。你可以将 --format(-f)标志与 text 值一起使用,以获得无颜色输出:

root@kitploit:~
$ gixy -f text

==================== Results ===================

Problem: [http_splitting] Possible HTTP-Splitting vulnerability.
Description: Using variables that can contain "\n" may lead to http injection.
Additional info: https://gixy.io/plugins/http_splitting/
Reason: At least variable "$action" can contain "\n"
Pseudo config:
include /etc/nginx/sites/default.conf;

	server {

		location ~ /v1/((?<action>[^.]*)\.json)?$ {
			add_header X-Action $action;
		}
	}


==================== Summary ===================
Total issues:
    Informational: 0
    Low: 0
    Medium: 0
    High: 1

你还可以使用 -f json 获得可复现、机器可读的 JSON 输出:

root@kitploit:~
$ gixy -f json
[{"config":"\nserver {\n\n\tlocation ~ /v1/((?<action>[^.]*)\\.json)?$ {\n\t\tadd_header X-Action $action;\n\t}\n}","description":"Using variables that can contain \"\\n\" or \"\\r\" may lead to http injection.","file":"/etc/nginx/nginx.conf","line":4,"path":"/etc/nginx/nginx.conf","plugin":"http_splitting","reason":"At least variable \"$action\" can contain \"\\n\"","reference":"https://gixy.io/plugins/http_splitting/","severity":"HIGH","summary":"Possible HTTP-Splitting vulnerability."}]

你还可以使用 -f sarif 获得 SARIF 2.1.0 日志,例如用于上传到 GitHub 代码扫描:

root@kitploit:~
# Write a SARIF report to a file, e.g. for `github/codeql-action/upload-sarif`
gixy -f sarif -o gixy-results.sarif

更多用法参数可以通过向 gixy 传递 --help 查看。你也可以在用法指南中找到更多信息。

配置与插件选项

有些插件会暴露一些选项,你可以通过 CLI 标志或配置文件进行设置。你可以在配置指南中了解更多相关信息。

Gixy-Next 用于 NGINX 安全与合规

与仅检查语法的 nginx -t 不同,Gixy-Next 会真正分析你的配置并检测未加固的实例和漏洞。

借助 Gixy-Next,你可以执行自动化的 NGINX 配置安全审查,它可以在每次变更时在本地运行,无论是用于审计、合规还是一般性测试,都能帮助生成可操作的发现结果,从而有助于防止 NGINX 服务器不稳定/缓慢,并降低不安全指令和不安全默认值带来的风险。

参与贡献

Gixy-Next 由 Joshua Rogers 维护,但任何时候都欢迎贡献!你可以通过多种方式帮助我们,例如:

  • 报告 bug。
  • 为检测提出新的插件建议。
  • 改进文档。
  • 修复、重构、改进和编写新代码。

在提交任何 pull request 更改之前,请阅读贡献指南文档:参与贡献 Gixy-Next。

Gixy-Next 的官方网站是 https://gixy.io/。Gixy-Next 文档的任何更改都会自动反映在该网站上。

源代码可以在 https://github.com/MegaManSec/Gixy-Next 找到。

什么是 Gixy?(背景)

Gixy 是一款 NGINX 配置分析器,最初 由 Yandex 的 Andrew Krasichkov 开发。它于 2017 年首次发布,此后便不再维护。它不支持现代版本的 Python,包含大量 bug,并且在功能和检测易受攻击的 NGINX 配置的能力方面都很有限。如今在现代系统上运行原始 Gixy 会导致以下错误:

root@kitploit:~
  File "gixy/core/sre_parse/sre_parse.py", line 61, in <module>
    "t": SRE_FLAG_TEMPLATE,
         ^^^^^^^^^^^^^^^^^
NameError: name 'SRE_FLAG_TEMPLATE' is not defined. Did you mean: 'SRE_FLAG_VERBOSE'?

因此,Gixy-Next 是一个分支,它增加了对现代系统的支持、新的检查项、性能改进、加固建议,以及对现代 Python 和 NGINX 版本的支持。

为什么不用 gixy-ng?

Gixy-Next 实际上是 gixy-ng 的分支,而 gixy-ng 本身又是原始 gixy 的分支。Gixy-Next 是在 gixy-ng 的维护者开始产出大量 AI 辅助更改和自动生成的代码之后创建的,这些更改和代码既大到无法审查,又存在错误。

一段时间后,gixy-ng 的维护者开始向代码库提交 AI 生成的更改,这些更改引入了明显的回归,破坏了工具的关键行为(任何使用该工具的人都会注意到),添加了随机的 AI 工具产物,并引入了根本不做其本该做之事的代码。最重要的是,该维护者还将营销内容添加到 gixy-ng 的所有文档、所有输出和所有源代码中。

换句话说,gixy-ng 的维护者拿走了原始 gixy,让 AI 进行更改,引入了一堆 bug(以及其他 AI 垃圾内容),然后向代码中添加了广告。他们还以合并请求的形式接受贡献,但剥离了作者的信息(参见这篇文章和这篇文章)。

Gixy-Next 专注于恢复质量,并已在接近 100,000 行的 NGINX 配置上经历了实战检验。它修复了 gixy-ng 中的更改所引入的 bug 和误检测,移除了 AI 工具产物/垃圾内容,并努力保持代码库的可审查性和可维护性。这个分支适合那些关心干净代码和长期可维护性的人。

下载工具
  • [mixed_case_variable] 混合大小写的变量引用
  • [origins] referer/origin 头验证问题
  • [overlapping_captures] rewrite redirect/args 上下文中的重叠捕获
  • [proxy_buffering_off] 禁用 proxy_buffering
  • [proxy_pass_normalized] proxy_pass 路径规范化问题
  • [quic_bpf_reuseport] 重载后 QUIC 连接被静默丢弃
  • [regex_redos] 正则表达式拒绝服务(ReDoS)
  • [resolver_external] 使用外部 DNS 名称服务器
  • [return_bypasses_allow_deny] return 指令绕过 allow/deny 限制
  • [ssl_stapling_without_resolver] 没有 resolver 时 OCSP stapling 静默失败
  • [ssrf] 服务端请求伪造(SSRF)
  • [stale_dns_cache] 在 proxy_pass 中使用过期/陈旧的缓存 DNS 记录
  • [status_page_exposed] 确保 status_page 不会暴露给外界
  • [try_files_is_evil_too] 没有 open_file_cache 时 try_files 指令是危险的(evil)
  • [unanchored_regex] 未锚定的正则表达式
  • [unnamed_groups] rewrite 查询字符串中的未命名捕获组
  • [valid_referers] valid_referers 中的 none/blocked
  • [version_disclosure] 为 server_tokens 使用不安全的值
  • [worker_rlimit_nofile_vs_connections] worker_rlimit_nofile 必须至少是 worker_connections 的两倍