web安全測試必須注意的五個方面
7月25日晚8點,線上直播,【AI中臺——智慧聊天機器人平臺】,點選瞭解詳情。
隨著網際網路的飛速發展,web應用在軟體開發中所扮演的角色變得越來越重要,同時,web應用遭受著格外多的安全攻擊,其原因在於,現在的網站以及在網站上執行的應用在某種意義上來說,它是所有公司或者組織的虛擬正門,所以比較容易遭受到攻擊,存在安全隱患。
今天主要給大家分享下有關安全測試的一些知識點以及注意事項。
一、安全測試的驗證點
一個系統的安全驗證點包括上傳功能、註冊功能/登陸功能、驗證碼功能、密碼、敏感資訊洩露、越權測試、錯誤資訊、session等。
1、上傳功能
-
上傳中斷,程式是否有判斷上傳是否成功
-
上傳與伺服器端語言(jsp/asp/php)一樣副檔名的檔案或exe等可執行檔案後,確認在伺服器端是否可直接執行
2、註冊功能/登陸功能
-
請求是否安全傳輸
-
重複註冊/登陸
-
關鍵cookie是否httponly
-
會話固定:利用session的不變機制,獲取他人認證和授權,然後冒充
3 、驗證碼功能
-
簡訊轟炸
-
驗證碼一次性
4、 忘記密碼
-
透過手機號/郵箱找回
-
程式設計不合理,導致可以繞過簡訊驗證碼,從而進行修改(使用burpsuite抓包,修改響應值true)
5 、敏感資訊洩漏
- 資料庫/日誌/提示
6 、越權測試
-
不登陸系統,直接輸入下載檔案的URL是否可以下載/直接輸入登入後頁面的URL是否可以訪問
-
手動更改URL中的引數值能否訪問沒有許可權訪問的頁面
-
不同使用者之間session共享,可以非法操做對方的資料
7 、錯誤資訊
- 錯誤資訊中釋放含有sql語句,錯誤資訊以及web伺服器的絕對路徑
8、 Session
- 退出登陸後,點選後退按鈕是否能訪問之前的頁面
主要歸結為以下幾點:(後期可以最佳化成一個安全測試的框架結構)
- 部署與基礎結構
- 輸入驗證
- 身份驗證
- 授權
- 配置管理
- 敏感資料
- 會話管理
- 加密
- 引數操作
- 異常管理
- 稽核和日誌安全,
二、結合實際情況(現有系統)發現的問題
1、日誌/提示
在系統的初期,一般比較容易發現的問題就是在進行一些錯誤或者反向測試時,在頁面的提示中會出現帶有明顯的資料庫的表或者欄位的列印,或者會出現一些敏感詞,日誌裡面類似密碼,卡號,身份證號沒有相應的明密文轉換,而這些敏感詞/明密文不互轉的存在,就會導致攻擊者能夠獲取到,從而進行簡單粗暴的攻擊,輕易的攻擊伺服器或者資料庫,這就會危害到整個系統!
2、重複性
大部分的web網站都會有註冊功能,而類似我們負責支付這塊也都會有開 戶,就註冊跟開 戶,基本上需求上都會有唯一性的校驗,在前端就會進行攔截,但如果使用jmter進行引數以及引數值的新增,有可能新增成功,就會導致頁面系統裡面會出現相同資料,可能導致整個功能的出錯。
3、次數限制
類似發單,登入或者簡訊,如果沒有進行相應的限制,如簡訊,沒有進行限制次數,攻擊者就會透過簡訊轟炸,攻擊系統,導致系統癱瘓,其他客戶就會使用不了該系統。
4、越權測試
(基本上大部分系統都沒有明確的寫出越權方面的需求)一個web系統,一般位址列都會有引數的帶入,如:使用者號,訂單號或者是其他的一些引數,而在這個基礎上一個系統都會有很多使用者,或者很多等級,如:A大於B大於C,那我使用C使用者進行登入,檢視C使用者所屬的訂單,在位址列中會有訂單號的引數帶入,如果系統沒有進行相應的限制,此時C使用者就可以修改訂單號從而可以看到B乃至A使用者的資料,這就可能導致資料的洩露,再者,如果可以修改使用者的使用者號,沒有做處理,這樣就可以對所有資料進行操作,整個系統就亂了,影響很大。
5、SQL隱碼攻擊/XSS攻擊
主要是輸入框的校驗/攔截以及是否轉義,如果沒有系統沒有對輸入的內容進行處理,那攻擊者就可以輸入一段SQL語句,或者一段程式碼,在後臺進入到相應的功能,就會導致整個功能是錯亂的,其他正常使用者所提交的資料也檢視操作不了,或者提交的程式碼是死迴圈(">),就會關閉不掉,所以這點是非常重要的。
基本上上述的五點都是在測試中,系統真實存在,發生的問題,還有其他問題就不一一例舉了,其中越權跟SQL隱碼攻擊以及XSS攻擊都是重中之重!
三、克服的小困難
上面所述的都是需要人工進行手動參與,且人力操作時不會那麼飽滿全面,所以這是一個遇到的小問題。現在有一個針對web系統進行漏洞掃描的工具:AWVS,它透過網路爬蟲測試你的網站安全,檢測流行安全漏洞,針對漏洞主要分為四個等級:高危、中危,低危以及最佳化,它會進行內外連結的安全性,檔案是否存在以及傳輸是否安全,也包含SQL隱碼攻擊跟XSS攻擊,輸入地址,使用者名稱密碼後,進行掃描完成後會展示相應的資料:漏洞的數量,漏洞的描述,建議性的修復;掃描網站的時長,檔案資料量,環境資訊等,較為全面!
四、安全測試的思路跟框架
主要根據以下六點來實現一個較為完整的安全測試的思路,框架就是根據半手工、半自動來實現整個系統的驗證。
- 部署與基礎結構
- 輸入驗證
- /身份驗證(許可權驗證)
- 敏感資料
- 引數操作
- 稽核和日誌安全;
五、目前存在的問題/需要最佳化的
現在的安全測試大多是半手工、半自動化,但都不是專業級,所以還在摸索階段,只能儘可能地去發現系統中存在的漏洞,且測試理論很難適用於安全領域;
安全測試基礎理論薄弱,當前測試方法缺少理論指導,也缺乏更多的技術產品工具 ;
安全測試需要對系統所採用的技術以及系統的架構等進行分析,這方面也是較為薄弱的環節!
作者:王鵬飛
來源:宜信技術學院
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69918724/viewspace-2650924/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式設計師必須要了解的web安全程式設計師Web
- Web安全測試Web
- Web測試入門——軟體測試員必知的50個常見測試點Web
- 聊聊程式設計師面試時,那些必須注意的事情程式設計師面試
- 82天突破1000star,專案團隊梳理出軟體開源必須注意的8個方面
- 網站測試中需要測試的三個方面網站
- 什麼是Web安全?Web安全主要分為哪幾個方面?Web
- 測試必須學spring RESTful Service(上)SpringREST
- 測試必須學 spring RESTful Service (上)SpringREST
- 寫給軟體測試程式設計師:這5大點必須提起注意!程式設計師
- 【網路安全】你必須知道的幾個網路安全概念
- Web 端的測試 Selenium 用法必備Web
- Chrome瀏覽器必須開啟的五個設定Chrome瀏覽器
- 必須要會的 50 個 React 面試題React面試題
- 進大廠必須要會的單元測試
- 測試流程必須嚴格執行嗎?
- Web安全性測試Web
- 從五個方面入手,保障微服務應用安全微服務
- JS高階之面試必須知道的幾個點JS面試
- Web 開發必須掌握的三個技術:Token、Cookie、SessionWebCookieSession
- 7款滲透測試工具,你必須知道!
- 開發者測試:你必須知道 7 件事
- 影響靜態應用安全測試工具(SAST)分析速度的3個方面AST
- 【12】進大廠必須掌握的面試題-持續測試面試面試題
- 測試工作重複枯燥,必須成為測開才能避免?
- 軟體測試人員和QA必須關注的15個網站,值得收藏!網站
- 50個你必須瞭解的Kubernetes面試問題面試
- 24個必須掌握的資料庫面試問題~資料庫面試
- 在做自動化測試之前你必須要知道的事
- 年薪50萬的Web前端大牛,必須經歷的3個階段!Web前端
- 在未來,軟體測試工程師必須熟通這八個技能!工程師
- 測試工程師必須要會寫程式碼嗎?工程師
- 測試人員為什麼必須要會 LinuxLinux
- 誰來教我滲透測試——黑客必須掌握的Linux基礎黑客Linux
- 軟體測試必須掌握的 http 網路協議知識HTTP協議
- 軟體測試必須掌握的http網路協議知識HTTP協議
- 【分享】Postman介面測試實戰分享,這5個問題你必須得知道!Postman
- 必須掌握的10個Linux命令!Linux