天天看點

Web應用安全測試掃盲

最近新聞熱點《西北工業大學遭美國國家安全局網絡攻擊事件》想必大家都看到了,攻擊的目的無外乎擷取涉及到國安的機密資料。

移動網際網路時代,Web應用産生并存儲海量使用者隐私以及交易資料,對Web應用進行安全測試變得越來越重要。

本文屬于掃盲貼,給大家介紹下網站安全測試的概念、工具、關鍵術語以及測試方法,對安全測試有個大概的了解。

什麼是安全測試?

簡單了解安全測試就是一個測試機密資料是否安全的過程(即驗證資料不會被沒有權限的個人通路到)。

關鍵術語

什麼是“漏洞”?

就是Web應用程式中的一個缺陷。這種“缺陷”的原因可能是由于應用程式中的錯誤、注入(SQL/腳本代碼)或病毒的存在。

什麼是“URL操作”?

Web應用會通過URL在用戶端(浏覽器)和伺服器之間傳遞資訊。更改URL中的一些資訊有時可能會導緻伺服器的意外行為,這被稱為URL操作。

什麼是“SQL注入”?

通過Web應用界面将SQL語句插入到查詢框,然後由伺服器執行的過程。

什麼是“XSS(跨站點腳本攻擊)”

XSS 允許惡意使用者将代碼植入到 web 網站裡面,供給其它使用者通路,當使用者通路到有惡意代碼的網頁就會産生 xss 攻擊。XSS是因為使用者輸入的内容被浏覽器當作了前端代碼執行。

安全測試方法

為了對Web應用程式進行有效的安全測試,安全測試人員應該對HTTP協定非常了解。了解用戶端(浏覽器)和伺服器如何通過HTTP進行通信非常重要。

#1) 密碼破解

Web應用程式上的安全測試可以從“密碼破解”做起。為了登入應用程式,理論上可以盲猜使用者名/密碼,也可以使用一些密碼破解工具。市面上存在大量的開源密碼破解器。

如果Web應用程式沒有強制要求使用者設定複雜的密碼(例如,帶有字母表、數字和特殊字元,或至少有特定數量的字元),破解使用者名和密碼可能不需要很長時間。

如果使用者名或密碼存儲在cookie中而不加密,那麼攻擊者可以使用不同的方法來竊取使用者cookie和存儲在cookie中的資訊,如使用者名和密碼。

#2)URL參數傳遞加密測試

測試人員應該檢查URL是否傳遞涉及使用者隐私的重要資訊,例如密碼明碼等。因為當應用程式使用HTTP GET方法在用戶端和伺服器之間傳遞資訊時,你的密碼很可能被不法分子攔截捕獲。

通過HTTP GET請求将使用者資訊傳遞給伺服器進行身份驗證或擷取資料。攻擊者可以操作從此GET請求傳遞到伺服器的每個輸入變量,以擷取所需資訊或損壞資料。在這種情況下,應用程式或Web伺服器的任何異常行為都是攻擊者進入應用程式的大門。

#3)SQL注入

下面介紹下SQL注入。在任何文本框中輸入單個引号(')都應被應用程式拒絕。相反,如果測試人員遇到資料庫錯誤,這意味着使用者輸入被插入某個查詢中,然後被應用程式執行了。在這種情況下,應用程式非常容易受到SQL注入的影響。

SQL注入攻擊非常重要,因為攻擊者可以從伺服器資料庫擷取重要資訊。如果使用者輸入資料需要傳遞給SQL語句以查詢資料庫,攻擊者可以注入SQL語句的一部分作為使用者輸入,以從資料庫中提取重要資訊。

即使攻擊者成功攻破了應用程式,從浏覽器上顯示的SQL查詢錯誤中,攻擊者也可以獲得他們想要的資訊。在這種情況下,應正确處理/轉義使用者輸入中的特殊字元。

#4)跨站點腳本攻擊(XSS)

攻擊者可以使用此方法在被攻擊者浏覽器上執行惡意腳本或URL。使用跨站點腳本,攻擊者可以使用JavaScript等腳本來竊取使用者cookie和存儲在cookie中的資訊。

例如,http://www.examplesite.com/index.php?Userid=123&query=xyz

攻擊者可以輕松地将一些<script>作為“&查詢”參數傳遞,該參數可以擷取浏覽器上的重要使用者/伺服器資料。

最經典的彈窗語句:<script>alert(1)</script>

Web應用安全測試掃盲

在安全測試期間,測試人員應非常小心,不能修改web應用的以下任何内容:

  • 應用程式或伺服器的配置。
  • 在伺服器上運作的服務。
  • 應用程式背景存儲的使用者資料。
  • 應避免在生産環境進行安全測試。
  • 烏雲網:http://www.anquan.us/
  • 漏洞盒子:https://www.vulbox.com/
  • 360網站安全檢測:http://webscan.360.cn/
  • 其他:appsans、axws
  • 背景回複【測開】擷取測試開發xmind腦圖
  • 背景回複【加群】擷取加入測試社群!

繼續閱讀