mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
6.2 KiB
6.2 KiB
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
支持HackTricks的其他方式:
- 如果您想看到您的公司在HackTricks中做广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS家族,我们的独家NFTs
- 加入 💬 Discord群组 或 电报群组 或 关注我们的Twitter 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
{% embed url="https://websec.nl/" %}
在iOS设备上,应用程序内部和跨应用程序之间的数据共享是通过UIPasteboard
机制实现的,该机制分为两个主要类别:
- 系统范围的通用剪贴板:用于与任何应用程序共享数据,并且旨在在iOS 10以后可用的设备重新启动和应用程序卸载后保留数据。
- 自定义/命名剪贴板:这些专门用于在应用程序内部或与共享相同团队ID的另一个应用程序之间共享数据,并且不会在创建它们的应用程序进程的生命周期之外保留数据,这是iOS 10引入的更改。
在利用剪贴板时,安全考虑起着重要作用。例如:
- 用户没有管理应用程序权限访问剪贴板的机制。
- 为了减轻未经授权的后台监视剪贴板的风险,访问仅限于应用程序在前台运行时(自iOS 9以来)。
- 由于隐私问题,不鼓励使用持久命名剪贴板,而是推荐使用共享容器。
- iOS 10引入的通用剪贴板功能允许通过通用剪贴板在设备之间共享内容,开发人员可以管理数据过期时间并禁用自动内容传输。
确保敏感信息不会被意外存储在全局剪贴板中至关重要。此外,应用程序应设计防止全局剪贴板数据被用于非预期操作的滥用,并鼓励开发人员实施措施防止将敏感信息复制到剪贴板中。
静态分析
对于静态分析,搜索源代码或二进制文件中的:
generalPasteboard
以识别对系统范围的通用剪贴板的使用。pasteboardWithName:create:
和pasteboardWithUniqueName
以创建自定义剪贴板。验证是否启用了持久性,尽管这已被弃用。
动态分析
动态分析涉及挂钩或跟踪特定方法:
- 监视
generalPasteboard
以进行系统范围的使用。 - 跟踪
pasteboardWithName:create:
和pasteboardWithUniqueName
以进行自定义实现。 - 观察已弃用的
setPersistent:
方法调用以检查持久性设置。
要监视的关键细节包括:
- 剪贴板名称和内容(例如,检查字符串、URL、图像)。
- 存在的项目数量和数据类型,利用标准和自定义数据类型检查。
- 通过检查
setItems:options:
方法检查到期和仅限本地选项。
监视工具使用示例是objection的剪贴板监视器,它每5秒轮询generalPasteboard以查看更改并输出新数据。
以下是一个简单的JavaScript脚本示例,受objection方法启发,每5秒读取并记录剪贴板中的更改:
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
var items = "";
var count = Pasteboard.changeCount().toString();
setInterval(function () {
const currentCount = Pasteboard.changeCount().toString();
const currentItems = Pasteboard.items().toString();
if (currentCount === count) { return; }
items = currentItems;
count = currentCount;
console.log('[* Pasteboard changed] count: ' + count +
' hasStrings: ' + Pasteboard.hasStrings().toString() +
' hasURLs: ' + Pasteboard.hasURLs().toString() +
' hasImages: ' + Pasteboard.hasImages().toString());
console.log(items);
}, 1000 * 5);
参考资料
- https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8
- https://hackmd.io/@robihamanto/owasp-robi
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/
{% embed url="https://websec.nl/" %}
从零开始学习 AWS 黑客技术,成为专家 htARTE (HackTricks AWS Red Team Expert)!
支持 HackTricks 的其他方式:
- 如果您想看到您的公司在 HackTricks 中做广告或下载 PDF 版本的 HackTricks,请查看订阅计划!
- 获取官方 PEASS & HackTricks 商品
- 探索PEASS 家族,我们的独家NFTs
- 加入 💬 Discord 群组 或 电报群组 或在 Twitter 🐦 @carlospolopm** 上关注我们**。
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 来分享您的黑客技巧。