内容简介:想尝试逆向APK来发现一些接口和安全问题,但是Mac下没啥好用的APK逆向工具,于是我就参考文章:https://blog.csdn.net/jyygn163/article/details/71731786 的思路在Mac下使用homebrew安装:手动敲命令太繁琐了,写个shell脚本一键化。
前言
想尝试逆向APK来发现一些接口和安全问题,但是Mac下没啥好用的APK逆向工具,于是我就参考文章:https://blog.csdn.net/jyygn163/article/details/71731786 的思路在Mac下使用homebrew安装:
brew install apktool brew install dex2jar
JD-GUI去 http://jd.benow.ca/下载,这里我是用的是jar版。
过程
自动化编译
手动敲命令太繁琐了,写个 shell 脚本一键化。
在.bash_profile文件(环境变量)加入这个命令alias apkdec="/Users/chen/HackBox/Tools/Android\ Decompile/DeApkScript.sh",这样当终端打开的时候就可以使用apkdec命令了,而脚本DeApkScript.sh的内容如下:
apktool d $1 && mv $1 $1.zip && unzip $1.zip "*.dex" -d $1_dex/ && cd $1_dex/ && d2j-dex2jar *.dex
功能实现如下:
-
apktool获取资源文件
-
将apk文件重命名为zip文件
-
解压zip文件中的.dex文件
-
切换解压目录
-
将dex文件转换成jar文件
这样,最后只需要使用JD-GUI反编译JAR即可看见源码了。
实战
运行命令:
apkdec xxx.apk
首先对classes-dex2jar.jar文件进反编译,但似乎在Mac下JD-GUI支持的不太好,所以我选择使用luyten(Download:https://github.com/deathmarine/Luyten/releases),如下是两张对比图:
漏洞挖掘
在luyten下使用Command+G快捷键全局搜索,搜索域名寻找接口(因为这个APP需要内部人员才能登录所以从正常的入口是无法找到接口进行漏洞挖掘的)
寻找了一番看见这样一个接口:
二话不说访问之,提示:
{"res_code":"-1008003","res_message":"参数错误","timeMillis":1542516229723}
不懂 Java 的我一脸懵,但是天下语言都是互通的,大概的了解了代码的意思(可能理解的不到位,就不说出来误导了),于是找到这样一个函数:
从我的理解来看这个接口就是有这两个参数appId、userName,于是加入GET请求参数中请求:
Request:
?appId=123&userName=123
Response:
{"res_code":"0","res_message":"成功","timeMillis":1542516495613,"extData":null,"data":[{"appId":"123","permissionTag":[""],"extData":null}]}
其中appId的参数值返回在了页面中,该请求响应报文Content-Type: text/html,所以尝试构建XSS,运气好,确实也存在XSS问题:
总结
学习、不断的学习。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Writing Apache Modules with Perl and C
Lincoln Stein、Doug MacEachern / O'Reilly Media, Inc. / 1999-03 / USD 39.95
Apache is the most popular Web server on the Internet because it is free, reliable, and extensible. The availability of the source code and the modular design of Apache makes it possible to extend Web......一起来看看 《Writing Apache Modules with Perl and C》 这本书的介绍吧!