您好,登錄后才能下訂單哦!
這篇文章主要講解了“常見的Web安全漏洞及測試方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“常見的Web安全漏洞及測試方法是什么”吧!
一、安全測試6項基本原則:
認證:對認證的用戶的請求返回
訪問控制:對未認證的用戶的權限控制和數據保護
完整性:用戶必須準確的收到服務器發送的信息
機密性:信息必須準確的傳遞給預期的用戶
可靠性:失敗的頻率是多少?網絡從失敗中恢復需要多長時間?采取什么措施來應對災難性的失敗?(個人理解這個地方應該更偏向于容錯容災測試的范疇)
不可抵賴:用戶應該能證明接收到的數據來自特定的服務器
二、常見的安全測試內容
權限控制
SQL注入
URL安全測試
XSS(跨站腳本攻擊)
CSRF(跨站請求偽造)
URL跳轉漏洞
其他安全方面的考量
三、Web應用程序中是什么導致安全性問題呢?一般有以下幾個原因:
1、復雜應用系統代碼量大、開發人員多、難免出現疏忽。
2、系統屢次升級、人員頻繁變更,導致代碼不一致。
3、歷史遺留系統、試運行系統等多個Web系統共同運行于同一臺服務器上。
4、開發人員未經過安全編碼培訓或者公司根本就沒有統一的安全編碼規范。
5、測試人員經驗不足或者沒經過專業的安全評估測試就發布上線。
6、沒有對用戶的輸入進行驗證,舉幾個例子:
1)永遠不要信任用戶的輸入,要對用戶的輸入進行校驗
2)數字型的輸入必須是合法的數字
3)字符型的輸入中對 編碼符號要進行特殊處理
4)驗證所有的輸入點,包括Get,Post,Cookie以及其他HTTP頭
四、安全性測試的常見漏洞及解決辦法:
1、XSS跨站腳本攻擊
SS與SQL注入相似,XSS是通過網頁插入惡意腳本,主要用到的技術也是前端的HTML和JavaScript腳本。當用戶瀏覽網頁時,實現控制用戶瀏覽器行為的攻擊方式。
一次成功的XSS,可以獲取到用戶的cookie,利用該cookie盜取用戶對該網站的操作權限;也可以獲取到用戶聯系人列表,利用被攻擊者的身份向特定的目標群發送大量的垃圾信息,等等。
XSS分為三類:存儲型(持久性XSS)、反射型(非持久性XSS)、DOM型。
測試方法:
在數據輸入界面,輸入:<script>alert(/123/)</script>,保存成功后如果彈出對話框,表明此處存在一個XSS 漏洞。
或把url請求中參數改為<script>alert(/123/)</script>,如果頁面彈出對話框,表明此處存在一個XSS 漏洞。
2、SQL注入
SQL注入是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符
串,最終達到欺騙服務器執行惡意的SQL命令。
SQL注入可能造成的危害有:網頁、數據被篡改,核心數據被竊取,數據庫所在的服務器被攻擊,變成傀儡主機。
例如有些網站沒有使用預編譯sql,用戶在界面上輸入的一些字段被添加到sql中,很有可能這些字段包含一些惡意的sql命令。如:password = "1' OR '1'='1";即使不知道用戶密碼,也能正常登錄。
測試方法:
在需要進行查詢的頁面,輸入正確查詢條件 and 1=1等簡單sql語句,查看應答結果,如與輸入正確查詢條件返回結果一致,表明應用程序對用戶輸入未進行過濾,可以初步判斷此處存在SQL注入漏洞
修改建議:
對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對以下關鍵字進行轉換等;
||alert|and|exec|execute|insert|select|delete|update|count|drop|chr|mid|master|truncate|declare|sitename|netuser|xp_cmdshell|or|+|,|like'|and|exec|execute|insert|create|drop|table|from|grant|group_concat|column_name|information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|chr|mid|master|truncate|declare|or|--|+|,|like|//
不要使用動態拼裝sql,可以使用參數化的sql或者直接使用存儲過程進行數據查詢存取;
不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接;
應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝。
3、URL跳轉漏洞
URL跳轉漏洞,即未經驗證的重定向漏洞,是指Web程序直接跳轉到參數中的URL,或者在頁面中引入了任意開發者的URL,將程序引導到不安全的第三方區域,從而導致安全問題。
測試方法:
1.使用抓包工具抓取請求。
2.抓取302的url,修改目標地址,查看是否能跳轉。
ps:不過現在很多跳轉都加了referer的校驗導致攻擊者跳轉失敗。
4、文件上傳漏洞
文件上傳攻擊是指攻擊者上傳了一個可執行文件到服務器上,并執行。
這種攻擊方式是最直接有效的。上傳的文件可以是病毒、木馬、惡意腳本或者是webshell等等。
Webshell是以asp、php、jsp或者cgi等網頁文件形式存在的一種命令執行環境,也可以說是一種網頁后門。攻擊者在受影響系統防止或插入webshell后,可以通過webshell方便進入系統,達到控制網站服務器的目的。
測試方法:
對上傳的文件類型、大小等進行嚴格校驗,禁止上傳惡意代碼的文件。
對相關目錄的執行權限進行校驗,可以通過瀏覽器訪問Web 服務器上的所有目錄,檢查是否返回目錄結構,如果顯示的是目錄結構,則可能存在安全問題。
5、CSRF跨站偽造請求攻擊
CSRF,利用已登錄的用戶身份,以用戶的名義發送惡意請求,完成非法操作。
例如:用戶如果瀏覽并信任了存在CSRF漏洞的網站A,瀏覽器產生了相應的cookie,用戶在沒有退出該網站的情況下,訪問了危險網站B 。
危險網站B要求訪問網站A,發出一個請求。瀏覽器帶著用戶的cookie信息訪問了網站A,因為網站A不知道是用戶自身發出的請求還是危險網站B發出的請求,所以就會處理危險網站B的請求,這樣就完成了模擬用戶操作的目的。這就是CSRF攻擊的基本思想。
測試方法:
1. 同個瀏覽器打開兩個頁面,一個頁面權限失效后,另一個頁面是否可操作成功,如果仍然能操作成功即存在風險。
2.使用工具發送請求,在http請求頭中不加入referer字段,檢驗返回消息的應答,應該重新定位到錯誤界面或者登錄界面。
感謝各位的閱讀,以上就是“常見的Web安全漏洞及測試方法是什么”的內容了,經過本文的學習后,相信大家對常見的Web安全漏洞及測試方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。