邏輯注入漏洞滲透測試檢測辦法
最近忙於工作沒有抽出時間來分享滲透測試文章,索性今天由我們Sinesafe的高階滲透大牛給大家詳細講下主要在業務中發現邏輯和越權的漏洞檢測方法,希望大家能對自己的網站安全進行提前預防和了解,再次提醒做安全測試前必須要有正規的授權才能進行測試,提供網站的安全性保障權益。
3.11.1. Xpath定義
XPath注入攻擊是指利用XPath解析器的鬆散輸入和容錯特性,能夠在 URL、表單或其它資訊上附帶惡意的XPath 查詢程式碼,以獲得許可權資訊的訪問權並更改這些資訊。XPath注入攻擊是針對Web服務應用新的攻擊方法,它允許攻擊者在事先不知道XPath查詢相關知識的情況下,透過XPath查詢得到一個XML文件的完整內容。
3.11.2. Xpath注入攻擊原理
XPath注入攻擊主要是透過構建特殊的輸入,這些輸入往往是XPath語法中的一些組合,這些輸入將作為引數傳入Web 應用程式,透過執行XPath查詢而執行入侵者想要的操作,下面以登入驗證中的模組為例,說明 XPath注入攻擊的實現原理。
在Web 應用程式的登入驗證程式中,一般有使用者名稱(username)和密碼(password) 兩個引數,程式會透過使用者所提交輸入的使用者名稱和密碼來執行授權操作。若驗證資料存放在XML檔案中,其原理是透過查詢user表中的使用者名稱 (username)和密碼(password)的結果來進行授權訪問,
例存在user.xml檔案如下:
<users>
<user>
<firstname>Ben</firstname>
<lastname>Elmore</lastname>
<loginID>abc</loginID>
<password>test123</password>
</user>
<user>
<firstname>Shlomy</firstname>
<lastname>Gantz</lastname>
<loginID>xyz</loginID>
<password>123test</password>
</user>
則在XPath中其典型的查詢語句如下:
//users/user[loginID/text()=’xyz’and password/text()=’123test’]
但是,可以採用如下的方法實施注入攻擊,繞過身份驗證。如果用 戶傳入一個 login 和 password,例如 loginID = ‘xyz’ 和 password = ‘123test’,則該查詢語句將返回 true。但如果使用者傳入類似 ‘ or 1=1 or ”=’ 的值,那麼該查詢語句也會得到 true 返回值,因為 XPath 查詢語句最終會變成如下程式碼:
//users/user[loginID/text()=”or 1=1 or ”=” and password/text()=” or 1=1 or ”=”]
這個字串會在邏輯上使查詢一直返回 true 並將一直允許攻擊者訪問系統。攻擊者可以利用 XPath 在應用程式中動態地操作 XML 文件。攻擊完成登入可以再透過XPath盲入技術獲取最高許可權帳號和其它重要文件資訊。
3.12. 邏輯漏洞 / 業務漏洞
3.12.1. 簡介
邏輯漏洞是指由於程式邏輯不嚴導致一些邏輯分支處理錯誤造成的漏洞。
在實際開發中,因為開發者水平不一沒有安全意識,而且業務發展迅速內部測試沒有及時到位,所以常常會出現類似的漏洞。
3.12.2. 安裝邏輯
- 檢視能否繞過判定重新安裝
- 檢視能否利用安裝檔案獲取資訊
- 看能否利用更新功能獲取資訊
3.12.3. 交易
3.12.3.1. 購買
- 修改支付的價格
- 修改支付的狀態
- 修改購買數量為負數
- 修改金額為負數
- 重放成功的請求
- 併發資料庫鎖處理不當
3.12.3.2. 業務風控
- 刷優惠券
- 套現
3.12.4. 賬戶
3.12.4.1. 註冊
- 覆蓋註冊
- ’嘗試重複使用者名稱
- 註冊遍歷猜解已有賬號
3.12.4.2. 登入
- 撞庫
- 賬號劫持
- 惡意嘗試帳號密碼鎖死賬戶
3.12.4.3. 找回密碼
- 重置任意使用者密碼
- 密碼重置後新密碼在返回包中
- Token驗證邏輯在前端
3.12.4.4. 修改密碼
- 越權修改密碼
- 修改密碼沒有舊密碼驗證
3.12.5. 驗證碼
- 驗證碼強度不夠
- 驗證碼無時間限制或者失效時間長
- 驗證碼無猜測次數限制
- 驗證碼傳遞特殊的引數或不傳遞引數繞過
- 驗證碼可從返回包中直接獲取
- 驗證碼不重新整理或無效
- 驗證碼數量有限
- 驗證碼在資料包中返回
- 修改Cookie繞過
- 修改返回包繞過
- 圖形驗證碼可OCR或使用機器學習識別
- 驗證碼用於手機簡訊/郵箱轟炸
3.12.6. Session
- Session機制
- Session猜測
- Session偽造
- Session洩漏
- Session Fixation
3.12.7. 越權
- 水平越權
- 攻擊者可以訪問與他擁有相同許可權的使用者的資源
- 許可權型別不變,ID改變
- 垂直越權
- 低階別攻擊者可以訪問高階別使用者的資源
- 許可權ID不變,型別改變
- 交叉越權
- 許可權ID改變,型別改變
3.12.8. 隨機數安全
- 使用不安全的隨機數發生器
- 使用時間等易猜解的因素作為隨機數種子
3.12.9. 其他
- 使用者/訂單/優惠券等ID生成有規律,可列舉
- 介面無許可權、次數限制
- 加密演算法實現誤用
- 執行順序
- 敏感資訊洩露
3.13. 配置安全
3.13. 配置安全
- 弱密碼
- 位數過低
- 字符集小
- 為常用密碼
- 個人資訊相關(手機號 生日 姓名 使用者名稱)
- 使用鍵盤模式做密碼
- 敏感檔案洩漏
- .git
- .svn
- 資料庫
- Mongo/Redis等資料庫無密碼且沒有限制訪問
- 加密體系
- 在客戶端儲存私鑰
- 三方庫/軟體
- 公開漏洞後沒有及時更新,如果對此有進一步的想加強網站安全性以及滲透測試服務,可以諮詢專業的網站安全公司來處理解決,國內推薦Sine安全,啟明星辰,綠盟等等專業的安全公司。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542418/viewspace-2660303/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網站漏洞檢測 滲透測試檢測手法網站
- 網站滲透測試安全檢測漏洞網站
- 滲透測試對檔案包含漏洞網站檢測網站
- APP安全測試 該如何滲透檢測APP存在的漏洞APP
- 滲透測試網站安全漏洞檢測大體方法網站
- 滲透測試之CSRF程式碼漏洞的檢測與加固方案
- 網站安全測試之APP滲透測試漏洞網站APP
- 網站滲透測試安全檢測方案網站
- 滲透測試公司 對於越權漏洞的檢測與修復
- 網站被攻擊滲透測試出漏洞怎麼辦網站
- 網站漏洞滲透測試覆盤檢查結果分析網站
- 滲透測試會用到哪些工具?滲透測試教程
- 如何學習網站漏洞滲透測試學習網站
- 微信小程式之滲透測試、加固、安全檢測微信小程式
- 軟體滲透測試基礎知識分享,可做滲透測試的軟體檢測公司有哪些?
- Linux滲透測試Linux
- Metasploit滲透測試指南
- 滲透測試-資訊收集
- 滲透測試報告測試報告
- 【滲透測試】Vulnhub DarkHole
- 網站滲透測試漏洞分析程式碼架構網站架構
- 伺服器滲透測試之攻擊漏洞方法伺服器
- 記學習滲透測試之漏洞掃描一
- 記學習滲透測試之漏洞掃描二
- 滲透測試網站sql注入攻擊與防護網站SQL
- 滲透測試對網站漏洞修復執行命令重點檢查網站
- 網站安全滲透測試檢測認證登入分析網站
- 滲透測試公司 對PHP網站安全後門檢測PHP網站
- 網路安全滲透測試的型別!滲透測試入門教程型別
- 滲透測試什麼?滲透測試具體操作流程是什麼
- Android滲透測試Android滲透測試入門教程大學霸Android
- 安全測試和滲透測試的區別
- 什麼是滲透測試?網站有必要進行滲透測試嗎?網站
- APP滲透測試 深入挖掘漏洞以及如何防止攻擊APP
- 網站安全公司 滲透測試中的漏洞資訊蒐集網站
- 記學習滲透測試之漏洞掃描簡述
- 滲透測試與漏洞掃描有什麼區別?
- 滲透測試常見漏洞有哪些?如何有效防範?