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