天天看點

「網絡攻防」常見的安全掃描漏洞的工具、漏洞分類及處理

作者:信安傳遞

一、掃描網站漏洞是要用專業的掃描工具,下面就是介紹幾種工具

Nikto

這是一個開源的Web伺服器掃描程式,它可以對Web伺服器的多種項目進行全面的測試。其掃描項目和插件經常更新并且可以自動更新。Nikto可以在盡可能短的周期内測試你的Web伺服器,這在其日志檔案中相當明顯。不過,如果你想試驗一下,它也可以支援 LibWhisker的反IDS方法。不過,并非每一次檢查都可以找出一個安全問題,雖然多數情況下是這樣的。有一些項目是僅提供資訊類型的檢查,這種檢查可以查找一些并不存在安全漏洞的項目,不過Web管理者或安全工程師們并不知道。

Paros proxy

這是一個對Web應用程式的漏洞進行評估的代理程式,即一個基于Java的web代理程式,可以評估Web應用程式的漏洞。它支援動态地編輯/檢視 HTTP/HTTPS,進而改變cookies和表單字段等項目。它包括一個Web通信記錄程式,Web圈套程式,hash 電腦,還有一個可以測試常見的Web應用程式攻擊的掃描器。

WebScarab:

它可以分析使用HTTP和HTTPS協定進行通信的應用程式,WebScarab可以用最簡單地形式記錄它觀察的會話,并允許操作人員以各種方式觀查會話。如果你需要觀察一個基于HTTP(S)應用程式的運作狀态,那麼WebScarabi就可以滿足你這種需要。不管是幫助開發人員調試其它方面的難題,還是允許安全專業人員識别漏洞,它都是一款不錯的工具。

WebInspect:

這是一款強大的Web應用程式掃描程式。SPI Dynamics的這款應用程式安全評估工具有助于确認Web應用中已知的和未知的漏洞。它還可以檢查一個Web伺服器是否正确配置,并會嘗試一些常見的 Web攻擊,如參數注入、跨站腳本、目錄周遊攻擊等等。

Whisker/libwhisker :

Libwhisker是一個Perla子產品,适合于HTTP測試。它可以針對許多已知的安全漏洞,測試HTTP伺服器,特别是檢測危險CGI的存在。 Whisker是一個使用libwhisker的掃描程式。

Burpsuite:

這是一個可以用于攻擊Web應用程式的內建平台。Burp套件允許一個攻擊者将人工的和自動的技術結合起來,以列舉、分析、攻擊Web應用程式,或利用這些程式的漏洞。各種各樣的burp工具協同工作,共享資訊,并允許将一種工具發現的漏洞形成另外一種工具的基礎。

Wikto:

可以說這是一個Web伺服器評估工具,它可以檢查Web伺服器中的漏洞,并提供與Nikto一樣的很多功能,但增加了許多有趣的功能部分,如後端 miner和緊密的Google內建。它為MS.NET環境編寫,但使用者需要注冊才能下載下傳其二進制檔案和源代碼。

Acunetix Web Vulnerability Scanner :

這是一款商業級的Web漏洞掃描程式,它可以檢查Web應用程式中的漏洞,如SQL注入、跨站腳本攻擊、身份驗證頁上的弱密碼長度等。它擁有一個操作友善的圖形使用者界面,并且能夠建立專業級的Web站點安全稽核報告。

Watchfire AppScan:

這也是一款商業類的Web漏洞掃描程式。AppScan在應用程式的整個開發周期都提供安全測試,進而測試簡化了部件測試和開發早期的安全保證。它可以掃描許多常見的漏洞,如跨站腳本攻擊、HTTP響應拆分漏洞、參數篡改、隐式字段處理、後門/調試選項、緩沖區溢出等等。

N-Stealth:

N-Stealth是一款商業級的Web伺服器安全掃描程式。它比一些免費的Web掃描程式,如Whisker/libwhisker、 Nikto等的更新頻率更高。還要注意,實際上所有通用的VA工具,如Nessus, ISS Internet Scanner, Retina, SAINT, Sara等都包含Web 掃描部件。N-Stealth主要為Windows平台提供掃描,但并不提供源代碼。

二、漏洞類型及解決方法

1.1. Unix/Linux漏洞

更新相應産商的系統版本或查找對應漏洞的更新檔檔案

1.2. OpenSSH漏洞

OpenSSH 輸入驗證錯誤漏洞(CVE-2019-16905)

OpenSSH 指令注入漏洞(CVE-2020-15778)

OpenSSH 安全漏洞(CVE-2021-28041)

修複建議:

一般也是更新相應的OpenSSH版本

1.3Nginx漏洞

1.3.1導緻拒絕服務漏洞

HTTP/2是超文本傳輸協定的第二版,主要用于保證客戶機與伺服器之間的通信。HTTP/2中存在資源管理錯誤漏洞。攻擊者可利用該漏洞導緻拒絕服務

修複建議:

目前廠商已釋出更新更新檔以修複漏洞,詳情請關注廠商首頁: https://http2.github.io/

1.3.2SSL證書漏洞

SSL/TLS協定資訊洩露漏洞(CVE-2016-2183)

TLS是安全傳輸層協定,用于在兩個通信應用程式之間提供保密性和資料完整性。

TLS, SSH, IPSec協商及其他産品中使用的DES及Triple DES密碼存在大約四十億塊的生日界,這可使遠端攻擊者通過Sweet32攻擊,擷取純文字資料

修複建議:

對于nginx、apache、lighttpd等伺服器禁止使用DES加密算法,主要是修改conf檔案。

SSL/TLS 受誡禮(BAR-MITZVAH)攻擊漏洞(CVE-2015-2808)

SSL/TLS協定是一個被廣泛使用的加密協定,Bar Mitzvah攻擊實際上是利用了"不變性漏洞",這是RC4算法中的一個缺陷,它能夠在某些情況下洩露SSL/TLS加密流量中的密文,進而将賬戶使用者名密碼,信用卡資料和其他敏感資訊洩露給黑客

修複方法:

禁止使用RC4算法

1、 Windows禁用RC4算法

(1)首先更新微軟釋出的更新檔

https://support.microsoft.com/en-us/topic/microsoft-security-advisory-update-for-disabling-rc4-479fd6f0-c7b5-0671-975b-c45c3f2c0540

(2)修改系統資料庫

使用regedit指令打開系統資料庫,添加以下内容進行限制RC4

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ RC4 128/128]

“Enabled”= dword:00000000

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ RC4 40/128]

“Enabled”= dword:00000000

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ RC4 56/128]

“Enabled”= dword:00000000

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ RC4 64/128]

“Enabled”= dword:00000000

2、 禁止apache伺服器使用RC4加密算法

vi /etc/httpd/conf.d/ssl.conf

修改為如下配置

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!RC4

重新開機apache服務

3、 關于nginx加密算法

1.0.5及以後版本,預設SSL密碼算法是HIGH:!aNULL:!MD5

0.7.65、0.8.20及以後版本,預設SSL密碼算法是HIGH:!ADH:!MD5

0.8.19版本,預設SSL密碼算法是 ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM

0.7.64、0.8.18及以前版本,預設SSL密碼算法是ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

低版本的nginx或沒注釋的可以直接修改域名下ssl相關配置為

ssl_ciphers “ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES

256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GC

M-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4”;

ssl_prefer_server_ciphers on;

需要nginx重新加載服務

4、 關于lighttpd加密算法

在配置檔案lighttpd.conf中禁用RC4算法,例如:

ssl.cipher-list = “EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4”

重新開機lighttpd 服務。

5、 tomcat參考:

https://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

SSL/TLS RC4 資訊洩露漏洞(CVE-2013-2566)

安全套接層(Secure Sockets Layer,SSL),一種安全協定,是網景公司(Netscape)在推出Web浏覽器首版的同時提出的,目的是為網絡通信提供安全及資料完整性。SSL在傳輸層對網絡連接配接進行加密。傳輸層安全(Transport Layer Security),IETF對SSL協定标準化(RFC 2246)後的産物,與SSL 3.0差異很小。

SSL/TLS内使用的RC4算法存在單位元組偏差安全漏洞,可允許遠端攻擊者通過分析統計使用的大量相同的明文會話,利用此漏洞恢複純文字資訊。

修複建議:

禁用RC4算法,參考上一漏洞處理方法

1.3.3 弱密碼套件漏洞

解決方法:修改Nginx配置

ssl_protocols TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES128-GCSHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;

ssl_prefer_server_ciphers on;

「網絡攻防」常見的安全掃描漏洞的工具、漏洞分類及處理

1.3.4 TLS協定漏洞

.解決方法:

把協定版本升高,意味不相容老的套件協定,根據掃描出來的說明修改TLSv版本

「網絡攻防」常見的安全掃描漏洞的工具、漏洞分類及處理

1.4 API參數漏洞

1、在請求位址後拼接參數

「網絡攻防」常見的安全掃描漏洞的工具、漏洞分類及處理

2、請求方式修改

「網絡攻防」常見的安全掃描漏洞的工具、漏洞分類及處理

.解決方法:

API接口參數簽名(MD5摘要算法),請求所有的參數進行加密生成小于32位的摘要。前端程式在發送請求前首先對請求參數進行MD5加密形成摘要(約定規則),後端收到請求後對請求參數進行同前端相同的操作(MD5摘要),之後進行前端形成的加密串與後端形成的加密串進行比對,如果相等則是合法請求,反之則非法請求。

1.5 應用漏洞

1.5.1.盲LDAP注入(Blind LDAP Injection)

表現形式是将參數篡改成sql或其它的值,導緻在執行真實業務sql被注入了存在風險的sql

修複方式:

建議的修複方式是在sql拼接是盡量是采用占位符的形式設定sql的參數,避免風險sql注入

1.5.2API 成批配置設定

表現形式:篡改了接口參數的key或值,并且接口成功響應了

修複方式:

在參數傳遞時加上一個加密的摘要資訊,後端通過統一的方法對摘要資訊進行驗證

1.5.3.SQL注入 (Blind SQL Injection)

Veb程式中對于使用者送出的參數未做過濾直接拼接到sL語句中執行,導緻參數中的特殊字元破壞了SL語句原有邏輯,攻擊者可以利用該漏洞執行任意sQL語句,如查詢資料、下載下傳資料、寫入webshell、執行系統指令以及繞過登入限制等。

修複方式:

在sql查詢的過程中不能采用sql字元拼接的方式,而應該采用占位符的方式進行sql查詢等操作

1.5.4反射式跨站點腳本(Reflected Cross Site Scripting)

表現形式:

在接口傳參中注入一段html或js腳本

「網絡攻防」常見的安全掃描漏洞的工具、漏洞分類及處理

修複方式:

此種問題在修複的時候無法大規模的采用參數校驗的方式進行修複,我們選擇在過濾中集中處理,利用工具類對html标簽或js的标簽進行轉義(HtmlUtils.htmlEscape(data)),具體實作可參考平台1.0中的com.szjz.common.utils.filter.NonlicetFilter。

1.5.5.連結注入(促進跨站點請求僞造)

表現形式:

篡改接口傳參的值,進行連結注入

修複方式:

此種問題在修複的時候無法大規模的采用參數校驗的方式進行修複,我們選擇在過濾中集中處理,利用工具類對html标簽或js的标簽進行轉義(HtmlUtils.htmlEscape(data))

————————————————

版權聲明:本文為CSDN部落客「你頭發掉啦」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/qq_41831448/article/details/125142555

繼續閱讀