2.2.4.注入攻击风险
检测目的 检测 ipa 包是否存在注入攻击风险
风险等级 高
风险描述
攻击者通常有两种手段进行攻击,第一种是修改 app 的二进制文件增加攻击代
码,第二种是通过注入外部库,即启动前通过设置
DYLD_INSERT_LIBRARIES 环境变量指定第三方库文件,加载前会优先加载
第三方库文件。攻击者可以通过注入攻击将一段恶意代码写到目标进程,这
段代码可以加载其它可执行程序,进而实施 hook,监控程序运行、获取敏感
信息等。常见的动态注入,可以实现窃取输入的登录账号、密码、支付密码,
修改转账的目标账号、金额,窃取通讯数据等。
检测步骤
1、解压缩 ipa 文件
2、解析解压缩文件中的二进制可执行文件,并调取字符串信息;
3、判断是否具备关键字信息,或执行命令时是否返回结果,是,则安全;否,
则存在风险
检测结果 存在风险(发现 1 处)
受控编号:JL-GF0811/03-2019-001
项目编号:2022-JC-09-0114-33
共 49 页 第24页
结果描述 该 App 中存在注入攻击风险
检测详情
解决方案
以下两种方式任选其一:
1.xcode 设置 Other Linker Flags 参数增加
-Wl,-sectcreate,_RESTRICT,_restrict,/dev/null
2.代码 DYLD_INSERT_LIBRARIES 检测
char *env = getenv("DYLD_INSERT_LIBRARIES");
If(env !=null)
{ NSLog(@"不为空表示通过环境变量有注入模块%s",env);
2.8.2.InnerHTML 的 XSS 攻击漏洞
检测目的 检测 iOS App 是否存在 InnerHTML 的 XSS 攻击漏洞。
风险等级 高
风险描述
DOM 型 XSS 漏洞是基于文档对象模型(Document Object Model)的一种漏洞。
它的攻击代码不需要服务器解析响应,而是通过浏览器端的 DOM 解析触发
XSS。客户端上的 JavaScript 脚本可以访问浏览器的 DOM 并修改页面的内容,
不依赖服务器的数据,直接从浏览器端获取数据并执行。在 JavaScript 中给
DOM 的 innerHTML 属性赋值一个<script>标签,是一个非常普遍的 xss 注入
点。如果攻击者利用该漏洞进行攻击,可能会导致账号或 Cookie 信息被窃取,
从而冒充管理者登录后台进行数据篡改等恶意操作。
检测步骤
1、解压缩 ipa 文件;
2、扫描解压缩文件夹中所有的".js", ".html"文件,搜索是否有关键字
".innerHTML",否,则安全,是,则进行深度检测
3、继续校验是否为 InnerHtml 语法且可以匹配到关键字,是,则存在风险;
否,则安全
检测结果 存在漏洞(发现 2 处)
结果描述 该 App 存在 InnerHTML 的 XSS 攻击漏洞。
检测详情
-
[文件]:
/PandoraApi.bundle/all.js
[代码]:
document.createElement("div")).innerHTML='<div style="position: fixed;top:
0;lef -
[文件]:
/PandoraApi.bundle/pulltorefresh.js
[代码]:
ocument.createElement("div"),d.innerHTML=a.replace(/{WIDTH}/g,40*this.opti
ons.
解决方案
开发者自查:
如果需要通过 innerhtml 获取到的页面内容与远程服务器做内容过滤及转换,
建议过滤掉非法字符。
示例如下:
private static String htmlEncode(char c) {
switch(c)
{ case '&': return "&"; case '<': return "<"; case '>': return ">"; case '"': return """;
case ' ': return " "; default: return c + ""; }
2.7.5.篡改和二次打包风险
检测目的 检测 ipa 包是否存在篡改和二次签名打包的风险
风险等级 高
风险描述
应用篡改后二次打包不仅已经严重危害开发者版权和经济利益,而且也使 app
用户遭受到不法应用的恶意侵害。对客户端程序添加或修改代码,修改客户
端资源图片,配置信息、图标,添加广告,推广自己的产品,再生成新的客
户端程序,可导致大量盗版应用的出现分食开发者的收入;恶意的二次打包
还能实现应用钓鱼、添加病毒代码、添加恶意代码,从而窃取登录账号密码、
支付密码,拦截验证码短信,修改转账目标账号、金额等等
检测步骤
1、解压缩 ipa 文件;
2、解析解压缩文件中二进制可执行文件,并进入交互式命令行执行指令来分
析所有引用代码并导出函数调用关系文件;
3、在文件中查找是否在同一方法名中同时调用了 4 个关键函数,是,则安全;
否,则存在风险。
检测结果 存在风险(发现 1 处)
结果描述 该 App 中存在篡改和二次签名打包的风险
检测详情 --
解决方案
开发者自查:增加程序检测防止二次签名,定义变量保存
embedded.mobileprovisivision中 hash 值,在应用启动后比较bundleIDPrefix 返回
值与 hash 是否相同
-(NSString )bundleIDPrefix
{
static NSStringbuPreStr=nil;
if (buPreStr.length==0) {
@try
{
NSDictionary query = [NSDictionary dictionaryWithObjectsAndKeys:
(id)kSecClassGenericPassword, kSecClass, @"bundleIDPrefix", kSecAttrAccount,
@"", kSecAttrService, (id)kCFBooleanTrue, kSecReturnAttributes, nil];
CFDictionaryRef result = nil;
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query,
(CFTypeRef )&result);
if (status == errSecItemNotFound)
status = SecItemAdd((__bridge CFDictionaryRef)query, (CFTypeRef *)&result);
if (status != errSecSuccess)
return nil
以上是 检测机构检测出来的问题,有没有解决办法
4 个回复
BillTest
uniapp 开发就是一个坑啊
d***@qq.com
uniapp 开发就是一个坑啊
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
部分问题,可以使用加固ipa解决
kkkkkuuu (作者)
ios加固都是收费的,有免费的吗
2022-10-08 16:51
Jvaeyhcd
请问楼主,该问题是如何处理的,有免费的解决方案吗?
2023-08-25 16:02
d***@qq.com
请问楼主,解决了吗?