記錄一些邏輯漏洞案例

CanMeng'Blog發表於2020-11-29

最近在總結邏輯漏洞相關的材料,翻到自己的一些滲透測試報告,便從中摘取一些有意思的邏輯漏洞挖掘實戰案例拿出來分享一下!很多大表哥已經寫過關於邏輯漏洞的詳細介紹,簡訊轟炸、任意密碼重置到“0元”購買商品等等都是典型的案例,大表哥們的姿勢也都很豐富,我就不班門弄斧了。下文只是將實戰過程中遇到的一些比較有意思的案例記錄下來,和大表哥們一起分享,請表哥們輕噴。

1.繞過XX平臺邀請碼序號產生器制

國內某手機廠商的開發者社群存在邀請碼序號產生器制,需要有邀請碼後方可完善資料,但無奈本社畜沒有,也不能問人要,問了人家也不會給我。
1.png
點選“完善資訊”,抓資料包,在提示框中輸入“邀請碼”——我隨意填寫了000000,接著點選“提交”,此時抓取該資料包並放行,然後修改響應資料包中的資料,將{“code”:0,“data”:false}改為{“code”:0,“data”:true},放行後,發現瀏覽器已經可以到註冊頁面進行身份資訊的註冊了,如下圖所示:
2.png
3.png
4.png

2.某商城0元購買商品

某商城結算時,抓取資料包,修改總金額、商品數量等均無法繞過限制,實現0元購買。接著,修改了快遞方式,選擇到付時需要支付一定的費用(類似於快遞費等),此時提交訂單,抓取資料包,將該費用修改為負數,伺服器響應交易成功,且無需支付任何費用:
5.png
6.png
7.png

3.某平臺“修改”任意帖子

參加某企的眾測專案,遇到一個很奇怪的邏輯漏洞(越權)。該站點有發帖功能,測試時註冊了兩個賬號,首先,A賬號登入後,修改自己發的帖子,點選修改,抓取資料包,將keyID改為賬號B的某個帖子的keyID,放行後,帖子就變了賬號B的了。那如何讓別人的帖子變成我們的吶?那就涉及下面的這個漏洞了!
這個漏洞,發現的也是很偶然。關於上一段的漏洞,經過一陣子的頭腦風暴,想不出很好的辦法。看到有個“懸賞”的功能,使用賬號A修改一個帖子,點選“是否懸賞”,然後抓包,修改keyID,將其改為賬號B的某個帖子的的keyID,放行;然後,正確修改帖子的資訊後,點選“修改”,完成後,賬號B的這個帖子就變成了A賬號的了。
8.png
9.png

4.某考試平臺匯出任意成績單

某平臺的考試管理中,可以匯出該賬號的考試成績單。接著,發現修改考試專案的ID,即URL中的http://xxxx.com/cand/export_mark/100222/10000726中100222,修改為其他使用者的ID,測試時使用了100202,發現可以檢視,但由於有些場次不屬於該ID的,故而去爆破了最後一個ID,即上述URL中的10000726,得到了如下的結果:
10.png
11.png
整個過程中,先利用連結http://xxxx.com/cand/export_mark/100222/10000443爆破第一個引數(即此處的100202)得到存在的考試專案;接著,利用這個專案的ID組成新的URL,如http://xxxx.com/cand/export_mark/100202/10000443,再對最後的考試場次(即此處的10000443)進行爆破,獲得屬於100202專案的場次,這樣,即可獲得所有的考試的考試成績、名單和照片等敏感資訊。

5.複雜的“使用者標識”與狗屎運

這個漏洞相對上述4個而言,運氣成分佔了大部分。在某個掛號系統眾測中,檢視測試賬號的“我的問診”,發現資料包的body中包含一個mainid引數,經過測試發現該請求將根據mainid值返回當前使用者的問診記錄資訊。但這個值是隨機生成的,沒有規律,則無法通過遍歷獲取其他賬戶的問診記錄。
12.png
在瀏覽某個醫生的主頁時,頁面下方有評論以及患者諮詢記錄。而在BurpSuite中,發現響應中包含了醫生和患者的個人敏感資訊,其中就包括這個mainid值:
13.png
將這些mainid替換到“我的問診”資料包中,獲取到了這些患者的就診記錄。另外,發現問診記錄中與醫生的聊天記錄亦可通過修改該id檢視任意使用者的聊天記錄:
14.png
15.png
如果表述有不正確的地方,請表哥們斧正。謝謝!

相關文章