http host頭攻擊漏洞

2022-06-06 05:00:07 字數 1399 閱讀 7110

為了方便的獲得**網域名稱,開發人員一般依賴於http host header。例如,在php裡用_server["http_host"]。但是這個header是不可信賴的,如果應用程式沒有對host header值進行處理,就有可能造成惡意**的傳入。

web應用程式應該使用server_name而不是host header。

在apache和nginx裡可以通過設定乙個虛擬機器來記錄所有的非法host header。在nginx裡還可以通過指定乙個server_name名單,apache也可以通過指定乙個server_name名單並開啟usecanonicalname選項。

專案**
程式編寫中避免使用http_host,如有需要使用server_name替代

nginx配置

配置檔案中server_name上設定具體網域名稱.eg:

server_name example.com;
在nginx上設定乙個default_server處理其他網域名稱來處理預設的請求.即,非設定網域名稱返回乙個http status code 4xx 的**

server
apache配置

方法一: 修改\conf\httpd.conf配置檔案中server_name,設定具體網域名稱.eg:

servername example.com:80  # 指定網域名稱和埠號
新增下列行

usecanonicalname on # 使用指定的網域名稱和埠號
namevirtualhost 127.0.0.1

servername 127.0.0.1

order allow,deny

deny from all # 拒絕直接通過ip位址的任何訪問

documentroot "c:\www\example"

servername example.com # 僅允許通過網域名稱訪問

方法三: 修改\conf\httpd.conf檔案,找到"#loadmodule rewrite_module modules/mod_rewrite.so"去除前面的"#"號,新增類似以下配置:

rewriteengine on

rewritecond % !^127.0.0.1$ [nc]

rewriterule ^(.*)$ /error.html

配置修改後都需要重啟nginx/apache

檢測到目標URL存在Http Host頭攻擊漏洞

問題描述 檢測到目標url存在http host頭攻擊漏洞 apache 在未設定servername時,server server name 的值會接收客戶端傳送過來的值,此時可以利用漏洞對伺服器進行攻擊。解決辦法 apache 已經驗證通過,方法可行。apache apache 配置檔案中需要指...

檢測到目標URL存在http host頭攻擊漏洞

檢測到目標url存在http host頭攻擊漏洞 1 引發安全問題的原因 為了方便的獲得 網域名稱,開發人員一般依賴於http host header。例如,在php裡用 server http host 但是這個header是不可信賴的,如果應用程式沒有對host header值進行處理,就有可能...

CTF XXE漏洞攻擊

f12 檢視原始碼 可以看到傳輸的資料是xml型別 payload打一下 1.0 encoding utf 8 doctype any entity xxe system file flag xxe username 111 password user 首先嘗試直接讀 flag檔案,回顯了報錯資訊,...