Java Web安全之程序邏輯缺陷

  Java Web程序邏輯缺陷本質是因爲程序設計和開發者設計的程序執行邏輯存在某種缺陷而致使的安全隱患。企業的代碼審查和滲透測試一般主要針對的大可能是諸如xss攻擊和sql注入和跨站點腳本這些頭條式漏洞,而因爲程序邏輯缺陷致使的安全問題一般被忽略,測試中也很難辨別,即便是最簡單的web網站系統中也包含無數的邏輯操做,而這些程序執行邏輯常常被攻擊者利用。如下描述一些web常見的程序邏輯缺陷。web

  1)核心業務令牌加密算法泄漏,企業有嚴格安全加密需求的核心業務與普通業務加密共用一套加密算法,且經過「加解密提示漏洞」或者普通業務加解密值暴露間接泄露了核心業務的加密算法;算法

  2)相似訂單結算等須要在按序完成多階段請求訪問以後才能實現處理的特殊功能,開發者在客戶端控制下單流程,並假設全部用戶均會遵循這些流程按序操做,並未在後序階段操做前做強校驗。而實際狀況是攻擊者一般能夠利用強制瀏覽技術手段跳過前一個階段頁面的導航直接在未支付的狀況下進行下單結算;sql

  3)密碼修改,普通用戶密碼修改與管理員修改普通用戶密碼共用一個接口,且接口邏輯經過客戶端提交的請求參數判斷用戶類型,例如普通用戶需輸入舊密碼,新密碼以及確認密碼,而管理員修改用戶密碼只需輸入新密碼,這將可能致使普通用戶能夠修改任意其餘用戶的密碼進而獲取他們的帳號信息;安全

  4)因爲程序邏輯設計問題,用戶經過身份認證驗證以後可經過訪問其餘接口修改會話中我的的身份信息爲其餘用戶,進而提高普通用戶的水平和垂直權限。在一個須要隔離水平與垂直權限的場景開發者與測試人員尤爲須要注意因爲訪問接口致使的「用戶狀態信息累積」引發的應用程序行爲變化,並評估這種變化可能帶來的風險。xss

相關文章
相關標籤/搜索