Python爆破校園飲水機系統,喝水還要花錢?不存在的,免費飲水!


論述:此教程只做技術交流,切勿用於其它相關用途。

本人所讀大學是那種環境措施等都比較好的,畢竟學費也很貴的,至於相關名稱我就不說了。記得大一的時候我們還是在宿舍刷卡飲水,後面有人大量在某寶買卡後,廠家不得不採取相關措施。最後改成了用藍牙連接,下載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,獲取對應鍵值即可。

接着執行欺騙,“結賬”請求:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章