OWASP TOP10-A1

  • 注入
    • 什么是注入?
    • 攻击方式
    • 危害
    • 脆弱点(容易被注入的地方)
    • 常见的注入方式
    • 注入演示
    • 防范

注入

什么是注入?

将不受信任的数据作为命令或查询的一部分发送到解析器时,解析器会解析出恶意内容。攻击者的恶意数据可以让解析器执行非预期内的命令或者访问数据。

攻击方式

几乎任何的数据源都可以作为注入的地方,按照我的理解来说,就是只要用户可以摸到的地方攻击者也都可以碰到,成为注入载体,比如环境变量、所有类型的用户、参数等等,只要可以传递到解释器,就可以被解释,产生注入漏洞。

危害

导致数据丢失、破坏、泄漏给无授权方,缺乏无审计性或是拒绝服务。有时甚至导致主机被完全接管。

脆弱点(容易被注入的地方)

  1. 用户提供的数据没有经过应用程序验证、过滤或净化
  2. 动态查询语句或非参数化调用,在没有上下文感知转义的情况下,被用于解释器
  3. 在ORM搜索参数重使用了恶意数据,获得未授权或敏感的数据
  4. 恶意数据直接被使用或者连接,诸如SQL语句或命令在动态查询语句、命令或存储过程中包含结构和恶意数据

常见的注入方式

  1. os注入:在一些可以输入的地方通过输入可执行系统代码来获取服务器权限
  2. SQL注入:通过在已定义好的SQL语句后方添加额外的SQL语句来实现攻击
  3. NOSQL注入:输入非sql语句(系列操作符)来实现攻击
  4. LDAP注入:通过输入简单的LDAP语句来自动补全过滤器以达到提权或绕过验证的攻击
  5. XML解析器:通过DTD、XPath的方式,通过尝试访问内网文件等方式进行攻击
  6. SMTP包头注入:邮件头注入,通过修改发包,加入CC(抄送人)等方式获取信息
  7. ORM查询注入:和sql注入原理类似,通过注入拼接过的sql代码进行注入

注入演示

这里选用了官方文档的例子,觉得这个通俗易懂,新手更能理解。

  • 情景1:原生sql
//以下代码存在脆弱性,可以通过构造永真式来查询出所有数据
String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") + "'“;
  • 情景2:采用Hibernate的查询框架
//此处框架并没有判断用户输入,盲目信任产生漏洞
Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'");

我们只需要在后方输入id的位置输入

id=’ or’1’=’1

查询的意义就会变为输出accounts表中的所有数据。

防范

防止注入漏洞的方法就是将数据尽可能的跟命令语句、查询语句分隔开
使用安全可信任的API,避免使用解释器,提供参数化界面的接口,或迁移到【orm】或【实体框架】(后边这半句官方给的没看太懂)
使用规范化的输入验证方法
转译特定的特殊字符


ps:写在文后:
依旧是CSDN和安全行业的小弟,持续在努力,大佬们看到我的错误希望可以及时指正我,如果可以再给我一些建议就更好了,谢谢!

OWASP TOP10-A1:注入相关推荐

  1. TWO DAY | WEB安全之OWASP TOP10漏洞

    TWO DAY | WEB安全之OWASP TOP10漏洞 一.OWASP简介 OWASP:开放式Web应用程序安全项目(Open Web Application Security Project), ...

  2. OWASP TOP10 移动安全漏洞(安卓)2017

    文章目录 前言 OWASP TOP10 移动安全漏洞(安卓)2017 一.脆弱的服务器端安全控制 二.不安全的数据存储 三.传输层保护不足 四.意外的数据泄露 五.弱授权和身份认证 六.密码破解 七. ...

  3. owasp top10 渗透测试

    本期内容 1.了解什么是渗透测试 2.常见漏洞有哪写 3.练习测试 目录 一.渗透测试 1.介绍 1.什么是 OWASP TOP 10 二.常见漏洞 的攻击方式 原因 和影响 A1 注入漏洞 攻击方式 ...

  4. OWASP TOP10 及防御手段(附加应用安全设计框架)

    >>Ⅰ 了解Web交互的基本过程 图1.Web交互的基本过程(实际应用) 图2.Web交互的交换过程(原理) OWASP TOP10 1.1 A1-注入 注入漏洞攻击,例如SQL,OS,和 ...

  5. WEB安全-OWASP TOP10

    目录 1.渗透测试基础 2.常见名词解释 3.OWASP TOP10 3.1访问控制崩溃 3.2敏感数据暴露 3.3注入 3.4不安全的设计 3.5安全配置不当 3.6使用含有已知漏洞组件 3.7认证 ...

  6. OWASP top10 详解

    目录 什么是owasp top10? 排行榜 (1)SQL 注入 (2)失效的身份认证和会话管理 (3)跨站脚本攻击 XSS (4)直接引用不安全的对象 (5)安全配置错误 (6)敏感信息泄露 (7) ...

  7. OWASP TOP10系列之#TOP1# A1-注入类

    OWASP TOP10系列之#TOP1# A1-注入类 提示:本系列将介绍OWASP TOP10 安全漏洞相关介绍,主要针对漏洞类型.攻击原理以及如何防御进行简单讲解:如有错误,还请大佬指出,定会及时 ...

  8. 德慎思信息安全-OWASP 系列之注入漏洞(上)

    OWASP 系列之注入漏洞(下) 摘要 上一期,我们介绍了注入漏洞中常见的 SQL 注入漏洞,主要内容是以 MySQL 为例介绍了 SQL注入的基本原理,并举例了几个常见的注入手法与原理.本期我们来介 ...

  9. 面试常见问题之OWASP top10

    最近找工作浏览时,发现好多安全渗透岗的工作要求中有提到熟悉OWASP top 10这点,特意上网搜了下发现有好多关于这方面介绍,因此总结了一下,同时也分享给大家. OWASP top 10是什么? 首 ...

  10. OWASP top10漏洞原理及防御(2017版官方)

    文章目录 一.OWASP top 10简介 二.OWASP top 10详解 A1:2017-注入 A2:2017-失效的身份认证 A3:2017-敏感数据泄露 A4:2017-XML外部实体(XXE ...

最新文章

  1. 【组队学习】【24期】Datawhale组队学习内容介绍
  2. 一道让你拍案叫绝的算法题
  3. mybatis与mysql的优点_MyBatis的优缺点以及特点
  4. 使用命令行加载 jMeter 自定义配置文件里的自定义 property
  5. 什么可以搜python答案_什么软件可以搜python答案
  6. 博途变量类型_PLC数据类型(UDT)
  7. nofollow标签_nofollow标签是什么?如何使用
  8. MQTT onenet 使用记录
  9. 关于JS的window.onload与$(function (){})方法区别
  10. sprk sql自定义UDF函数
  11. IT技术支持必备知识
  12. Unity3D插件之DoTween
  13. linux——20线程池
  14. 小程序动态隐藏分享按钮
  15. 基于动态手势识别的酷狗音乐播放器控制
  16. OpenGL红宝书的部分学习记录
  17. CTP开发——初始化
  18. 自动控制原理(1)-典型环节的传递函数
  19. el-badge 标记
  20. Android 中 View 的手势事件处理

热门文章

  1. Raspberry Pi 树莓派的备份
  2. 联想5u可选双电源万全R350 G7 S5506 2G/500SN热插拔
  3. 移动端键盘输入框把底部元素顶上去了_关于input调用移动端键盘的问题
  4. 网站SEO排名的一些因素
  5. opencv播放视频失败,提示can‘t open camera by index
  6. 误修改/etc目录下所有文件权限导致无法远程访问
  7. 使用JQuery实现淘宝导航栏效果
  8. OA系统之操作系统和浏览器常识
  9. 微信小冰陪聊机器人Python
  10. MySQL undo日志