Gixy是一款用來分析Nginx設定檔的工具。 Gixy的主要目標是防止安全配置錯誤,並自動進行缺陷偵測。
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/((?<action>[^.]*)/.json)?$ { add_header X-Action $action; } … }
再次執行Gixy檢查配置。
$ gixy /usr/local/nginx/conf/nginx.conf ==================== Results =================== >> Problem: [http_splitting] 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/((?<action>[^.]*)/.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指令。
以上是Gixy–分析Nginx設定檔的工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!