土小帽 发表于 2023-11-3 23:10:13

Gixy–分析Nginx配置文件的工具

Gixy是一款用于分析Nginx配置文件的工具,其主要目标是防止安全配置错误,并自动进行缺陷检测。



Gixy特性
发现服务器端请求伪造。
验证HTTP拆分。
验证referrer/origin问题。
验证是否正确使用add_header指令重新定义Response Headers。
验证请求的主机头是否伪造。
验证valid_referers是否为空。
验证是否存在多行主机头。
Gixy安装
Gixy是一个使用Python开发的应用程序,目前支持Python版本2.7和3.5+。

安装步骤非常简单,只需使用pip进行安装即可:

$ pip install gixy
如果你的系统比较老,自带Python版本比较低。可参考「使用pyenv搭建python虚拟环境」或者「如何在CentOS上启用软件集Software Collections(SCL)」升级Python版本。

Gixy使用
Gixy默认会检查/etc/nginx/nginx.conf配置文件。

$ gixy
也可以指定NGINX配置文件所在的位置。

$ gixy /usr/local/nginx/conf/nginx.conf

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

No issues found.

==================== Summary ===================

Total issues:

Unspecified: 0

Low: 0    Medium: 0

High: 0
来看一个http折分配置有问题的示例,修改Nginx配置:

server {



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


}
再次运行Gixy检查配置。

$ gixy /usr/local/nginx/conf/nginx.conf

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

>> Problem: Possible HTTP-Splitting vulnerability.
Description: Using variables that can contain “/n” may lead to http injection.
Additional info: https://github.com/yandex/gixy/blob/master/docs/en/plugins/httpsplitting.md
Reason: At least variable “$action” can contain “/n”
Pseudo config:

server {
server_name localhost mike.hi-linux.com;

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

==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 1
从结果可以看出检测到了一个问题,指出问题类型为http_splitting。原因是$action变量中可以含有换行符。这就是HTTP响应头拆分漏洞,通过CRLFZ注入实现攻击。

如果你要暂时忽略某类错误检查,可以使用–skips参数:

$ gixy –skips http_splitting /usr/local/nginx/conf/nginx.conf
==================== Results ===================
No issues found.

==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 0
更多使用方法可以参考gixy –help命令。
页: [1]
查看完整版本: Gixy–分析Nginx配置文件的工具