OWASP TOP 10



漏洞描述

風險描述

漏洞等級

修改建議

SQL注入:

沒有對參數進行SQL過濾,且操作數據語句是拼接方式進行。

攻擊者可以通過構造特殊URL的手段,利用SQL注入漏洞從數據庫中獲取敏感數據、修改數據庫數據(插入/更新/刪除) 、執行數據庫管理操作(如關閉數據庫管理系統),從而能導致數據丟失或數據破壞、缺乏可審計性或是拒絕服務。注入漏洞有時甚至能導致完全主機接管。

對用戶輸入的數據進行全面安全檢查或過濾,尤其注意檢查是否包含SQL特殊字符。這些檢查或過濾必須在服務器端完成,必須注意大小寫問題,建議過濾的常見危險字符如下:
--,#,//(註釋符)
and 
or
select
update
delete
drop
declare
insert
xp_shell
(,)括號
 ||,+, (空格) 連接符
 ' 單引號
|(豎線符號)
 & (& 符號)
;(分號)
$(美元符號)
%(百分比符號)
 @(at 符號)
'(單引號)
"(引號)
\'(反斜槓轉義單引號)
\"(反斜槓轉義引號)
<>(尖括號)
CR(回車符,ASCII 0x0d)
LF(換行,ASCII 0x0a)
,(逗號)
\(反斜槓)

跨站腳本:

系統只是在局部對部分危險進行了過濾,並沒有進行全局過濾,且是使用replaceAll對危險字符進行過濾易被攻擊者繞過。

攻擊者可以通過構造URL注入JavaScript、VBScript、ActiveX、HTML或者Flash的手段,利用跨站腳本漏洞欺騙用戶,收集Cookie等相關數據並冒充其他用戶。通過精心構造的惡意代碼,可以讓訪問者訪問非法網站或下載惡意木馬,如果再結合其他攻擊手段(如社會工程學、提權等),甚至可以獲取系統的管理權限。

對用戶輸入的數據進行全面安全檢查或過濾,尤其注意檢查是否包含HTML特殊字符。這些檢查或過濾必須在服務器端完成,建議過濾的常見危險字符如下:
Ø |(豎線符號)
Ø & (& 符號)
Ø ;(分號)
Ø $(美元符號)
Ø %(百分比符號)
Ø @(at 符號)
Ø '(單引號)
Ø "(引號)
Ø \'(反斜槓轉義單引號)
Ø \"(反斜槓轉義引號)
Ø <>(尖括號)
Ø ()(括號)
Ø +(加號)
Ø CR(回車符,ASCII 0x0d)
Ø LF(換行,ASCII 0x0a)
Ø ,(逗號)
Ø \(反斜槓)
Ø Eval方法
Ø Document
Ø Cookie
Ø Javascript
Ø Script
Ø onerror

短信炸彈:

在調用短信發送功能的程序中未對發送次數和間隔時間進行限制,且手機號未前段直接傳入,這是惡意用戶可向任意手機號短時間內發生大量垃圾短信。

惡意用戶可以在短時間內對某一用戶手機號發送大量的短信,造成該手機號不能正



暴力破解1:

系統在根據用戶ID 和 舊密碼 校驗初始密碼是否正確中,只在後臺驗證了用戶ID和密碼,沒有檢驗驗證碼,且登錄密碼爲弱密碼,導致惡意用戶可暴力破解用戶密碼。

惡意攻擊者可以使用暴力破解的手段猜解任意用戶密碼,從而查看任意用戶敏感信息,非法模擬正常用戶登錄系統進行操作。

1、建議從會話中獲取用戶ID,2、建議在服務端驗證驗證碼,且保證驗證不可重複利用。

暴力破解2:

系統在登錄驗證中,只在後臺驗證了用戶名和密碼,沒有檢驗驗證碼,且登錄密碼爲弱密碼,導致惡意用戶可暴力破解用戶密碼。

惡意攻擊者可以使用暴力破解的手段猜解任意用戶密碼,從而查看任意用戶敏感信息,非法模擬正常用戶登錄系統進行操作。

建議在登錄後臺驗證驗證碼,且保證驗證不可重複利用。

任意文件下載:

在下載程序中未對下載路徑進行安全控制,導致攻擊者可以下載FTP服務器上包括其他用戶上傳的任意文件。

攻擊者可以查看和下載服務器上特定的文件,其中可能包含受限文件。

服務器端必須對文件名中的“../”字符進行過濾,避免路徑跳轉,對文件下載的路徑要進行嚴格控制。

訪問控制:

對於攻擊者提交的查看“角色信息列表”模塊請求,系統未在後臺再次進行權限的驗證。導致低權限用戶也可以使用高權限用戶才擁有的查看“角色信息列表”功能。

雖然系統已經做了基於角色的權限控制,一旦攻擊者通過其他方式(社工、測試頁面、已經被註釋的url、使用一部包含了很多後臺路徑的字典掃描等),獲得“權限管理”功能的url,攻擊者就可以隨意修改角色的權限,造成越權操作。

把需要保護的頁面“隱藏”起來,並不是很好解決訪問控制問題的辦法。需要在後臺對當前用戶是否擁有該url的訪問權限,進行再次驗證。

用戶枚舉:

在用戶登錄的時候驗證用戶密碼是否過期的操作中未做任何安全防護,將導致攻擊者可以構造任意用戶名傳入服務端並根據系統返回的結果判斷系統中是否存在該用戶。

攻擊者通過使用工具和字典的進行用戶名枚舉,在得到系統中存在的用戶名之後執行進一步的攻擊操作。

建議增加驗證碼驗證,將生成的驗證碼保存在會話中,每次在後臺使用完之後應清空該會話中保存的值,防止驗證碼被重複利用。

異常處理:

暴露異常信息詳細錯誤

惡意用戶可以利用系統異常收集web應用發佈路徑、數據庫操作語句等敏感信息。

屏蔽暴露詳細錯誤信息,如遇到未知錯誤信息可以將詳細信息寫入到錯誤日誌中,只在客戶端提示錯誤信息內容爲時間,ID等不敏感信息。如“未知錯誤,2004-10-18 15:30 ,ID爲”。

敏感信息泄露1:

數據庫連接、帳號、密碼

攻擊者可以利用這些信息爲進一步攻擊系統提供幫助、登錄系統,甚至直接控制數據庫等服務器等操作。

將帳號、密碼進行加密處理

敏感信息泄露2:

明文FTP服務器連接、帳號、密碼

攻擊者可以利用這些信息爲進一步攻擊系統提供幫助、登錄系統,甚至直接控制服務器等操作。

將IP、帳號、密碼進行加密處理

https漏洞1:

SSL 3.0 POODLE攻擊信息泄露漏洞(CVE-2014-3566)

 

 SSL3.0是已過時且不安全的協議,目前已被TLS 1.0,TLS 1.1,TLS 1.2替代,因爲兼容性原因,大多數的TLS實現依然兼容SSL3.0。

 爲了通用性的考慮,目前多數瀏覽器版本都支持SSL3.0,TLS協議的握手階段包含了版本協商步驟,一般來說,客戶端和服務器端的最新的協議版本將會被使用。其在與服務器端的握手階段進行版本協商的時,首先提供其所支持協議的最新版本,若該握手失敗,則嘗試以較舊的協議版本協商。能夠實施中間人攻擊的攻擊者通過使受影響版本瀏覽器與服務器端使用較新協議的協商的連接失敗,可以成功實現降級攻擊,從而使得客戶端與服務器端使用不安全的SSL3.0進行通信,此時,由於SSL 3.0使用的CBC塊加密的實現存在漏洞,攻擊者可以成功破解SSL連接的加密信息,比如獲取用戶cookie數據。這種攻擊被稱爲POODL攻擊(Padding Oracle On Downgraded Legacy Encryption)。

 

建議:
臨時解決方法:

 如果您不能立刻安裝補丁或者升級,NSFOCUS建議您採取以下措施以降低威脅:

* 禁用SSL 3.0協議。

 目前常用瀏覽器只有IE 6.0仍然不支持TLS 1.0,禁用SSL 3.0協議將影響IE 6客戶的
SSL訪問。

 服務端禁用方法:

Apache 2.x:
在mod_ssl配置文件中使用如下命令禁用SSLv2和SSLv3:
SSLProtocol All -SSLv2 -SSLv3
重啓Apache

 Nginx:
在配置文件中使用:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
重啓Nginx

 IIS:
查找如下註冊表項:
HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders \SCHANNEL\Protocols
該註冊表項通常包含以下子項:
* PCT 1.0
 * SSL 2.0
 * SSL 3.0
 * TLS 1.0
每個註冊表項都保留適用於該項的協議相關信息。可以在服務器上禁用這些協議中的任一種。爲此,
 請在協議SSL 3.0的服務器子項中創建一個新的DWORD值。將DWORD值設置爲“00 00 00 00”。

 

https漏洞2:

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

 

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

臨時解決方法: 

SSL/TLS 
-------- 
1、禁止apache服務器使用RC4加密算法 
vi /etc/httpd/conf.d/ssl.conf 
修改爲如下配置 
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!RC4 
重啓apache服務 
2、關於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重新加載服務 

3、關於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 服務。 

4、tomcat參考: 
https://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html 
https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html 

5、瀏覽器手工屏蔽方案 
Windows 用戶: 
1)完全關閉 Chrome 瀏覽器和Mozilla Firefox瀏覽器 
2)複製一個平時打開 Chrome 瀏覽器(Mozilla Firefox瀏覽器)的快捷方式 
3)在新的快捷方式上右鍵點擊,進入屬性 
4)在「目標」後面的空格中字段的末尾輸入以下命令 --cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007 

Mac OS X 用戶: 
1)完全關閉 Chrome 瀏覽器 
2)找到本機自帶的終端(Terminal) 
3)輸入以下命令:/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007 

Linux 用戶: 
1)完全關閉 Chrome 瀏覽器 
2)在終端中輸入以下命令:google-chrome --cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007

https漏洞3:

SSL/TLS 服務器瞬時 Diffie-Hellman 公共密鑰過弱(CVE-2015-4000)

Chrome訪問不安全的https鏈接時,Chrome爲保護用戶隱私會禁止用戶訪問這類不安全鏈接。 提示:服務器的瞬時 Diffie-Hellman 公共密鑰過弱 一是通過修改服務器配置,增加加密的安全級別。比如,tomcat配置: ciphers

Chrome訪問不安全的https鏈接時,Chrome爲保護用戶隱私會禁止用戶訪問這類不安全鏈接。

提示:服務器的瞬時 Diffie-Hellman 公共密鑰過弱

一是通過修改服務器配置,增加加密的安全級別。比如,tomcat配置:

ciphers=”TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA”提高tomcat加密的級別

 

Struts2漏洞: S2-045漏洞攻擊(在Content-type: 中插入非法字符串來遠程執行命令並嘗試執行該腳本,執行完成後刪除)

黑客通過Struts2的S2-045漏洞,遠程向問題服務器執行惡意代碼,導致服務器主動下載腳本併成爲肉雞實施SYN Flood攻擊,導致互聯網訪問出現嚴重性能下降

升級


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章