http://netsecurity.51cto.com/art/201403/433726_all.htmjava
以往安全愛好者研究的每每是app的本地安全,好比遠控、應用破解、信息竊取等等,大多人尚未關注到app服務端的安全問題,因而在這塊的安全漏洞很是多。python
移動app大多經過web api服務的方式跟服務端交互,這種模式把移動安全跟web安全綁在一塊兒。移動app以web服務的方式跟服務端交互,服務器端也是一個展現信息的網站,常見的web漏洞在這也存在,好比說SQL注入、文件上傳、中間件/server漏洞等,可是因爲部分app不是直接嵌入網頁在app中,而是使用的api接口返回josn數據,致使掃描器爬蟲沒法爬取連接。web
下圖是抓的糗事百科糗事列表,contet字段內容與我無關 -_-|||api
那麼我嘗試去找app服務端的漏洞,目前想到的兩種方法:安全
1.反編譯APP 2.http[s]代理抓包
那麼有人應該會提出問題,這兩種方式拿到的連接都是零零散散的,也很差找漏洞啊,我這邊的利用方式是把全部抓取的連接直接提交任務到多引擎web漏洞掃描器,掃描器能夠批量掃SQL注入等等,其實除了這些漏洞,還有不少能夠利用的信息。服務器
1、反編譯APPapp
有兩種反編譯方式,dex2jar和apktool,兩個工具反編譯的效果是不同的,dex2jar反編譯出java源代碼,apktool反編譯出來的是java彙編代碼。dom
1. dex2jar反編譯工具
工具:dex2jar+jdguiweb安全
方法:
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
2、http[s]代理抓包
這個方法利用在移動設備上設置代理,經過人工操做使app與服務端交互,
步驟:
a. 在抓包機器上開啓代理,測試能夠用burp,須要自動化提交掃描任務能夠本身寫一個代理程序,移動設備設置代理服務器。
b. 在移動設備上操做app,代理端抓取以下。
總結:
整個思路已經很清晰,那麼其實要作的就是讓這個過程自動化,反編譯以後有一個問題,url不必定完整,不少URL都是拼接起來的,我嘗試寫一套分析引擎,自動化反編譯,而後經過對源碼的分析,拼接完整的api url,再進行漏洞掃描。
下圖是一個dome,後面準備用python來寫,放到服務器上。