app渗透_app渗透教程 - CSDN
精华内容
参与话题
  • APP渗透测试准备(一)

    千次阅读 2019-10-05 21:11:13
    APP渗透测试准备(一) 文章目录APP渗透测试准备(一)环境准备安装adb安装fridafrida hook实例 环境准备 Windows10 X64 Python 3.7 OppoR9st anroid6.0.1 adb frida burpsuite+brida插件 安装adb 参考链接:...

    APP渗透测试准备(一)

    环境准备

    Windows10 X64
    Python 3.7
    OppoR9st anroid6.0.1
    adb
    frida
    burpsuite+brida插件
    

    安装adb

    参考链接:https://wnma3mz.github.io/hexo_blog/2018/01/25/%E7%94%A8ADB%E8%B0%83%E8%AF%95%E5%AE%89%E5%8D%93%E6%89%8B%E6%9C%BA/

    下载adb:https://dl.google.com/android/repository/platform-tools-latest-windows.zip

    How to Install ADB on Windows, macOS, and Linux:https://www.xda-developers.com/install-adb-windows-macos-linux/

    然后解压 配置环境变量。

    然后手机USB数据线连接到电脑。记得打开usb调试模式,当然了你想把root了也可以。

    adb连接不上的原因:https://mianao.info/2015/12/07/adb%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5android%E8%AE%BE%E5%A4%87%E7%9A%84%E5%87%A0%E7%A7%8D%E5%8E%9F%E5%9B%A0

    附上adb调试命令大全:https://blog.csdn.net/qq_15364915/article/details/52369266

    常用adb命令小记:

    # 查看所有连接设备
    > adb devices
    
    # 进行截图保存在sd卡的根目录下,名字为screen.png
    > adb shell screencap -p /sdcard/screen.png
    # 将截图发送到本地(当前目录下),也可以发送其他文件
    > adb pull /sdcard/screen.png
    # 删除本地文件
    > adb shell rm /sdcard/screen.png
    # 发送电脑里的文件到设备
    > adb shell push screen.png /sdcard/
    
    
    # 进入手机的交互环境,操作类似linux终端,exit或者Ctrl+C退出
    > adb shell
    
    # 点击手机屏幕(1000,1000)的位置
    > adb shell input tap 1000 1000
    # 输入字符串"helloworld",此处不能直接输入中文,且字符串不能有空格
    > adb shell input text helloworld
    # 滑动屏幕,从(100, 100)到(1000,1000),经历10s(也可以当作长按屏幕来使用)
    > adb shell input swipe 100 100 1000 1000 10
    
    # 查看当前运行的App, 这里Windows没有grep所以会运行失败,可以进入先进入交互环境再输入下面去掉"adb shell"命令
    > adb shell dumpsys window | grep mCurrentFocus
    # 或者
    > adb shell dumpsys activity activities | grep mFocusedActivity
    
    # 按下电源键
    > adb shell input keyevent 26
    # 按下返回键
    > adb shell input keyevent 4
    # 按下HOME健
    > adb shell input keyevent 3
    # 点亮屏幕
    > adb shell input keyevent 224
    # 熄灭屏幕
    > adb shell input keyevent 223
    
    # 查看手机安装了哪些App,输出按行输出App的包名
    > adb shell pm list packages
    # 加"-s"表示只输出系统应用
    # 加"-3"表示只输出第三方应用
    # 加字符串表示过滤应用名称,当然也可以使用grep
    
    # 安装apk
    > adb install <packagename>
    # 卸载apk
    > adb uninstall <packagename>
    
    
    # 从桌面启动app
    > adb shell monkey -p <packagename> -c android.intent.category.LAUNCHER 1
    # 关闭app
    > adb shell am force-stop <packagename>
    
    $ adb devices
    
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    List of devices attached
    33b4c4be        device
    

    说明连接上了.

    查看手机cpu版本。 根据内核版本去安装相应的frida。

    $ adb shell
    shell@R9s:/ $ cat /proc/cpuinfo
    Processor       : AArch64 Processor rev 4 (aarch64)
    processor       : 0
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    ......
    

    根据cpu版本去下载相应frida-server,手机是AArch64的。

    安装frida

    参考链接:https://www.jianshu.com/p/c349471bdef7

    记得python版本要3.7。

    3.6的话会找不到dll,看奈沙的blog是之前是3.5出现了这个问题:https://blog.csdn.net/whklhhhh/article/details/79302848

    他是3.5要更新到3.6,现在我3.6不行的话更新到3.7然后并没有解决,最后解决方案是再装个frida-tools:

    python3.7 -m pip install frida -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
    
    python37 -m pip install frida-tools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
    

    安装好之后执行

    frida-ps  
    

    正常执行之后说明frida已经正常安装。

    然后在手机上安装fridaserver

    选择arm64的android-server下载:https://github.com/frida/frida/releases/download/12.7.4/frida-server-12.7.4-android-arm64.xz

    $ adb push frida-server-12.7.4-android-arm64 /data/local/tmp/frida-server
    
    frida-server-12.7.4-android-arm64: 1 file pushed. 2.5 MB/s (38414672 bytes in 14.544s)
    
    $ adb shell
    
    $ su
    
    R9s:/ # whoami
    root
    R9s:/ # cd /data/local/tmp/
    R9s:/data/local/tmp # chmod 755 frida-server
    R9s:/data/local/tmp # ./frida-server
    

    记得手机要root,不然没权限。

    然后另开一个cmd。

    frida-ps -U

    如果hook不上就转发下端口
    adb forward tcp:27042 tcp:27042

    frida hook实例

    以一个ctf题为例来玩一下frida:
    https://github.com/ctfs/write-ups-2015/raw/master/seccon-quals-ctf-2015/binary/reverse-engineering-android-apk-1/rps.apk

    参考链接:https://blog.csdn.net/zouyuanxc/article/details/80492465

    frida理解:https://blog.csdn.net/jiangwei0910410003/article/details/80372118

    hook分两种:

    第一、Java层代码Hook操作

    1、hook方法包括构造方法和对象方法,构造方法固定写法是$init,普通方法直接是方法名,参数可以自己定义也可以使用系统隐含的变量arguments获取。

    2、修改方法的参数和返回值,直接调用原始方法通过传入想要修改的参数来做到修改参数的目的,以及修改返回值即可。

    3、构造对象和修改对象的属性值,直接用反射进行操作,构造对象用固定写法的$new即可。

    4、直接用Java的Exception对象打印堆栈信息,然后通过adb logcat -s AndroidRuntime来查看异常信息跟踪代码。

    总结:获取对象的类类型是Java.use方法,方法有重载的话用overload(…)解决。

    第二、Native层代码Hook操作

    1、hook导出的函数直接用so文件名和函数名即可。

    2、hook未导出的函数需要计算出函数在内存中的绝对地址,通过查看maps文件获取so的基地址+函数的相对地址即可,最后不要忘了+1操作。

    总结:Native中最常用的就是内存地址指针了,所以如果要正确的获取值一定要用Memory类作为辅助,特别是字符串信息。

    先推荐一个神器:jadx 将apk用jadx打开 直接反汇编出源码.

    package com.example.seccon2015.rock_paper_scissors;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    import java.util.Random;
    
    public class MainActivity extends Activity implements OnClickListener {
        Button P;
        Button S;
        int cnt = 0;
        int flag;
        private final Handler handler = new Handler();
        int m;
        int n;
        Button r;
        private final Runnable showMessageTask = new Runnable() {
            public void run() {
                TextView tv3 = (TextView) MainActivity.this.findViewById(R.id.textView3);
                if (MainActivity.this.n - MainActivity.this.m == 1) {
                    MainActivity.this.cnt++;
                    tv3.setText("WIN! +" + String.valueOf(MainActivity.this.cnt));
                } else if (MainActivity.this.m - MainActivity.this.n == 1) {
                    MainActivity.this.cnt = 0;
                    tv3.setText("LOSE +0");
                } else if (MainActivity.this.m == MainActivity.this.n) {
                    tv3.setText("DRAW +" + String.valueOf(MainActivity.this.cnt));
                } else if (MainActivity.this.m < MainActivity.this.n) {
                    MainActivity.this.cnt = 0;
                    tv3.setText("LOSE +0");
                } else {
                    MainActivity.this.cnt++;
                    tv3.setText("WIN! +" + String.valueOf(MainActivity.this.cnt));
                }
                if (1000 == MainActivity.this.cnt) {
                    tv3.setText("SECCON{" + String.valueOf((MainActivity.this.cnt + MainActivity.this.calc()) * 107) + "}");
                }
                MainActivity.this.flag = 0;
            }
        };
    
        public native int calc();
    
        static {
            System.loadLibrary("calc");
        }
    
        /* access modifiers changed from: protected */
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            this.P = (Button) findViewById(R.id.button);
            this.S = (Button) findViewById(R.id.button3);
            this.r = (Button) findViewById(R.id.buttonR);
            this.P.setOnClickListener(this);
            this.r.setOnClickListener(this);
            this.S.setOnClickListener(this);
            this.flag = 0;
        }
    
        public void onClick(View v) {
            if (this.flag != 1) {
                this.flag = 1;
                ((TextView) findViewById(R.id.textView3)).setText("");
                TextView tv = (TextView) findViewById(R.id.textView);
                TextView tv2 = (TextView) findViewById(R.id.textView2);
                this.m = 0;
                this.n = new Random().nextInt(3);
                tv2.setText(new String[]{"CPU: Paper", "CPU: Rock", "CPU: Scissors"}[this.n]);
                if (v == this.P) {
                    tv.setText("YOU: Paper");
                    this.m = 0;
                }
                if (v == this.r) {
                    tv.setText("YOU: Rock");
                    this.m = 1;
                }
                if (v == this.S) {
                    tv.setText("YOU: Scissors");
                    this.m = 2;
                }
                this.handler.postDelayed(this.showMessageTask, 1000);
            }
        }
    }
    

    代码逻辑也比较简单,按钮按一下选择石头剪刀布,然后电脑是随机石头剪刀布。赢到1000分即可。

    发现是直接调用calc函数运算一下得到最后flag,hook一下方法去调用calc即可。我这里hook的是onclick函数,点击即可弹flag。
    exp:

    import frida, sys
    
    def on_message(message, data):
        if message['type'] == 'send':
            print("[*] {0}".format(message['payload']))
        else:
            print(message)
    
    jscode = """
    Java.perform(function () {
        var MainActivity = Java.use('com.example.seccon2015.rock_paper_scissors.MainActivity');
        MainActivity.onClick.implementation = function (v) {
            send("Hook Start...");
            var returnValue = this.calc();
            send("Return:"+returnValue);
            var result = (1000+returnValue)*107;
            send("Flag:"+"SECCON{"+result.toString()+"}");
        }
    });
    """
    
    process = frida.get_usb_device().attach('com.example.seccon2015.rock_paper_scissors')
    script = process.create_script(jscode)
    script.on('message', on_message)
    script.load()
    sys.stdin.read()
    
    

    第二种方法就是hook结果,将分数改为999,然后出拳必赢,hook到onclick,再点击触发,即可弹flag

    
    import frida, sys
    
    def on_message(message, data):
        if message['type'] == 'send':
            print("[*] {0}".format(message['payload']))
        else:
            print(message)
    
    jscode = """
    Java.perform(function () {
        var MainActivity = Java.use('com.example.seccon2015.rock_paper_scissors.MainActivity');
        MainActivity.onClick.implementation = function (v) {
            send("Hook Start...");
            this.onClick(v);
            this.n.value = 0;
            this.m.value = 2;
            this.cnt.value = 999;
            send("Success!")
        }
    });
    """
    
    process = frida.get_usb_device().attach('com.example.seccon2015.rock_paper_scissors')
    script = process.create_script(jscode)
    script.on('message', on_message)
    script.load()
    sys.stdin.read()
    

    第三种方法就是去搞so文件了,从native层hook来获取calc的返回值。

    以上是java层的hook。接下来玩一下native层的hook。

    附上一个批量提取apk中so文件的脚本:

    # export_so.py
    
    #!/usr/bin/env python
    # coding=utf-8
    import zipfile
    import os
     
    path = "./"
    so_path="./so/"
    apklist=os.listdir(path)
    for APK in apklist:
        if APK.endswith(".apk"):
            portion = os.path.splitext(APK)
            apkname = portion[0]
            abs_so_path=os.path.join(so_path,apkname) 
            abs_zipAPK_path=os.path.join(path,APK)
            z = zipfile.ZipFile(abs_zipAPK_path,'r')
            solists=[]
            for filename in z.namelist():
                if filename.endswith(".so"):
                    sofileName = os.path.basename(filename)
                    soSource = os.path.basename(os.path.dirname(filename))
                    storePath=os.path.join(abs_so_path,soSource) 
                    if not os.path.exists(storePath):
                        os.makedirs(storePath)
                    newsofile=os.path.join(storePath,sofileName)
                    f = open(newsofile,'w')
                    f.write(z.read(filename))
    
    

    libcalc.so是我们的目标。

    丢到ida里面去看看。

    拿到函数名是 Java_com_example_seccon2015_rock_1paper_1scissors_MainActivity_calc
    然后去写脚本hooknative层即可。

    exp:

    import frida, sys
    # export native function
    native_hook_code = """
    Java.perform(function(){
        send("Running Script");
        var exports = Module.findExportByName("libcalc.so","Java_com_example_seccon2015_rock_1paper_1scissors_MainActivity_calc");
        send("so native pointers:"+exports);
        Interceptor.attach(exports,{
            onEnter: function(args){ 
                //send("so function args is: " +args[0]+","+args[1]+","+args[2]);
                send("123");
            },
            onLeave: function(retval){
                send("so result value is :"+retval);
            }
        });
    });
    """
    
    def on_message(message, data):
        if message['type'] == 'send':
            print("[*] {0}".format(message['payload']))
        else:
            print(message)
    
    process = frida.get_device_manager().enumerate_devices()[-1].attach("com.example.seccon2015.rock_paper_scissors")
    script = process.create_script(native_hook_code)
    script.on('message', on_message)
    script.load()
    sys.stdin.read()
    
    
    D:\Frida>python37 rps_native_exp.py
    [*] Running Script
    [*] so native pointers:0xe8473c75
    [*] 123
    [*] so result value is :0x7
    

    同样拿到返回值是7。然后进行运算

    if (1000 == MainActivity.this.cnt) {
        tv3.setText("SECCON{" + String.valueOf((MainActivity.this.cnt + MainActivity.this.calc()) * 107) + "}");
    }
    

    也就是(1000+7)*107结果是107749,和之前的结果一样。

    展开全文
  • 学习记录-app渗透

    2020-09-20 22:27:40
    学习记录-app渗透 注:文章仅用于学术交流,不用于其它用途 一、app渗透思路 app其实和web基本相同,可以通过多种工具如夜神模拟器等在电脑上模拟安卓环境,进行操作。操作内容和web一样,可以xss、sql注入、文件...

    学习记录-app渗透

    注:文章仅用于学术交流,不用于其它用途

    一、app渗透思路
    app其实和web基本相同,可以通过多种工具如夜神模拟器等在电脑上模拟安卓环境,进行操作。操作内容和web一样,可以xss、sql注入、文件上传漏洞等等

    二、实战案例
    1)下载夜神模拟器,首先设置代理,让工具burp能抓到数据包
    设置-wifi-手动添加代理
    在这里插入图片描述

    burp工具设置ip及端口就可以抓app的包了
    在这里插入图片描述

    我们找了一个开源的app测试,这里有外出出差提交单,可以上传文件,这里是上传了一个图片码,然后通过抓包找到了上传文件的路径
    在这里插入图片描述
    在这里插入图片描述
    发现了nginx解析漏洞,加入/.php以php形式解析,成功解析了木马
    在这里插入图片描述
    在开源app上找到了一处地方可以评论,我们尝试打入xss
    在这里插入图片描述
    发现可以弹窗,说明这里存在存储型xss
    在这里插入图片描述
    三、快速自建APP
    通过网站变色龙在线工具按照提示流程直接创建,不用要求你会java、c等

    四、安装Xposed框架和Inspeckage插件使用
    安装Xposed框架然后模块选择Inspeckage插件选择版本安装
    先下载好要测试的APP,然后打开Inspeckage插件进入,首先要去Xposed框架激活插件然后重启生效(所有安装一定要Root)

    在这里插入图片描述
    进入插件工具,无红色现在说明工具生效了
    在这里插入图片描述
    使用命令将模拟器管理页面127.0.0.1:8008映射到本地浏览器,这里需要用到adb命令,注意路径切换到adb执行
    在这里插入图片描述
    选择APP进入,通过本地web界面查看信息
    在这里插入图片描述

    在这里插入图片描述
    这里可以看到很多信息,最大的用处是四个板块:
    HTTP:就是发起过的HTTP请求
    Hash:就是使用过的 Hash加密,例如md5 sha1
    Crypoto :除了Hash之外使用的加密
    SQLite :是自带的数据库

    1.结合http看信息,遇到加密的信息查阅hash和crypto
    2.可以看到很多看不到的信息,如很多公网ip,都可以尝试去访问

    展开全文
  • 移动APP渗透测试方案 展示5个方面总结3种常见漏洞 发布时间:2017年10月26日 10:47 浏览量:1193  绿盟科技这几天连出渗透测试文章,真是干货啊。之前安全加介绍了金融行业 实战微信银行渗透测试, 运营商...

    移动APP渗透测试方案 展示5个方面总结3种常见漏洞

    发布时间:2017年10月26日 10:47    浏览量:1193

     

    绿盟科技这几天连出渗透测试文章,真是干货啊。之前安全加介绍了金融行业 实战微信银行渗透测试, 运营商 渗透测试实战 ,今天让我们来说说移动APP渗透测试方案,这涉及安全威胁分析及风险、APP安全测试内容及流程、测试要点。

    BTW:昨天的 渗透测试 的流程及渗透测试相关概念,值得回顾。另外,本文的最后面,我们把渗透测试的文章形成了一个列表,供大家参考。

    APP安全测试方案

    安全威胁分析

    面临的主要风险

    APP安全测试内容

    还有最重要的:服务器和业务逻辑安全

    安全测试流程

    移动APP安全测试要点

    新技术新业务移动APP评估思路

    在这次的移动APP安全测试实例中,工作小组主要通过如下7个方向,进行移动终端APP安全评估:

    运营商自动化APP测评思路

    运营商自主开发的自动化APP安全检测工具,通过"地、集、省"三级机构协作的方式,来完成移动终端APP安全检测与评估。APP测试思路如下:

    安全检测要点

    Allowbackup漏洞

    AndroidManifest.xml文件中allowBackup属性值被设置为true。当allowBackup标志为true时,用户可通过adb backup来进行对应用数据的备份,在无root的情况下可以导出应用中存储的所有数据,造成用户数据的严重泄露。

    整改建议

    将参数android:allowBackup属性设置为false,不能对应用数据备份。

    WebView漏洞

    应用中存在WebView漏洞,没有对注册JAVA类的方法调用进行限制,导致攻击者可以利用反射机制调用未注册的其他任何JAVA类,最终导致javascript代码对设备进行任意攻击。

    整改建议

    通过在Java的远程方法上面声明一个@JavascriptInterface 来代替addjavascriptInterface;

    在使用js2java的bridge时候,需要对每个传入的参数进行验证,屏蔽攻击代码;

    Note :控制相关权限或者尽可能不要使用js2java 的bridge 。

    关键数据明文传输

    应用程序在登录过程中,使用http协议明文传输用户名和密码,并未对用户名和密码进行加密处理。通过监控网络数据就可以截获到用户名和用户密码数据,导致用户信息泄露,给用户带来安全风险。

    整改建议

    在传输敏感信息时应对敏感信息进行加密处理。

    任意账号注册

    使用手机号133*****887注册某个APP,获取验证码46908;

    在确认提交时,拦截请求,修改注册的手机号码,即可注册任意账号,这里修改为1338*****678(任意手机号);

    分别使用133*****887和133*****678(任意手机号)登录,均可以通过验证登录,看到最终结果。

    整改建议

    注册过程最后的确认提交时,服务器应验证提交的账号是否是下发验证码的手机号。

    登录界面可被钓鱼劫持

    应用存在钓鱼劫持风险。应用程序没有做防钓鱼劫持措施,通过劫持应用程序的登录界面,可以获取用户的账号和密码,可能导致用户账号信息的泄露。

    整改建议:

    应用程序自身通过获取栈顶activity,判断系统当前运行的程序,一旦发现应用切换(可能被劫持),给予用户提示以防范钓鱼程序的欺诈。

    获取栈顶activity(如下图),当涉及敏感activity(登录、交易等)切换时,判断当前是否仍留在原程序,若不是则通过Toast给予用户提示。

    使用HTML5架构或android+HTML5混合开发,实现登陆、支付等关键页面,降低被劫持的风险。

    移动APP典型安全漏洞

    在对移动APP的渗透测试工作中个,笔者总结了几个常见的移动APP安全漏洞,包括图形验证码逻辑后门、用户敏感信息泄露、开发商被渗透,各位经常从事APP开发工作的朋友们,需要引起注意了。

    图形验证码逻辑后门

    案例概述

    A公司是一个已经上市的信息科技公司,国内多家商业银行都是其客户。在分析A公司的移动银行产品时,发现产品的图形验证码机制存在逻辑后门可以被绕过,利用这个缺陷可以窃取大量用户账号。由于外包团队的代码复用,我们已经在至少两家商业银行的移动银行系统中复现了这个安全问题。

    后果:大规模账号暴力破解攻击。

    一般来说,大部分用户都习惯将移动银行密码设置为六位数字,而且查询密码和交易密码也有很大的概率设置为相同的。攻击者可以查找该地区的手机号码段范围作为登录用户名,以六位数字组成的密码字典进行暴力破解,几十万移动银行帐户信息唾手可得。

    用户敏感信息泄露

    案例概述

    B公司也是一家上市的科技公司,其金融客户遍布全国,采用B公司移动银行方案的客户包 括至少两家全国性股份制商业银行和多家城市商业银行。在分析B公司的移动银行产品安全性时,发现没有关闭服务端的调试接口,造成大量的用户敏感信息泄露。这种问题其实也比较常见,往往是外包开发完成后上线过程的疏忽造成的,实际上更常见的例子是Android客户端通过logcat输出调试信息的问题。

    调试接口会将用户转账的详细信息输出到 web 目录的 test.log 文件中。攻击者可以通过浏览器直接访问到这个 log文件,该系统的每一笔转账交易都记录在其中,从中可以获取大量的用户账号、手机号、卡号和交易密码等信息。

    开发商被渗透

    案例概述

    国内某漏洞平台曾经曝光过这样一个漏洞:某大型银行的移动银行ios客户端中存在一个txt文件,文件中存储了一个svn服务器的ip地址、用户名和密码,黑客解压出该文件获取信息后可以直接连上并checkout服务器上的文件。

    svn 服务器上存储的内容包括该银行移动银行系统的全部项目文档、完整的 Android 和 IOS 客户端代码,甚至还存放了用于客户端签名的数字证书。

    渗透测试相关资源

    方案类:

    移动APP渗透测试方案 展示5个方面总结3种常见漏洞

    渗透测试的8个步骤 展现一次完整的渗透测试过程及思路

    实战类:

    实战微信银行渗透测试 展示安全评估思路、工具及经验

    某运营商渗透测试实战 展示渗透测试工具及业务系统中的常见问题

    工具类:

    渗透测试人员入门 如何配置Kali Linux直接用于工作

    下载 | Kali Linux2017.2新版发布 增加了一大批新网络渗透测试工具

    安全工程师的福音 免费恶意软件分析工具FlareVM 还可进行逆向工程和渗透测试

    渗透测试工程师的17个常用工具 还有专家告诉你如何成为渗透测试人员

    本文由:绿盟科技博客 发布,版权归属于原作者。 
    如果转载,请注明出处及本文链接: 
    http://toutiao.secjia.com/app-pentest
    如果此文章侵权,请留言,我们进行删除。

    展开全文
  • app渗透学习

    千次阅读 2018-09-21 10:26:05
    学习地址:http://www.wjdiankong.cn/archives/569 https://blog.csdn.net/jiangwei0910410003/article/details/50083649 ... 静态分析:apktool用于解压apk文件,de...

    学习地址:http://www.wjdiankong.cn/archives/569

    https://blog.csdn.net/jiangwei0910410003/article/details/50083649

    https://jingyan.baidu.com/article/574c52197efdb96c8d9dc1ae.html

    静态分析:apktool用于解压apk文件,dex2jar用于将dex文件转换成jar文件,jd-gui用于浏览jar文件。

    展开全文
  • App渗透 - 人脸识别登录绕过 打开APP是一个登录框 抓包后发现参数被加密了 使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好 根据经验,先搜索Encrypt、Decrypt等关键字,发现在Common.js中有一个...
  • App渗透中常见的加密与解密。

    千次阅读 2019-05-19 12:36:38
    随着App移动应用技术 的广泛应用及移动开发技术的飞速发展过程中,移动应用的安全也越来越被得到重视,在App服务端渗透中,我们在抓包时经常会发现App在数据传输过程中做了加密(如图1),以防止数据被查看或者被...
  • APP渗透测试篇(上)

    2020-08-10 09:46:03
    一、App渗透测试原理 1.简介 App渗透测试与Web渗透测试从某种角度说基本没有区别 App其实就是手机软件,咱们不需要害怕他。 说一个简单的道理,一个网站存在sql注入,用电脑访问存在,用...
  • 被产品经理分到了个app测试的活,(话说为啥是产品经理给派活,我不是归技术总监管么),包含安卓端的和ios端的,有点懵逼...app渗透测试,来源的威胁不外乎三方面: 其实web端好像也是这三方面哈。 面临的主...
  • 【数据猿导读】 极光大数据推出的《2017年度网络购物app市场研究报告》,将网络购物分为综合电商、母婴电商、生鲜电商、跨境电商、二手电商、折扣优惠、商家服务等七大类,从行业数据、运营数据、用户画像等方面...
  • 学习与进修已经成为伴随现代人终生的需求。在移动互联网开始普及以来,移动在线教育因其对碎片化时间的良好利用以及...2014年-2015年,随着网易、腾讯等互联网巨头的加入,在线教育类app有了一个集中爆发期。 2017...
  • 2017年度市场渗透率top1000榜单中有78%是去年的老面孔2017年第四季度每个移动网民手机中平均装有40个app每个移动网民每天花在各类app上的时间达到4.2小时男性最爱MOMO陌陌,女性最爱美图秀秀等拍照P图类appofo共享...
  • 网上目前我是没看到有成熟的相关文档,在自己踩了几个坑之后,将使用文档整理出。 首先下载夜神模拟器,这个不难,百度一下就能下载。 adb下载: ...安装:不需要安装,解压然后放到目录下就行,任意路径,比如d盘...
  • 途虎养车8月市场渗透率达0.29%,DAU超过13万 平安好车主日新增用户留存率超80% 也许是最“man”的app类别,汽车后市场app男性用户超过八成,80后90后是主力军 二线城市为汽车后市场app用户聚集地 江苏...
  • 渗透某德棋牌游戏

    千次阅读 2019-06-06 09:29:24
    还是老规则 下载了APP 这里提示下注意事项 因为这种APP是自动采用微信账号登录 且苹果手机登录前需要申请数据网络权限 所以在进行抓包前 需要先点开APP给予数据网络权限并提前登录微信账号(设置代理之后无法...
  • android 渗透测试必备工具

    千次阅读 多人点赞 2016-09-16 11:59:41
     伴随着移动互联网的高速发展,手机端走进普通大众的日常生活,这里我们将基于android系统介绍一些基本android渗透测试必备的使用工具。这些工具更多的是安装在android客户端。至于PC端,在后面会陆续介绍。这里...
  • 一个简单粗暴的方法让后台数据改变的时候app端自动更新
  • 手机APP大用户并发测试

    万次阅读 2016-04-12 21:52:59
    随着智能手机近年来的快速增长,从游戏娱乐到移动办公的各式各样的手机APP软件渗透到我们的生活中,对于大型的手机APP测试不仅要关注它的功能性、易用性还要关注它的性能,最近发现LoadRunner12可以对手机APP做性能...
  • 2017 十款最佳iPhone渗透APP及工具

    千次阅读 2019-07-05 10:09:36
    与Android不同,搜索和查找iPhone的黑客...在加上iOS平台无法通过App Store分享黑客相关的应用,难度可想而知。那么iPhone上真的就无法使用任何黑客应用了吗?当然不是啦!下面,我就为大家隆重推荐几款iPhone下最...
  • 渗透测试-Android-App渗透测试测试流程 0x01:前言: 仅作为记录以供参考 0x02:漏洞测试方法以及修复方案 一、组件以及源码安全 1、签名校验 命令: //test.apk 为要检测的包jarsigner.exe -...
  • 客户网站以及APP在正式上线之前,都会找专业的安全公司进行渗透测试,检测网站、APP是否存在漏洞,以及一些安全隐患,大多数的运营者觉得安装一些安全防护软件就足以防止攻击了,越这样,网站APP越容易受到篡改数据...
1 2 3 4 5 ... 20
收藏数 11,912
精华内容 4,764
关键字:

app渗透