首頁 >系統教程 >Linux >Gixy–分析Nginx設定檔的工具

Gixy–分析Nginx設定檔的工具

王林
王林轉載
2024-01-12 10:12:051067瀏覽

Gixy是一款用來分析Nginx設定檔的工具。 Gixy的主要目標是防止安全配置錯誤,並自動進行缺陷偵測。

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/((?<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中文網其他相關文章!

陳述:
本文轉載於:linuxprobe.com。如有侵權,請聯絡admin@php.cn刪除