最近忙于工作沒有抽出時間來分享滲透測試文章,索性今天由我們Sinesafe的高級滲透大牛給大家詳細講下主要在業(yè)務中發(fā)現(xiàn)邏輯和越權的漏洞檢測方法,希望大家能對自己的網(wǎng)站安全進行提前預防和了解,再次提醒做安全測試前必須要有正規(guī)的授權才能進行測試,提供網(wǎng)站的安全性保障權益。
3.11.1. Xpath定義
XPath注入攻擊是指利用XPath解析器的松散輸入和容錯特性,能夠在 URL、表單或其它信息上附帶惡意的XPath 查詢代碼,以獲得權限信息的訪問權并更改這些信息。XPath注入攻擊是針對Web服務應用新的攻擊方法,它允許攻擊者在事先不知道XPath查詢相關知識的情況下,通過XPath查詢得到一個XML文檔的完整內(nèi)容。
3.11.2. Xpath注入攻擊原理
XPath注入攻擊主要是通過構(gòu)建特殊的輸入,這些輸入往往是XPath語法中的一些組合,這些輸入將作為參數(shù)傳入Web 應用程序,通過執(zhí)行XPath查詢而執(zhí)行入侵者想要的操作,下面以登錄驗證中的模塊為例,說明 XPath注入攻擊的實現(xiàn)原理。
在Web 應用程序的登錄驗證程序中,一般有用戶名(username)和密碼(password) 兩個參數(shù),程序會通過用戶所提交輸入的用戶名和密碼來執(zhí)行授權操作。若驗證數(shù)據(jù)存放在XML文件中,其原理是通過查找user表中的用戶名 (username)和密碼(password)的結(jié)果來進行授權訪問,
例存在user.xml文件如下:
Ben
Elmore
abc
test123
Shlomy
Gantz
xyz
123test
則在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 并將一直允許攻擊者訪問系統(tǒng)。攻擊者可以利用 XPath 在應用程序中動態(tài)地操作 XML 文檔。攻擊完成登錄可以再通過XPath盲入技術獲取最高權限帳號和其它重要文檔信息。
3.12. 邏輯漏洞 / 業(yè)務漏洞
3.12.1. 簡介
邏輯漏洞是指由于程序邏輯不嚴導致一些邏輯分支處理錯誤造成的漏洞。
在實際開發(fā)中,因為開發(fā)者水平不一沒有安全意識,而且業(yè)務發(fā)展迅速內(nèi)部測試沒有及時到位,所以常常會出現(xiàn)類似的漏洞。
3.12.2. 安裝邏輯
查看能否繞過判定重新安裝
查看能否利用安裝文件獲取信息
看能否利用更新功能獲取信息
3.12.3. 交易
3.12.3.1. 購買
修改支付的價格
修改支付的狀態(tài)
修改購買數(shù)量為負數(shù)
修改金額為負數(shù)
重放成功的請求
并發(fā)數(shù)據(jù)庫鎖處理不當
3.12.3.2. 業(yè)務風控
刷優(yōu)惠券
套現(xiàn)
3.12.4. 賬戶
3.12.4.1. 注冊
覆蓋注冊
’嘗試重復用戶名
注冊遍歷猜解已有賬號
3.12.4.2. 登錄
撞庫
賬號劫持
惡意嘗試帳號密碼鎖死賬戶
3.12.4.3. 找回密碼
重置任意用戶密碼
密碼重置后新密碼在返回包中
Token驗證邏輯在前端
3.12.4.4. 修改密碼
越權修改密碼
修改密碼沒有舊密碼驗證
3.12.5. 驗證碼
驗證碼強度不夠
驗證碼無時間限制或者失效時間長
驗證碼無猜測次數(shù)限制
驗證碼傳遞特殊的參數(shù)或不傳遞參數(shù)繞過
驗證碼可從返回包中直接獲取
驗證碼不刷新或無效
驗證碼數(shù)量有限
驗證碼在數(shù)據(jù)包中返回
修改Cookie繞過
修改返回包繞過
圖形驗證碼可OCR或使用機器學習識別
驗證碼用于手機短信/郵箱轟炸
3.12.6. Session
Session機制
Session猜測
Session偽造
Session泄漏
Session Fixation
3.12.7. 越權
水平越權
攻擊者可以訪問與他擁有相同權限的用戶的資源
權限類型不變,ID改變
垂直越權
低級別攻擊者可以訪問高級別用戶的資源
權限ID不變,類型改變
交叉越權
權限ID改變,類型改變
3.12.8. 隨機數(shù)安全
使用不安全的隨機數(shù)發(fā)生器
使用時間等易猜解的因素作為隨機數(shù)種子
3.12.9. 其他
用戶/訂單/優(yōu)惠券等ID生成有規(guī)律,可枚舉
接口無權限、次數(shù)限制
加密算法實現(xiàn)誤用
執(zhí)行順序
敏感信息泄露
3.13. 配置安全
3.13. 配置安全
弱密碼
位數(shù)過低
字符集小
為常用密碼
個人信息相關(手機號 生日 姓名 用戶名)
使用鍵盤模式做密碼
敏感文件泄漏
.git
.svn
數(shù)據(jù)庫
Mongo/Redis等數(shù)據(jù)庫無密碼且沒有限制訪問
加密體系
在客戶端存儲私鑰
三方庫/軟件
公開漏洞后沒有及時更新,如果對此有進一步的想加強網(wǎng)站安全性以及滲透測試服務,可以咨詢專業(yè)的網(wǎng)站安全公司來處理解決,國內(nèi)推薦Sine安全,啟明星辰,綠盟等等專業(yè)的安全公司。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!