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