標籤:條件判斷 post 動作 重新導向 運行 jmx 並且 group amp
常見 Web Server:Apache Httpd、Nginx、LightHttp。Web Server 安全:自身是否安全 + 是否提供了可用的安全功能。
Apache 安全
Apache 的漏洞大多是 Apache 的 module 造成,其核心高危漏洞幾乎沒有。預設啟動的 Module 出現過的高危漏洞很少,大多數高危漏洞集中在預設沒有安裝或啟用的 Module 上。
檢查 Apache 安全的第一件事就是檢查 Module 的安裝情況,根據 “最小許可權原則”,應該儘可能減少不必要的 Module;對於要使用的 Module 則檢查其對應版本是否存在已知的安全性漏洞。
定製好了 Apache 的安裝包後,需要為 Apache 單獨建立一個 user/group,然後指定 Apache 進程以單獨的使用者身份運行。禁止使用高許可權身份運行!運行 Apache 的使用者不應該具備 shell。
要保護好 Apache Log,比如即時地發送到遠端 syslog 伺服器,以防攻擊者入侵後刪除痕迹。
Nginx 安全
Nginx 高效能,高並發。出現較多高危漏洞,在官網 http://nginx.org/en/security_advisories.html 公布已發現的安全問題。要緊密關注漏洞資訊,及時更新到安全版本。
Nginx 的配置靈活,在對抗 DDOS 和 CC 攻擊方面也能起到一定的緩解作用;在 Nginx 的配置中還可以做一些簡單的條件判斷,比如用戶端 User_Agent 具有什麼特徵,或者來自某個特定 referer、IP 等條件,定製特別的響應動作,比如返回錯誤號碼或重新導向。
jBoss 遠程命令執行
jBoss 是 J2EE 環境中流行的 Web 容器,如果配置不當可能造成遠程命令執行。
jBoss 在預設安裝時由一個管理後台,JMX-Console。該後台給管理員一些進階功能,包括配置 MBeans。通過 8080 連接埠訪問 /jmx-console 能夠進入管理介面,預設安裝時訪問 JMX-Console 是沒有任何認證的。
在 JMX-Console 中,有多種可以遠程執行命令的方法:
通過 DeploymentScanner 遠程載入一個 war 包:預設 DeploymentScanner 將檢查 URL 是否是 file:/[JBOSSHOME]/server/default/deploy/,但通過 addURL() 方法卻可以添加一個遠程 war 包。
通過 BSH(Bean Shell)Deployment 也能部署 war 包:BSH 能夠執行一次性的指令碼或建立服務。
出於安全防禦的目的,在做安全強化的時候,應該刪除 JMX-Console 後台:刪除 jmx-console.war 和 web-console.war。如果業務上不得不使用 JMX-Console,則應該使用一個強密碼,並且運行 JMX-Console 的連接埠不應該向 Internet 開放。
Tomcat 遠程命令執行
Apache Tomcat 與 jBoss 一樣,預設運行在 8080 連接埠。提供的 Tomcat Manager 的操作與 JMX-Console 類似,管理員可以在 Tomcat Manager 中部署 war 包(需要有 manager 許可權,該許可權在設定檔 tomcat-users.xml 中定義)
雖然 Tomcat 有後台密碼認證,但仍然建議刪除這個後台,以免被攻破後帶來安全隱患。
HTTP Parameter Pollution
通過 GET 或 POST 向伺服器發起請求時,提交兩個相同的參數,例如:/?a=value1&a=value2。在某些服務端環境中只會取第一個或最後一個參數;而在另一些環境中,比如 .NET,則會變成 a=value1,value2。這種特性在繞過一些伺服器端的邏輯判斷時很有用。
Web Server 配置安全