安卓逆向
大佬們懟網站已經懟的很兇了,實在無從下手的時候,可以從app上測測,除了平時的APP抓包,我們還可以逆向app從而找到一些沒人懟過api或者服務器。
首先關于app的逆向方面,我推薦兩個工具
apktools和Android逆向助手
我們之間用apktools逆向app即可
apktool d app-release.apk
在逆向之后會發現文件夾里有smali_classes文件夾,這里存放了一些后綴為.smali文件,
在這里可以找到一些url,但是由于內容太多,一個個點開很麻煩,我寫了個小python腳本,把里面的url提取出來
!!不過注意我這個腳本跑的挺慢的,例如smali_classes1 smali_classes2,腳本放在這種里面的文件夾內,不然要跑多久我也不知道!!
get_url.py python2
然后會得到一個都是url的文件,對其測試或許可以找到一些漏洞#coding=utf-8
import os
import re
result = []
def get_all(cwd):
global text
get_dir = os.listdir(cwd) #遍歷當前目錄,獲取文件列表
for i in get_dir:
sub_dir = os.path.join(cwd,i) # 把第一步獲取的文件加入路徑
if os.path.isdir(sub_dir): #如果當前仍然是文件夾,遞歸調用
get_all(sub_dir)
else:
ax = os.path.basename(sub_dir) #如果當前路徑不是文件夾,則把文件名放入列表
result.append(ax)
#打開文件疊加讀取
f=open(sub_dir,"r")
text=text+f.read()
def write_url():
pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
url = re.findall(pattern,text)
f2 = open("url.txt","w+")
f2.writelines([line+' ' for line in url])
if __name__ == "__main__":
cur_path = os.getcwd() #當前目錄
text=""
get_all(cur_path)
write_url()
當然在這里測的時候,找到了一些api訪問要帶參數,關于參數可以用一款叫Android逆向助手,先點擊提取dex然后再dex轉jar
然后ctrl+shift+s就可以全局搜索url,然后讀他源碼來看看需要傳入什么參數
關于目錄爆破的一點小腳本
在查找到一些子域名之后,不妨之間爆破一些他的目錄,有時候可能會有意外發現
我會在我的服務器上運行一個小shell腳本來對這些子域名進行目錄掃描,我用的是dirsearchhttps://github.com/maurosoria/dirsearch
dir.sh
for line in `cat url`
do
timeout 300s python3 dirsearch.py -u $line -e *
done
目錄下有url這個文件,他存放著一些我們的url,可以是平時的子域名,也可以是上面的逆向出來的一些url,dirsearch一般不用太長時間就可以跑完,掃崩了的情況可以用timeout來限制他跑一次的時間,這樣就不怕卡死了。
dirsearch掃描結果在reports文件夾下,可以切換進去
然后用個類似上面的腳本來把這些掃描結果整合在一起
reports.py
#coding=utf-8
import os
result = []
def get_all(cwd):
global text
get_dir = os.listdir(cwd) #遍歷當前目錄,獲取文件列表
for i in get_dir:
sub_dir = os.path.join(cwd,i) # 把第一步獲取的文件加入路徑
if os.path.isdir(sub_dir): #如果當前仍然是文件夾,遞歸調用
get_all(sub_dir)
else:
ax = os.path.basename(sub_dir) #如果當前路徑不是文件夾,則把文件名放入列表
result.append(ax)
#打開文件疊加讀取
f=open(sub_dir,"r")
text=text+f.read()
if __name__ == "__main__":
cur_path = os.getcwd() #當前目錄
text=""
get_all(cur_path)
rs=open("rs.txt","w+")
rs.write(text)
然后得到掃描結果rs,txt 這樣就可以直接查看所有掃描結果了
小弟不才,不會太多自動化的東西,只能用點小腳本來代替重復勞動,第一次發帖,大佬們多多包涵。
審核編輯 :李倩
-
Android
+關注
關注
12文章
3939瀏覽量
127583 -
SRC
+關注
關注
0文章
61瀏覽量
18010 -
腳本
+關注
關注
1文章
391瀏覽量
14892
發布評論請先 登錄
相關推薦
評論