看我騷操作‘破解’某查查app的sign以及某眼查的Authorization!!!
這裏要用到的工具/開發語言:
1.Python(2或者3)
2.App爬蟲神器mitmproxy
3.按鍵精靈
4.還有之前的強制抓包工具postern
之前經過逆向以及抓包等分析,發現這兩個app的sign以及author等最爲重要,而且還綁定了時間戳,這就導致我們如果不分析其加密算法就比較抓數據,但是最後通過測試發現如下:
- 企查查的sign和時間戳有關
- sign和用於任何一個url
- sign短時間不會失效
- 天眼查的Authorization也和時間戳有關
- Authorization也是短時間內不會失效
- Authorization也可以用於任何url
通過以上發現,就其實很簡單的把這些用起來。。。。如何做??看下面的騷操作
手機上的操作
設備:華爲榮耀6x
安卓版本:6.0
是否root: root
是否有xposed:有
安裝企查查最新版和天眼查最新版、按鍵精靈最新版,最後是postern這個軟件,postern這個需要自己配置,最後用到的時候再說。
電腦上的操作(我這裏是mac,win也一樣的操作,這裏都會安裝python環境以及都會寫python)
1. 介紹mitmproxy
以下引用自Hugo
顧名思義,mitmproxy 就是用於 MITM 的 proxy,MITM 即中間人攻擊(Man-in-the-middle attack)。用於中間人攻擊的代理首先會向正常的代理一樣轉發請求,保障服務端與客戶端的通信,其次,會適時的查、記錄其截獲的數據,或篡改數據,引發服務端或客戶端特定的行爲。
不同於 fiddler 或 wireshark 等抓包工具,mitmproxy 不僅可以截獲請求幫助開發者查看、分析,更可以通過自定義腳本進行二次開發。舉例來說,利用 fiddler 可以過濾出瀏覽器對某個特定 url 的請求,並查看、分析其數據,但實現不了高度定製化的需求,類似於:“截獲對瀏覽器對該 url 的請求,將返回內容置空,並將真實的返回內容存到某個數據庫,出現異常時發出郵件通知”。而對於 mitmproxy,這樣的需求可以通過載入自定義 python 腳本輕鬆實現。
但 mitmproxy 並不會真的對無辜的人發起中間人攻擊,由於 mitmproxy 工作在 HTTP 層,而當前 HTTPS 的普及讓客戶端擁有了檢測並規避中間人攻擊的能力,所以要讓 mitmproxy 能夠正常工作,必須要讓客戶端(APP 或瀏覽器)主動信任 mitmproxy 的 SSL 證書,或忽略證書異常,這也就意味着 APP 或瀏覽器是屬於開發者本人的——顯而易見,這不是在做黑產,而是在做開發或測試。
那這樣的工具有什麼實際意義呢?據我所知目前比較廣泛的應用是做仿真爬蟲,即利用手機模擬器、無頭瀏覽器來爬取 APP 或網站的數據,mitmproxy 作爲代理可以攔截、存儲爬蟲獲取到的數據,或修改數據調整爬蟲的行爲。
2.安裝mitmproxy
mac:在終端執行以下命令;(win:在cmd執行)
pip3 install mitmproxy #python3
或者
pip install mitmproxy #python2
安裝完成後輸入mitmdump --version
:
Mitmproxy: 4.0.4
Python: 3.7.4
OpenSSL: OpenSSL 1.1.0i 14 Aug 2018
Platform: Darwin-18.7.0-x86_64-i386-64bit
3.啓動mitmproxy
要啓動 mitmproxy 用 mitmproxy、mitmdump、mitmweb 這三個命令中的任意一個即可,這三個命令功能一致,且都可以加載自定義腳本,唯一的區別是交互界面的不同。
mitmproxy 命令啓動後,會提供一個命令行界面,用戶可以實時看到發生的請求,並通過命令過濾請求,查看請求數據:
- 使用的
mitmproxy
啓動
- 使用的
mitmweb
啓動
4.代理手機
手機連接到wifi->長按修改網絡->顯示高級選項->代理->手動
在電腦上的終端輸入ifconfig(mac) win是ipconfig
主機是下面圖的ip
端口就是上邊的監聽端口
點擊確認
- 安裝證書 (沒測試需不需要證書,但是ssl一般都需要吧)
在線安裝證書,手機瀏覽器訪問 http://mitm.it(選 Android)
5抓取數據我們需要的數據
在http://127.0.0.1:8081/#/flows可以看到我們的數據包,打開企查查和天眼查app是不是發現沒有數據包,接口都沒出來,這兩個app繞過wifi代理,不走mitmproxy
這時候我們就需要用到前邊提到的強制抓包工具Postern
Postern能夠讓你自定義並重新分流設備上的網絡流量
1.你可以讓所有的App(包括不支持代理配置的App)都自動使用你指定的代理服務器, 無需專門爲每個App配置代理。 Postern完整支持所有流行的代理隧道協議,包括:
SSH Tunnel
SOCKS5 Proxy
HTTPS/HTTP CONNECT method Tunnel
- Postern具有sniffer的功能,可以捕捉進出設備的數據包。方便你查看是否有廣告或是惡意流量。
- Postern支持導入surge格式的配置文件,完整支持iOS surge的全部核心功能
配置Postern:
- 打開配置代理->添加代理服務器->如下配置:
2. 打開配置規則,刪除之前無用的規則
3. 添加規則,如下的配置:
4.最後打開v**,再打開企查查app,看我們的web,是不是抓到數據包了,並且還有我們需要的sign是不是,同樣的方法我們可以操作天眼查app,是不是發現抓不到數據包,我們這時候就要藉助JustTrustMe
,然後就不細說了。
JustTrustMe Relese版本下載地址:
6.python+mitmproxy攔截
python腳本寫好,放出地址攔截腳本地址
圖中就是我們需要的sign
以及時間戳。天眼查同樣的
最後可以吧這個sign和時間戳發送到隊列,供我們使用。
7自動化
開頭說過,sign以及Authorization都是有時效的,對於天眼查來說更短,那我們需要怎麼做,我們可以藉助按鍵精靈,利用按鍵精靈來操作。
- 打開按鍵精靈->錄製腳本->打開企查查app->搜索一個公司
- 只要能讓這個動作重複就可以了
- 利用錄製來重複播放就很OK
8最後我們就只可以用sign和Authorization
最後腳本放在github github