論述:此教程只做技術交流,切勿用於其它相關用途。
本人所讀大學是那種環境措施等都比較好的,畢竟學費也很貴的,至於相關名稱我就不說了。記得大一的時候我們還是在宿舍刷卡飲水,後面有人大量在某寶買卡後,廠家不得不採取相關措施。最後改成了用藍牙連接,下載APP充值飲水的這麼個流程。
雖然此教程有點屬於Python黑客性質,但方法無非都是抓包,與Python知識的應用。(文末更精彩)
在這裏還是要推薦下我自己建的Python開發學習羣:304050799,羣裏都是學Python開發的,如果你正在學習Python ,小編歡迎你加入,大家都是軟件開發黨,不定期分享乾貨(只有Python軟件開發相關的),包括我自己整理的一份2018最新的Python進階資料和高級開發教程,歡迎進階中和進想深入Python的小夥伴
此Python黑客教程分爲三個相關步驟
1、利用fd分析與實戰
要實現欲達到的功能,必須要先了解它的APP吧?app主界面:
邏輯步驟:
打開app後用手機藍牙功能與飲水機連接。
如果餘額大於10則先轉10塊餘額到預扣款裏,如果小於10則全部扣除。(每個地方的都會有所差異,具體看實際情況)
飲水機上顯示10元,也就是你的預扣款爲10,飲水機自動出水。
飲水機上的金額隨着用水量增加而自動減少
結束用水,飲水機上顯示的金額就是所剩餘額,將返還給APP內
然後我們接着利用fiddler抓取手機app向服務器的HTTP請求內容,抓包。
app啓動時的HTTP數據請求如下所示:
想要知道這些請求都是做什麼的,可以看網站的響應內容,或者請求的get請求的內容以及post請求的內容,由圖中fiddler右下角的“Message=未發現版本”能夠知道http請求應該是檢查更新的請求。
很多利用“fiddler”都是改金額,用水讓它的金額發生改變試試。
先按“點擊開始用水”按鈕
app截圖:
fiddler的http請求
app內餘額6<10,所以全部轉到了預扣款裏,飲水機上顯示餘額爲6.00元,由上圖可以知fiddler的http請求一共有4個,而且我們可以看出http請求沒有與服務器發生有關金額的信息交互。紅色標記“00A3AAAF”是這次交易的訂單號,這個是關鍵點。
關鍵步驟,結束用水讓APP退還所用餘額。
app截圖
fiddler抓取到的金額數據:
前面用紅色標記起來的訂單號在結賬返還金額的時候用到了,別去修改它。bal的值很明顯爲退還金額值,可以把它改爲預扣款金額6,接着就會成功退還預扣款!有多少次http請求返回的餘額,就修改幾次。
點擊“確認結賬”按鈕刷新,餘額就能變回6元。
2、Python&burp搭建代理服務器
fiddler雖然可以利用漏洞,但每次都要手動去修改,用Python寫個自動化Exp腳本會方便很多。
設置好burpsuite後,運行Python代碼實現代理服務。
3、Python實現自動化exp
將Python代碼改成app的漏洞利用工具。
Python代碼如圖所示
訂單號包含在URL中,非常方便。
header請求頭的使用
有了憑證後,就非常容易實現欲達到的效果了
服務器返回的是json形式,那麼用Python的eval,獲取對應鍵值即可。
接着執行欺騙,“結賬”請求: