您好,登錄后才能下訂單哦!
Web項目比較常見的安全問題
1.XSS(CrossSite Script)跨站腳本
XSS(CrossSite Script)跨站腳本。它指的是惡意往Web 頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web 里面的html 代碼會被執行,從而達到惡意用戶的特殊目的。
測試方法:在數據輸入界面,添加記錄輸入:,添加成功如果彈出對話框,表明此處存在一個XSS 漏洞。或把url請求中參數改為,如果頁面彈出對話框,表明此處存在一個XSS 漏洞
修改建議:過濾掉用戶輸入中的危險字符。對輸入數據進行客戶端和程序級的校驗(如通過正則表達式等)。Eg:對用戶輸入的地方和變量有沒有做長度和對”<”,”>”,”;”,”’”等字符是否做過濾
2.CSRF與跨站腳本(XSS)
CSRF與跨站腳本(XSS),是指請求迫使某個登錄的瀏覽器向易受的Web應用發送一個請求,然后以受害者的名義,為者的利益進行所選擇的行動。
測試方法:同個瀏覽器打開兩個頁面,一個頁面權限失效后,另一個頁面是否可操作成功,使用工具發送請求,在http請求頭中不加入referer字段,檢驗返回消息的應答,應該重新定位到錯誤界面或者登陸界面。
修改建議:在不同的會話中兩次發送同一請求并且收到相同的響應。這顯示沒有任何參數是動態的(會話標識僅在cookie 中發送),因此應用程序易受到此問題。因此解決的方法為:
(1) Cookie Hashing(所有表單都包含同一個偽隨機值):
(2) 驗證碼
(3) One‐Time Tokens(不同的表單包含一個不同的偽隨機值)客戶端保護措施,應用防止CSRF的工具或插件。
3.注入測試
SQL注入是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
測試方法:在需要進行查詢的頁面,輸入正確查詢條件 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或者直接使用存儲過程進行數據查詢存取;
不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接;
應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝。
4.登錄認證測試
4.1暴力破解
暴力破解是目前最直接有效的方式,特別對于金融業務來說,很多情況下口令都為6位純數字,很容易被。本測試項在于檢查認證系統對破解的防護性。
測試方法:
啟動抓包工具,同時打開瀏覽器輸入用戶登錄頁面,輸入用戶名、密碼以及驗證碼,進行登錄,如果在抓包中存在明文的用戶名和密碼,說明存在弱點。
修改建議:將請求方式從HTTP方式修改為HTTPS方式或者對輸入的用戶名和密碼進行加密,在服務端對密碼進行驗證
4.2代碼注釋
開發版本的Web程序所帶有的注釋在發布版本中沒有被去掉,而導致一些敏感信息的泄漏。我們要查看客戶端能看到的頁面源代碼并發現此類安全隱患。
測試方法:打開登陸頁面(或者待測試頁面),點擊瀏覽器郵件,查看源代碼,檢查源代碼注釋部分是否有敏感信息泄露,敏感信息包括以下內容:字段文字描述、內網 IP 地址、SQL 語句以及物理路徑等等。
修改建議:請勿在HTML 注釋中遺留任何重要信息(如文件名或文件路徑)。
從生產站點注釋中除去以前(或未來)站點鏈接的跟蹤信息。避免在HTML 注釋中放置敏感信息。確保HTML 注釋不包括源代碼片段。
4.3 用戶名破解
為了進行暴力破解,者需要知道已存在的用戶名,再對該用戶名進行。
測試方法:在登錄界面輸入不存在的用戶名和任意的口令,如果提示用戶名不存在,則說明存在漏洞;使用正確的用戶名和錯誤的口令進行登錄,如果提示口令或密碼錯誤,則說明存在漏洞。
修改建議:服務器對所有的登陸錯誤原因進行統一的應答,不會提示準確的錯誤提示信息。
4.4默認賬戶名稱設置
一般系統均設有默認登錄用戶,以及超級管理員賬號,如登錄賬號過于簡單將易被破解,造成超級權限泄露。
修改建議:上線系統清除超級管理員權限用戶,或增加超級管理員登錄名復雜度,不要設置成易猜測的admin、superadmin等名稱。
4.5 錯誤的頁面信息
404、500等錯誤或警告消息,可能會泄露敏感信息。
修改建議:捕獲異常跳轉至統一錯誤頁面,避免對外泄漏詳細錯誤信息。
5.會話管理測試未更新
5.1會話標識測試
查看登錄成功后會話標識是否變更。如果未變更,那么者就可以通過一些手段(如構造URL)為受害著確定一個會話標識,當受害者登錄成功后,者也可以利用這個會話標識冒充受害者訪問系統。
測試方法:啟動抓包工具或瀏覽器自帶開發者模式打開登錄頁面,輸入正確的用戶名、口令以及驗證碼,進行登錄,登錄后,進行任意一項業務操作。如果登錄的SessionId和進行業務的SessionId沒有變化,則說明存在漏洞。
修改建議:對每次請求都從上次請求獲得令牌,服務端對每次交互都進行驗證
查看是否存在瀏覽器窗口閑置超時后需重新登錄的機制
5.2會話清除測試
用戶注銷后會話信息需要清除,否則會導致用戶在點擊注銷按鈕之后還能繼續訪問注銷之前才能訪問的頁面。
測試方法:進入登錄頁面,輸入正確的用戶名和密碼,登錄成功后,進行一些業務操作,點擊注銷按鈕,在瀏覽器輸入地址,輸入上面進行業務操作的地址,如果能夠正常返回業務頁面,則說明存在漏洞。
修改建議:在用戶注銷后,必須將用戶的Session信息以及緩存信息全部清空。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。