打造Mac下APK逆向环境到实战接口XSS挖掘

栏目: 编程工具 · 发布时间: 5年前

内容简介:想尝试逆向APK来发现一些接口和安全问题,但是Mac下没啥好用的APK逆向工具,于是我就参考文章:https://blog.csdn.net/jyygn163/article/details/71731786 的思路在Mac下使用homebrew安装:JD-GUI去http://jd.benow.ca/下载,这里我是用的是jar版。手动敲命令太繁琐了,写个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

打造Mac下APK逆向环境到实战接口XSS挖掘

首先对 classes-dex2jar.jar 文件进反编译,但似乎在Mac下JD-GUI支持的不太好,所以我选择使用luyten(Download:https://github.com/deathmarine/Luyten/releases),如下是两张对比图:

打造Mac下APK逆向环境到实战接口XSS挖掘

漏洞挖掘

在luyten下使用Command+G快捷键全局搜索,搜索域名寻找接口(因为这个APP需要内部人员才能登录所以从正常的入口是无法找到接口进行漏洞挖掘的)

打造Mac下APK逆向环境到实战接口XSS挖掘

寻找了一番看见这样一个接口:

打造Mac下APK逆向环境到实战接口XSS挖掘

二话不说访问之,提示:

{"res_code":"-1008003","res_message":"参数错误","timeMillis":1542516229723}

不懂 Java 的我一脸懵,但是天下语言都是互通的,大概的了解了代码的意思(可能理解的不到位,就不说出来误导了),于是找到这样一个函数:

打造Mac下APK逆向环境到实战接口XSS挖掘

从我的理解来看这个接口就是有这两个参数 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问题:

打造Mac下APK逆向环境到实战接口XSS挖掘

总结

学习、不断的学习。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Types and Programming Languages

Types and Programming Languages

Benjamin C. Pierce / The MIT Press / 2002-2-1 / USD 95.00

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of typ......一起来看看 《Types and Programming Languages》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具