未封装的扩展程序是什么意思_Android漏洞挖掘第三期:客户端完整性未校验
引言:每一期都有相同的内容部分,主要为了让大家单独看一期依旧能看懂!!!
0x01 APK文件
依然从APK文件开始说起,相信大家看我之前的帖子,已经知道APK文件怎么看里面的文件内容了。这里还是啰嗦一下吧!
APK文件(全称:Android Application Package),是安卓系统使用的一种应用程序包文件格式,也就是说可以将apk文件双击对其进行安装。既然说是包文件格式,说明apk文件应该是一个将其他文件进行整合压缩后的一个压缩包。既然是压缩包,就可以利用winrar软件对其进行解压并得到里面的软件。
0x02 利用工具
本次的利用工具:apktool,SignAPK,ApkBurster
apktool:这个工具就不多解释了,就是一个解包工具。或者修改尾部扩展名,一样的哈
SignAPK:这是个新名词,我也是有幸第一次接触到,这是一个对未签名的APK问价进行签名的工具。
神器之ApkBurster:这也是个新名词,作用是加载APK时会自动进行解包,使用“解包目录”功能打开文件夹进行修改后,使用重“打包安装”即可自动完成打包,签名,覆盖安装操作。
0x03 开始切入正题了-----测试步骤
第一步当然是利用apktool进行解包咯。当然也是可以修改尾部扩展名,将.apk修改为.zip的哦
先附上apktool的解包公式。然后我们找一款android进行解包。(当然,涉及敏感信息的地方我会打马赛克的)
java -jar apktool.jar d -f apk文件路径 -o 解包目标文件夹
0x04 找到res文件,并修改里面的图片
为啥是修改里面的图片?而不是修改里面的数据呢?其实修改logo图片首先是最简单。其次是最容易看到效果的。
首先,先找到res文件夹。这个文件夹里面存放着大量的图片。很容易就可以找到logo的图片
其次,从网站上下载好一个图片(随便大小,别超过手机屏幕就行),然后与本身里面的logo进行替换。(注意哦,替换的名字也必须是一样的,因为程序会以名字调用的)
0x05 封装
我们把APK解压出来,是否要对整个信息进行封装了呢?其实封装就是要对apk文件进行签名。如果无法签名的话,apk文件是不会正常运行的。那我把他们再压缩成zip压缩包,然后再改成apk可以吗?我这里告诉你,我试过了,不行的。
但是还有一个方法可以做掉。你当初把apk扩展名改为zip的那个包,是可以利用的,直接整个替换里面的或部分替换后,再改为.apk就行了。(亲测可用)
封装命令我还是照常给出,便于大家去测试方便一些
java -jar signapk.jar testkey.x509.pem testkey.pk8 待签名的APK路径 签名后输出apk路径
从这里面看来,我们的逆向的,基本都是要用到java程序耶!所以大家一定要装好java程序。另外,建议大家装一下java1.8,因为java版本高会不支持很多的软件和工具的。
同时,这个命令,又多出了2个文件,一个叫testkey.x509.pem,另外一个叫testkey.pk8。这2个文件是用来给apk文件签名用的,不知道大家是否用burpsuite抓过https的包。我们是先要去burp上下载一个CA证书,然后将CA证书安装到浏览器并添加信任。抓取https的包的时候,就是利用burp官网下载的CA证书,去骗取浏览器的信任,让浏览器误认为这是一个真证书。而apk里的这个签名也是同样的道理
0x06 安装前和安装后进行对比
对比是肯定要的,可以看一下安装前和安装后的差异,那。。。。我们以我们这个软件进行测试一下!
这个截图是安装前的画面。基本没有什么变化,是一个正常的软件
这个截图是安装后的画面。我们把里面的logo的图片改了,打开后,安装卸载的图标都发生了变化。是不是很好玩啊!
0x07 解决方法
有的人说,看了文章,也会了。但是遇到些解决方法反而就不会了。远离说不清楚。这里也给大家写出来了。
解决方法:客户端再没次开机启动时,实际上都会对客户端自身的应用完整性进行校验的。再验证逻辑中,不使用MANIFEST.MF中的数据作为验证凭证。并且需验证是否有不属于该客户端版本的新文件添加,验证过程于服务器完成即可
通俗说法:客户端没有对自己的程序进行校验,导致攻击者可以任意修改里面的内容。本次虽然是改了图片。那如果真正的攻击者是改了数据呢?
未封装的扩展程序是什么意思_Android漏洞挖掘第三期:客户端完整性未校验相关推荐
- 未封装的扩展程序是什么意思_“冰壶见底未为清,少年如玉有诗名”这句诗是什么意思?...
"冰壶见底未为清,少年如玉有诗名." 出自韦应物的<杂言送黎六郎(寿阳公之子)>,全诗如下: 冰壶见底未为清,少年如玉有诗名.闻话嵩峰多野寺,不嫌黄绶向阳城.朱门严训朝 ...
- 未封装的扩展程序是什么意思_晶圆级封装是什么意思?
一.晶圆级封装(Wafer Level Packaging)简介 晶圆级封装(WLP,Wafer Level Package) 的一般定义为直接在晶圆上进行大多数或是全部的封装测试程序,之后再进行切割 ...
- 未封装的扩展程序是什么意思_网线上面的标识代表什么意思?网线的九大扩展应用...
网线也称双绞线,在网线的外护套上每隔2英尺会印刷上一些标识.一般包含双绞线的类型.NEC/UL防火测试和级别.CSA防火测试.长度标志.生产日期.生产商和产品型号等信息.CAT6 代表六类,UTP:非 ...
- 未封装的扩展程序是什么意思_伊能静双11买900件商品,张萌发文去年快递未收到,什么意思?...
昨天凌晨,伊能静发文报告双11购物战况,整个双十一大约购入900件,11月11日单日用了三个号码购入397件商品. 双十一期间,小编专门挑有需要的.便宜的买,狠心狠心再狠心最后才买了不足100件. 妈 ...
- 未封装的扩展程序是什么意思_伊能静双11买900件商品,张萌发文去年快递未收到什么意思?...
昨天凌晨,伊能静发文报告双11购物战况,整个双十一大约购入900件,11月11日单日用了三个号码购入397件商品. 双十一期间,小编专门挑有需要的.便宜的买,狠心狠心再狠心最后才买了不足100件. 妈 ...
- [转载]谷歌浏览器无法添加扩展程序的解决方案
- "#[转载]谷歌浏览器无法添加扩展程序的解决方案" 有时候刚下载的Chrome浏览器,无法通过拖拽方式添加扩展程序时(提示"无法从该网站添加应用.扩展程序和用户脚本& ...
- 关于 Chrome 谷歌浏览器 安装未封装插件的问题
谷歌浏览器 安装插件 一般来说安装插件 插件后缀名为 .crx 打开扩展程序 如图: 一般 通过鼠标拖拽 进此页面 可以直接安装 但是 如果你的谷歌浏览器版本 高于73 通过鼠标拖拽 行 ...
- 尝试做了个Chrome浏览器的扩展程序,显示extensions的页面
最近firefox用的不爽,决定换下口味,装了个Chrome玩玩.不过,Chrome的用户体验不是那么让我满意,特别是管理扩展程序的时候需要操作三次,实在不爽,那就自己做个扩展程序解决这个问题吧.分三 ...
- Chrome插件安装失败,此扩展程序可能已损坏。
文章目录 问题描述 解决方案 实用插件 油猴脚本 参考文献 问题描述 新版Chrome装插件常常出现问题--Chrome插件安装失败,此扩展程序可能已损坏. 解决方案 打开 Chrome 所在位置,默 ...
最新文章
- 解决Mysql:unrecognized service错误的方法(CentOS)附:修改用户名密码
- ORACLE执行计划的一些基本概念
- MySQL优化篇:慢查询日志
- 【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )
- PAT甲级 -- 1090 Highest Price in Supply Chain (25 分)
- MySQL日期类型的处理总结
- JS面向对象的实现和原理
- mysql 产品表 myisam好还是innodb好_mysql两种表存储结构myisam和innodb的性能比较测试...
- 20181211HW
- ajax——优化0126(增删改查:添加查看详情,返回结果类型为JSON型,在窗口显示)...
- 小于等于0_从0开始学ARMARM汇编指令其实很简单
- bzoj 3437: 小P的牧场(斜率DP)
- LAMP架构调优(五)——网页缓存设置
- ftp导入oracle,ftp向linux虚拟机传oracle安装包
- linux 终止作业任务命令,linux-尝试终止进程时出错—“ kill:pid:参数必须是进程或作业ID”...
- 完全二叉树的叶子节点数公式_二叉树基础知识
- 【数据库系统概念】数据库基本概念
- 怎么给新版edge换皮肤外观? | 怎么给edge添加chrome插件?
- 嵌入式软件开发到底是干什么的?
- python英语词汇量测试_python英语单词测试小程序