前言 我想尝试反向APK找到一些界面和安全问题,但Mac下没有好的APK反向工具,所以我将参考文章:https://blog.csdn.net/jyygn163/article/details/71731786的想法在Mac Homebrew安装:下使用 Brew安装apktool Brew安装dex2jar JD-GUI转到http://jd.benow.ca/下载,这里我使用的是jar版本。 处理 自动编译 手动输入命令太麻烦了,编写shell脚本是关键。 在.bash_profile文件(环境变量)中,添加命令别名apkdec='/Users/chen/HackBox/Tools/Android \ Decompile/DeApkScript.sh',以便在打开终端时,可以使用apkdec命令,脚本DeApkScript。 sh的内容如下: Apktool d $ 1&& mv $ 1 $ 1.zip&&解压$ 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(下载:https://github.com/deathmarine/Luyten/releases),遵循比较图表:
漏洞挖掘 使用luyten下的Command + G快捷键全局搜索来搜索域名搜索界面(因为此应用程序需要内部人员登录,因此无法从正常的门户网站找到用于漏洞挖掘的界面)
寻找一种方法来看到这样的界面:
如果您没有说什么,请访问: {'res_code':'-1008003','res_message':'参数错误','timeMillis': 1542516229723} 我不懂Java,但语言可以互操作。我可能理解代码的含义(可能不理解这一点,所以我不说它有误导性),所以我找到了这样一个函数:
根据我的理解,这个接口有两个参数appId,userName,所以请求被添加到GET请求参数: 请求: ?APPID=123&安培;用户名=123 响应: {'res_code':'0','res_message':'成功','timeMillis': 1542516495613,'extData': null,'data': [{'appId':'123','permissionTag': ['' ],'extData': null}]} appId的参数值在页面中返回,请求响应消息Content-Type: text/html,所以尝试构建XSS,运气好,确实存在XSS问题:
总结一下 学习,不断学习。