这里先给出公式,Size在这里就是Evil_intent部分的长度,String_length和Payload_length在Setting侧都被视作payload的长度使用,故相同 。
从两个视角去审视这个公式:
- system_server侧
它会从String_length之后读取$ 2(1 + Size + 15)=2Size + 32 $,正好包括总长 。
- Settings侧
因为Parcel底层的操作对4向上凑整,所以正好露出EVIL_INTENT 。
这样就可以达成效果 。
结果POC: https://github.com/FXTi/CVE201713287POC
总结
在IPC这块就算谷歌引入了AIDL这种方式来规定接口,哪怕只是中间所用到的类的序列化过程出现一点失误都会造成如此严重的漏洞 。
可见安全编程以及代码审计的必要性,没准以后还会有类似机理的漏洞被发掘出来 。
作者:FXTi
转载自 https://www.anquanke.com/post/id/197710
推荐阅读
- docker 复制漏洞,让渗透更加艺术化
- 安卓被曝安全漏洞:允许攻击者通过蓝牙向用户发送恶意软件
- WordPress两个插件存在严重漏洞 或致32万个网站受攻击
- 电脑网站破解,提取web漏洞
- 大黑客必知必会的xxe攻击漏洞,带你了解黑客的世界
- 漏洞初探,手把手带小白进入黑客的世界
- 漏洞验证和利用代码编写指南
- 一次对客户APP渗透测试服务 深挖漏洞防止攻击的办法
- 网站安全漏洞测试对流量嗅探扫描等手法
- Kali Linux实战篇:Windows Server 2012 R2系统漏洞利用过程
