OWASP-TOP10 之 注入

        注入,汉语解释为泵入、灌入或流入。站在应用程序的角度来说就是输入,如果这个输入是恶意的,并且应用程序并未判断为无效输入或者说并未进行拦截和过滤,这时候注入漏洞就出现了,OWASP的官方解释可以见这里,http://www.owasp.org/index.php/Injection_Flaws。

注入漏洞的攻击向量

        在概述中我就有描述过攻击向量,用来描述攻击者的攻击路径(方法),那么注入的攻击向量是什么呢?一般指的是恶意攻击者可以进行控制或者进行输入的每一个地方。注入漏洞一般会出现在SQL、LDAP、XPath、NoSQL的查询语句中,同样也会存在于OS命令、XML解析器、SMTP包头、表达式语句以及ORM查询语句中。

产生注入漏洞的原因

        注入漏洞的根本原因,我的理解是当攻击者向应用程序发送恶意数据的时候,应用程序并未进行校验,直接传递给到解释器,解释器是不会对攻击者输入的恶意数据进行校验,而是直接翻译成机器可以执行的语句,于是乎攻击者的目的便达成了。常见的产生注入漏洞的原因如下:

1、应用程序未对用户的数据输入做任何的验证、过滤;

2、动态查询语句或非参数化 的调用,在没有上下文感知转义的情况下,被用于解释器;

3、在ORM搜索参数中使用了恶意数据,这样搜索就获得包含敏感或未授权的数据;

4、恶意数据直接被使用或连接,诸如SQL语句或命令在动态查询语句、命令或存储过程中包含结构和恶意数据;

常见的注入方式

名称

注入方式

OS注入

在应用程序获取用户输入的地方输入可执行的系统命令来获取服务器权限;

SQL注入

在应用程序已定义好的SQL语句后面通过某些特殊的符号增加额外的语句实现攻击;

NoSQL注入

输入非SQL语句,如系统操作命令等来实现攻击的目的;

LDAP注入

输入简单的LDAP语句来自动补全过滤器,以达到提权或绕过验证;

XML解析器

通过DTD、XPath的方式,通过尝试访问内网文件的方式实现;

SMTP包头注入

邮件头注入,通过修改发包,加入CC(抄送人)等方式获取信息

ORM查询注入

通过注入拼接过的sql代码进行注

        除了上面的这些名字上就带注入的方式,反序列化漏洞的利用,我认为也可以归属到注入这个大类里面,比如Shiro反序列化漏洞fastjson1.2.47漏洞(大家可以看我前面的文章,有详细的讲解利用方法和利用原理)。

        上面是我用dvwa搭建的一个存在sql注入漏洞的靶机环境,下面是被注入页面的源码。

        可以看到源码中对用户传来的id值并没有做任何的校验过滤,显然存在sql注入漏洞的。(这里我只做一个简单的示例,接下来会针对sql注入单独出一篇文章。)

        首先试探下输入ID数字2,显然可以获取到用户名;

        接下来试探下屡试不爽的or语句3' or '1'='1,可以看到,显然是拿到了全部的账号信息,目的达成。

        我们简单的来说下为什么输入or后面那一串能实现的,可以注意到,源码里面有一句SQL语句,我们在输入框中输入的数据将会传递给到上面这句话的$id,我们尝试将我的恶意输入代入,如下图所示,因为没有对我的输入进行判断,所以将or这个词也带进select语句里面了,后面的1=1显然为真,所以,对于判断语句WHERE而言,就是输出全部的first_name和last_name,由此,便实现了SQL注入,如今这类的洞是少之又少了,但是根据这个逻辑,还是有不少类似的SQL注入漏洞的。

如何预防注入

1、对特殊的查询字符进行转移;

2、尽可能使用白名单进行输入验证;

3、在系统中考虑所有事件类型和入口点;

4、标识信任源和资源并将其添加进白名单;

5、赋予执行函数最小特权,以此减少攻击面;

6、使用安全的API,避免使用解释器,或者提供参数化界面的接口,或迁移到ORM或实体框架;

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
OWASP API Top 10 是由 OWASP(Open Web Application Security Project)组织发布的一份关于 API 安全风险的指南。它列出了使用和保护 API 时最常见的十个安全威胁。以下是 OWASP API Top 10 的列表: 1. 未经授权访问:攻击者可以通过绕过身份验证和授权机制来访问未授权的 API 功能或数据。 2. 不足的身份验证和会话管理:API 在身份验证和会话管理方面存在缺陷,导致攻击者可以获取或操纵其他用户的身份和会话。 3. 恶意输入:API 没有对输入数据进行适当的验证、过滤或编码,导致攻击者可以通过恶意输入来执行代码注入、XSS(跨站脚本攻击)等攻击。 4. XML 外部实体(XXE):API 在处理 XML 数据时没有禁止外部实体,使得攻击者可以利用 XXE 攻击来读取敏感数据、发起远程请求等。 5. 无效的输入验证:API 没有对输入参数进行正确的验证和过滤,导致可能发生参数污染、拒绝服务等安全问题。 6. 安全配置错误:API 的安全配置存在错误,例如默认配置未修改、敏感信息泄露等。 7. 敏感数据暴露:API 返回敏感信息,如用户凭证、个人身份信息等,给攻击者提供了有价值的目标。 8. 缺乏资源和限制:API 没有适当地限制资源使用,导致资源耗尽、拒绝服务等问题。 9. 无效的业务逻辑:API 的业务逻辑存在安全漏洞,例如越权访问、注入攻击等。 10. 不安全的部署环境:API 在部署环境中存在安全漏洞,例如不安全的服务器配置、未修补的漏洞等。 OWASP API Top 10 旨在帮助开发人员和安全专家识别和解决 API 安全风险,以保护应用程序和用户数据的安全。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hobby云说

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值