某app請求參數分析

前言

這篇的前言有點冗長了,趕時間的朋友可以直接跳過。

 

記得還在讀大學的時候,我就開始在網上到處找網絡安全相關的知識,吾愛破解,看雪,飄雲閣,hack80,i春秋,seebug,知道創宇,補天網啥的,要找個東西,能想到的平臺都去搜,找到的雖然基本都很老的東西,但是對於小白的我來說,是真的有用,尤其是i春秋裏的課程,我現在成爲一個開發者,是看了一篇文章決定的,這篇文章就是當時還在知道創宇的餘玹大佬發的信息安全技能樹,自此之後走向了一條不歸路,鏈接:https://blog.knownsec.com/Knownsec_RD_Checklist/v3.0.html

https://evilcos.me/security_skill_tree_basic/index.html

 

大學畢業沒幾個月,因爲專業對口的工作不滿意,我開始自學開發,在自學期間,我一個大學同學找到我,說她被騙了兩千多(99+399+599+899,別問我過去這麼久了爲啥還記得這麼清除,因爲我這裏都還有轉賬記錄),問我能不能搞。過程我就不細說了,結果就是我幫她找回來了並給了她。

然後她順便跟我說了整個被騙的過程,就是在Q羣,微信羣,有所謂的兼職,工作是快遞單號填寫,打字員之類的,你加完qq去聊,他先跟你說保證絕對免費之類的,玩的就是各種話術了,最後大部分人都會被騙的,其中他們是用某語音在聊天,然後這個app只會保存幾天的消息(現在改沒有就不知道了),聊天記錄時間長了就會自動清除,所以你如果報警,聊天記錄已經不好提供了(截圖的話,我聽說是不太具有可信度的,因爲可以p圖)

 

然後這個某語音app就是今天的目標了,當時我同學是很想舉報這個軟件的,這個app網上搜,應用市場裏的評論基本都說是騙子啥的,大部分被騙案例在那段時間裏也確實用的這個軟件,我個人覺得,當時來看,這個軟件的歸屬者一定有責任的,該平臺沒有舉報中心,沒有審覈機制,誰都可以在裏面發消息,發的詐騙消息他們也不管的。

 

如今突然想起來這個app,當時的我還不會app逆向,再看它,感覺整改過了,所以還得多虧有關部門這幾年來的嚴厲打擊網絡犯罪啊

 

 

聲明下,這個app本身不存在詐騙,因爲裏面沒有金融類功能,是通過微信轉賬的,只是涉及詐騙的人在使用這個app

 

 

分析

 

老辦法,打開charles,打開postern轉發,打開app,開始抓包

 

1.短信驗證碼獲取接口

 

 

 

 

 

這個請求參數的type爲md5就有點意思,直接就給我們提示了,哈哈哈哈。

 

2.登錄接口:

 

 

 

同時發現這個登錄接口有抓包檢測,開着postern一直顯示登錄中 

 

3.用戶信息接口:

 

 

 

 

4.廣場列表接口:

 

 

 

 

 

5.滾動頭條接口:

 

 

 

 

 

6.直播間推薦接口

 

 

 

 

 

 

 

 

 

7.首頁banner滾動接口:

 

 

 

 

 

8.工會接口:

 

 

 

 

9.關注列表:

 

 

 

 

10.直播列表:

 

 

 

 

隨便點開一個直播間,直播間請求參數類型是octet-stream,多半是protobuf了,這個直接用blackboxprotobuf庫就可以了,我看到這個數據提交都沒有加密參數,我就沒去研究了

 

聊天接口也是,就是tcp協議的傳輸,也不去看了

 

細心的朋友發現了,除了聊天和直播以外的接口,其他的接口請求數據基本都有帶有這個sign,這次的重點就是上面的接口裏的sign了。

 

 

參數定位

 

老路子,打開jadx或者jeb分析一波再說,打開一看,臥槽,有殼

 

 

 

那得先脫殼一波,脫殼過程就略過了,你懂的。

 

沒過多久,脫殼成功,文件如下:

 

 

然後用jadx打開,直接搜sign,兩百多個,也還好,排除掉這個app用的第三方sdk的包名的,剩下的沒幾個

 

 

 

隨便找幾個,指向的都是這個一段,因爲這個是脫殼後編譯出來的,沒法編譯出安卓樣式的代碼,不過看邏輯倒是能看懂

 

 

看完邏輯,說明sign就是掉的這個xxx.getSign方法,進入這個方法看看,同樣的沒法正常編譯,問題不大,基本還是看得懂

 

調試

 

那先不廢話,直接hook一下就知道了,hook代碼如下,用attatch模式啓動,然後這邊app刷新下,結果數據如下:

 

 

爲了驗證確實是,再看看charles這邊的結果,直接拿到最後一個打印出來的返回值搜,確實有

 

 

 

 

 

 

那就ojbk了,這麼簡單?當我正準備接着看邏輯的,時候,app直接閃退了:

 

 

還是可以,至少還有點反調試的套路,看看進程,這就一目瞭然了

 

 

 

 

還是有點東西,不過東西不多,我還是能hook上,這個不重要,我都已經跟到邏輯了,接着再看下最後的結果:

 

 

 

所以,實際傳的確實是兩個參數,但是,jadx看到的方法體裏,是三個參數,同時看這個邏輯,就很奇怪,怎麼直接就return r3了,都沒看到進入後面的邏輯啊

 

按理應該0009走了之後會走0016,但是並沒有,奇怪

 

 

 

 

這個不管了, 應該是脫殼出來的效果不太好

 

那就用objection看看實際的方法體吧,不是說objection 對於java層來說簡直是嘎嘎亂殺嗎?

 

 

 

結果看到沒有,臥槽,這應該是加固過的原因,這就有點意思了啊

 

行,因爲有個sign_type已經給了提示是md5,接着再看剛纔那個方法體,其實就是加了鹽的md5

 

 

 

但爲了驗證一下,還是hook 這個xxxx.md5看看,變成了啥

 

 

 

 果然了,那至於這個代碼邏輯爲啥看着有點怪,不糾結了,能搞定問題就行了。沒想到這麼簡單,嘻嘻嘻

 

 

還原代碼我就不貼了吧,就是加鹽的md5,from hashlib import md5就搞定的事,就不多逼逼了

 

結語

 

這個app對於很多朋友來說簡直分分鐘,可能直接都懶得寫hook代碼,看源碼都能看懂了,大佬應該都不屑於看。我發出來的想法是,記錄過去,憧憬未來,最近一直在研究app,突然想起了它,同時也剛好有了能拿下它的能力,嘿嘿

 

另外,因爲某些原因,我暫時沒有做安全了,所以涉及到詐騙的事,哥哥們不用找我了,我也沒精力管了,遇到問題可以打報警電話的,可以裝個國家反詐中心app(我之前呆過的某安全公司參與過的項目)

 

下期再見!

 

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