移動APP安全在滲透測試中的應用

這篇文章從去年很早就想寫,一直沒時間,剛好過段時間有沙龍是講這方面的東西,整理了下就有了下文。

以往安全愛好者研究的往往是app的本地安全,比如遠控、應用破解、信息竊取等等,大多人還沒有關注到app服務端的安全問題,於是在這塊的安全漏洞非常多。

移動app大多通過web api服務的方式跟服務端交互,這種模式把移動安全跟web安全綁在一起。移動app以web服務的方式跟服務端交互,伺服器端也是一個展示信息的網站,常見的web漏洞在這也存在,比如說SQL注入、文件上傳、中間件/server漏洞等,但是由於部分app不是直接嵌入網頁在app中,而是使用的api介面返回josn數據,導致掃描器爬蟲無法爬取鏈接。

下圖是抓的糗事百科糗事列表,contet欄位內容與我無關-_-|||

那麼我嘗試去找app服務端的漏洞,目前想到的兩種方法:

1.反編譯APP2.http[s]代理抓包

那麼有人應該會提出問題,這兩種方式拿到的鏈接都是零零散散的,也不好找漏洞啊,我這邊的利用方式是把所有抓取的鏈接直接提交任務到多引擎web漏洞掃描器,掃描器可以批量掃SQL注入等等,其實除了這些漏洞,還有很多可以利用的信息。

一、反編譯APP

有兩種反編譯方式,dex2jar和apktool,兩個工具反編譯的效果是不一樣的,dex2jar反編譯出java源代碼,apktool反編譯出來的是java彙編代碼。

1.dex2jar反編譯

工具:dex2jar+jdgui

方法:

a.修改apk為zip擴展名

b.解壓出classes.dex文件

c.使用dex2jar反編譯(dex2jar.bat classes.dex)

最後反編譯出來的源碼如下圖。雖然部分類被配置proguard.cfg混淆了,但是還是可以利用的。

2. apktool反編譯

工具:apktool

這個工具比較簡單,直接(apktool d apkfile)就可以反編譯apk文件,反編譯出來的東西為smali反彙編代碼、res資源文件、assets配置文件、lib庫文件,我們可以直接搜索smali文件和資源文件來查找鏈接等。

利用app查找網站真實IP

除了app服務端的漏洞,還有一個比較好玩的利用方式,通過收集app裡面的子域名ip來尋找目標網站的真實IP,根據經驗,大多app的介面都沒有使用cdn等服務。

糗事百科真實IP

方法二、http[s]代理抓包

這個方法利用在移動設備上設置代理,通過人工操作使app與服務端交互,

步驟:

a.在抓包機器上開啟代理,測試可以用burp,需要自動化提交掃描任務可以自己寫一個代理程序,移動設備設置代理伺服器。

b. 在移動設備上操作app,代理端抓取如下。

總結:

整個思路已經很清晰,那麼其實要做的就是讓這個過程自動化,反編譯之後有一個問題,url不一定完整,很多URL都是拼接起來的,我嘗試寫一套分析引擎,自動化反編譯,然後通過對源碼的分析,拼接完整的api url,再進行漏洞掃描。

下圖是一個dome,後面準備用python來寫,放到伺服器上。

更多的玩法大家可以自己頭腦風暴,還有一些好玩的東西過段時間搞好了會分享出來

如文中未特別聲明轉載請註明出自:FreebuF.COM

5

(2人喜歡)
推薦閱讀:

男人需給女人的九種安全感
經典語錄:安全感,是塵埃落定的安穩,是不離不棄的篤信
利用下一代防火牆(NGFW)提升網路邊界安全防禦能力
「養花寶典」讓家庭花卉安全越冬

TAG:安全 | 測試 | 滲透測試 | 移動 |