背景介紹
Web應用一般是指B/S架構的通過HTTP/HTTPS協議提供服務的統稱。随着互聯網的發展,Web應用已經融入了我們的日常生活的各個方面。在目前的Web應用中,大多數應用不都是靜态的網頁浏覽,而是涉及到服務器的動态處理。如果開發者的安全意識不強,就會導緻Web應用安全問題層出不窮。
我們一般說的Web應用攻擊,是指攻擊者通過浏覽器或者其他的攻擊工具,在URL或者其他的輸入區域(如表單等),向Web服務器發送特殊的請求,從中發現Web應用程序中存在的漏洞,進而操作和控制網站,達到入侵者的目的。
常見安全漏洞
一、sql注入
SQL注入(SQL Injection),是最常見影響非常廣泛的漏洞。攻擊者通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令,從而入侵數據庫來執行未授意的任意查詢。
SQL注入可能造成的危害有:網頁、數據被篡改,核心數據被竊取,數據庫所在的服務器被攻擊,變成傀儡主機。
例如有些網站沒有使用預編譯sql,用戶在界面上輸入的一些字段被添加到sql中,很有可能這些字段包含一些惡意的sql命令。如:password = "1' OR '1'='1";即使不知道用戶密碼,也能正常登錄。
測試方法:
在數據輸入界面,輸入:<script>alert(/123/)</script>,保存成功後如果彈出對話框,表明此處存在一個XSS 漏洞。
或把url請求中參數改為<script>alert(/123/)</script>,如果頁面彈出對話框,表明此處存在一個XSS 漏洞。
三、CSRF跨站僞造請求攻擊
CSRF(Cross Site Request Forgery),利用已登錄的用戶身份,以用戶的名義發送惡意請求,完成非法操作。
例如:用戶如果浏覽并信任了存在CSRF漏洞的網站A,浏覽器産生了相應的cookie,用戶在沒有退出該網站的情況下,訪問了危險網站B 。
危險網站B要求訪問網站A,發出一個請求。浏覽器帶着用戶的cookie信息訪問了網站A,因為網站A不知道是用戶自身發出的請求還是危險網站B發出的請求,所以就會處理危險網站B的請求,這樣就完成了模拟用戶操作的目的。這就是CSRF攻擊的基本思想。
測試方法:
1.同個浏覽器打開兩個頁面,一個頁面權限失效後,另一個頁面是否可操作成功,如果仍然能操作成功即存在風險。
2.使用工具發送請求,在http請求頭中不加入referer字段,檢驗返回消息的應答,應該重新定位到錯誤界面或者登錄界面。
四、文件上傳漏洞
文件上傳攻擊是指攻擊者上傳了一個可執行文件到服務器上,并執行。
這種攻擊方式是最直接有效的。上傳的文件可以是病毒、木馬、惡意腳本或者是webshell等等。
Webshell是以asp、php、jsp或者cgi等網頁文件形式存在的一種命令執行環境,也可以說是一種網頁後門。攻擊者在受影響系統防止或插入webshell後,可以通過webshell方便進入系統,達到控制網站服務器的目的。
測試方法:
對上傳的文件類型、大小等進行嚴格校驗,禁止上傳惡意代碼的文件。
對相關目錄的執行權限進行校驗,可以通過浏覽器訪問Web 服務器上的所有目錄,檢查是否返回目錄結構,如果顯示的是目錄結構,則可能存在安全問題。
五、URL跳轉漏洞
URL跳轉漏洞,即未經驗證的重定向漏洞,是指Web程序直接跳轉到參數中的URL,或者在頁面中引入了任意開發者的URL,将程序引導到不安全的第三方區域,從而導緻安全問題。
測試方法:
1.使用抓包工具抓取請求。
2.抓取302的url,修改目标地址,查看是否能跳轉。
ps:不過現在很多跳轉都加了referer的校驗導緻攻擊者跳轉失敗。
總結
以上便是一些常見的Web安全漏洞及測試方法,在當下網絡安全越來越被重視的情況下,Web安全測試在測試流程中的重要性也日益凸顯,雖然也存在AppScan等漏洞掃描工具,測試人員對常見的安全漏洞也需要有一定的認知。
作者簡介:張斌,6年測試工作經驗,精通自動化測試、性能測試、持續交付以及整體産品質量提升。
點擊“了解更多”查看更多技術文章~
,