0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android中注入型漏洞基础理论总结

哆啦安全 来源:编码安全 作者:编码安全 2022-12-01 09:19 次阅读

背景

Android应用开发过程中,基于项目需求一般是团队开发,这就会出现使用多种编程语言(java、Kotlin、C++等)和一些通用框架。因此,当忽略和没有重视安全编程实践时,常见的注入型漏洞(如SQL注入、XML注入和跨站点脚本(XSS)等)可能会在应用中表现出来,从而给项目带来一些安全风险和危害。

下面从基础理论方面做下这方面的小总结。

注入漏洞原理

注入漏洞它就是将用户输入或插入后端查询或命令时发生的一类安全漏洞。通过注入元字符,攻击者可以执行无意中被解释为命令或查询的一部分的恶意代码。

例如,通过操纵SQL查询,攻击者可以检索任意数据库记录或操纵后端数据库的内容。

这种注入类型漏洞在服务器端或web服务中最常见。android应用中也存在可利用的实例,但这种情况不太常见,而且攻击面更小。

SQL注入攻击

SQL注入攻击,它涉及将SQL命令集成到输入的数据中,模仿预定义SQL命令的语法。成功的SQL注入攻击允许攻击者读取或写入数据库,并可能执行管理命令,具体取决于服务器授予的权限。

Android应用程序中一般情况下,使用SQLite数据库来控制和管理本地数据存储。假设Android应用程序通过将用户凭据存储在本地数据库中来处理本地用户身份验证。当登录SQLite数据库后,应用程序查询数据库以搜索用户输入的用户名和密码的记录。

ab49b078-710e-11ed-8abf-dac502259ad0.png

如果上图中用户名和密码都设置为'1' = '1'并且都为真的情况下,这个查询后的数据库就会返回所有记录,这样就能够正常登录,这样就出现非正常授权的用户也能够正常登录数据库。

因此针对这种类型的注入攻击,除了对输入数据进行校验外,也可结合对用户进行多重身份验证。确保登录的用户为指定授权的用户。

XML注入攻击

在XML注入攻击中,攻击者注入XML元字符以从结构上去改变XML内容。这可以用来破坏基于XML的应用程序或服务的逻辑,也可能允许攻击者利用XML解析器处理内容的操作。

这种XML攻击的一个流行变体是XML外部实体(XXE)。攻击者将包含统一资源标识符(URI)的外部实体定义注入到输入XML中。在解析过程中,XML解析器通过访问URI指定的资源来扩展攻击者定义的实体。解析应用程序的完整性最终决定了攻击者所具备的能力,恶意用户可以在其中执行以下任何操作:访问本地文件,触发对任意主机和端口的HTTP请求,发起跨站点请求伪造(CSRF)攻击,并导致拒绝服务条件。

XXE示例:打开本地文件/dev/random,返回无限字节流,可能导致拒绝服务。

ab5ce314-710e-11ed-8abf-dac502259ad0.png

当前的Android应用开发趋势主要集中于基于REST/JSON的服务,基于XML越来越不常见。但是在使用用户提供的或不受信任的内容来构造XML查询的罕见情况下,它可以由本地XML解析器进行解释。因此,在开发过程中应始终做好验证所述输入,并转义元字符。

注入攻击向量

android应用程序的攻击面与典型的web和网络应用程序截然不同。android应用程序通常不会在网络上公开服务,应用程序用户界面上的可行攻击向量也比较少。针对android应用程序的注入攻击最有可能通过进程间通信(IPC)接口发生,其中恶意应用程序攻击设备上运行的另一个应用程序。

在手动安全审查过程中发现,潜在漏洞需要执行以下任一操作:

1.识别不可信输入的可能入口点,然后从这些位置进行跟踪,以查看目标是否包含潜在的易受攻击的函数。

2.识别已知的、危险的库/API调用(例如SQL查询),然后检查未检查的输入是否成功地与相应的查询交互。

对于不受信任的输入,一般是通过以下常见的几个方式进入应用程序:IPC调用;自定义URL方案;二维码;通过蓝牙NFC或其它方式接收的输入文件;粘贴板;用户界面。

降低注入攻击向量的实践方案:

1.使用可接受值列表对不受信任的输入进行类型检查和/或验证。

2.执行数据库查询时,使用带有变量绑定的准备语句(即参数化查询)。如果定义了准备好的语句,用户提供的数据和SQL代码将自动分离。

3.解析XML数据时,确保解析器应用程序配置为拒绝解析外部实体,以防止XXE攻击。

4.使用x509格式的证书数据时,请确保使用了安全的解析器。

跨站点脚本

跨站点脚本(XSS),它允许攻击者将客户端脚本注入用户查看的网页。这种类型的漏洞在web应用中很常见。

当用户在浏览器中查看注入的脚本时,攻击者能够绕过同源策略,从而实现各种攻击(例如窃取会话cookie、记录按键、执行任意操作等)。

在本地应用程序的环境中,XSS风险远没有那么普遍,原因很简单,这类应用程序不依赖web浏览器。然而,android中存在很多使用WebView组件,这样就可能容易受到此类攻击。

可以在android应用程序中,分析所有存在的WebView,并分析应用程序呈现的不可信输入。

如果WebView打开的URL部分由用户输入决定,则可能存在XSS问题。

ab81640a-710e-11ed-8abf-dac502259ad0.pngab9dd7de-710e-11ed-8abf-dac502259ad0.png

如果使用WebView显示远程网站,则逃避HTML的负担将转移到服务器端。如果web服务器上存在XSS漏洞,则可用于在WebView上下文中执行脚本。

降低跨站点脚本攻击实践:

1.除非绝对必要,否则不会在HTML、JavaScript或其它解释上下文中呈现不受信任的数据。

2.适当的编码应用于转义字符,例如HTML实体编码。特别注意:当HTML嵌套在其他代码中时,转义规则会变得复杂,呈现位于JavaScript块中的URL。

考虑如何在响应中呈现数据。如果数据在HTML上下文中呈现,则必须转义六个控制字符:

abacd1e4-710e-11ed-8abf-dac502259ad0.png

针对跨站点脚本动态分析,可以使用手动或者自动输入模糊化来检测,即将HTML标记和特殊字符注入所有可用的输入字段,以验证web应用程序拒绝无效输入或转义其输出中的HTML元字符。

反射XSS攻击是指通过恶意链接注入恶意代码的攻击。为了测试这些攻击,自动输入模糊被认为是一种有效的方法。例如,BURP扫描程序在识别反映的XSS漏洞方面非常有效。

与自动化分析一样,确保所有输入向量都包含在测试参数的手动审查中。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3923

    浏览量

    127127
  • JAVA
    +关注

    关注

    19

    文章

    2957

    浏览量

    104543
  • SQL
    SQL
    +关注

    关注

    1

    文章

    759

    浏览量

    44067
  • XSS
    XSS
    +关注

    关注

    0

    文章

    24

    浏览量

    2366

原文标题:Android中注入型漏洞总结

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MPEG基础理论和协议分析

    MPEG基础理论和协议分析MPEG 基础理论和协议分析(包括DVB和ATSC)的指南MPEG 是当今最流行的音频/ 视频压缩技术之一。这是因为它不仅仅是一个单独的标准,而是一系列以相似理论为基础且
    发表于 10-20 17:36

    高速PCB基础理论及内存仿真技术

    基础理论及内存仿真技术</strong></font><br/></p><
    发表于 10-20 16:03

    高速PCB基础理论及内存仿真技术

    一本介绍高速PCB基础理论及内存仿真技术的经典书籍
    发表于 05-21 15:59

    请问单片机的基础理论需要看那些书籍啊

    请问单片机的基础理论需要看那些书籍啊?????我是新人,请多关照
    发表于 09-27 13:21

    基础理论之反射详解

    ,走线从细变宽,会增加一次反射,那是不是全程按照breakout区域走线会比较好?源端匹配电阻是不是也增加了一次反射? ......小编在此给大家分享下信号反射的基础理论知识,希望对大家有用。
    发表于 06-15 17:07

    检测技术基础理论知识

    检测技术基础理论知识
    发表于 11-27 14:51

    Spark集群安装步骤和基础理论

    Spark基础理论及安装
    发表于 11-05 09:24

    步进电机基础-步进电机的原理与特性之基础理论

    步进电机基础(3.1)-步进电机的原理与特性之基础理论前言基本信息公式前言说明步进电机的原理与特性之基础理论3. 1 基础理论1. 转矩的产生及负载角1) PM电机的转矩及负载角2)
    发表于 06-30 07:21

    磁场定向控制的基础理论

    我觉得我应该写点什么了从去年10月,也就是2019年10月15号开始研究永磁同步驱动,一个漫长的学习过程终于理解了 磁场定向控制的基础理论, 实际操作让电机转起来,还是不太容易的.想要转好,难上加难
    发表于 08-27 06:17

    逻辑与或非基础理论简析

    一、逻辑与或非基础理论:逻辑与或非,运算对象是布尔值(1或0,真或假),类似于数字电路的与门,或门,非门。与关系运算符配合,一般用于选择语句与循环语句中1、逻辑与符号为&&。 参与
    发表于 01-24 06:30

    USB接口的基础理论知识

    USB接口的基础理论知识 USB的重要关键字:
    发表于 10-15 13:08 940次阅读
    USB接口的<b class='flag-5'>基础理论</b>知识

    高速PCB基础理论及内存仿真技术

    本文档介绍了高速PCB基础理论及内存仿真技术
    发表于 08-25 15:52 0次下载

    高速PCB基础理论及内存仿真技术

    高速PCB基础理论及内存仿真技术 电子书籍,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-16 18:32 0次下载

    混频器的基础理论和应用

    混频器的基础理论和应用
    发表于 09-18 16:53 32次下载
    混频器的<b class='flag-5'>基础理论</b>和应用

    探讨碲镉汞红外探测器工艺中注入温度的影响

    本文从离子注入工艺的温度控制出发,研究了离子注入工艺中的束流、注入能量、接触面粗糙度等因素对温控的影响,并结合器件的I-V曲线,探究了碲镉汞红外探测器工艺中注入温度的影响。
    的头像 发表于 09-29 10:45 2745次阅读
    探讨碲镉汞红外探测器工艺<b class='flag-5'>中注入</b>温度的影响