zoukankan      html  css  js  c++  java
  • 《图解HTTP》 第11章 web的攻击技术

    11.1 针对Web的攻击技术

    简单的HTTP协议本身并不存在安全性问题,所以协议本身几乎不会成为攻击的对象。

    11.1.1 HTTP不具备必要的安全功能

    11.1.2 在客户端即可篡改请求

    在HTTP请求报文内加载攻击代码,就能发起Web应用的攻击。

    11.2 因输出值转义不完全引发的安全漏洞

    实施Web应用的安全对策大致分为两个部分:

    • 客户端的验证

    • Web应用端(服务器端)的验证

      • 输入值验证
      • 输出值转义

    多数情况下采用JavaScript在客户端验证数据,然而客户端允许篡改数据和关闭JavaScript。

    11.2.1 跨站脚本攻击

    跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。

    可能的影响:

    • 利用虚假输入表单骗取用户个人信息
    • 利用脚本窃取用户的Cookie值,在被害者不知情的情况下,帮助攻击者发送恶意请求。
    • 显示伪造的文章或图片

    案例

    如果图中用的是js脚本呢?(可获取用户的cookie或把密码信息定向发到攻击者手里)

    11.2.2 SQL注入攻击

    SQL注入攻击有可能会造成以下等影响:

    • 非法查看或篡改数据库内的数据
    • 规避认证
    • 执行和数据库服务器业务关联的程序

    11.2.3 OS命令注入攻击

    OS命令注入攻击(OS Command Injection)是指通过Web应用,执行非法的操作系统命令来达到攻击的目的。只要在能调用Shell函数的地方就又存在被攻击的风险。

    11.2.4 HTTP首部注入攻击

    HTTP首部注入攻击(HTTPHeader Injection)是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。

    可能的影响:

    • 设置任何Cookie信息
    • 重定向至任意URL
    • 显示任意的主体(HTTP响应截断攻击)

    11.2.5 邮件首部注入攻击

    邮件首部注入(Mail Header Injection)是指Web应用中的邮件发送功能,攻击者通过向邮件首部To或Subject内任意添加非法内容发起的攻击。

    11.2.6 目录遍历攻击

    目录遍历(Directory Traversal)攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击

    11.3 因设置或设计上的缺陷引发的安全漏洞

    11.3.1 强制浏览

    强制浏览(Forced Browsing)安全漏洞是指,从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。

    可能的影响:

    • 泄露顾客的个人信息等重要情报
    • 泄露原本需要具有访问权限的用户才可查阅的信息内容
    • 泄露未外连到外界的文件

    文件目录一览

    http://www.example.com/log/

    容易被推测的文件名及目录名

    http://www.example.com/entry/entry_081202.log

    经认证才可显示的文件

    直接通过URL访问原本必须经过认证才能在Web页面上使用的文件(HTML文件,图片,CSS等)

    11.3.2 不正确的错误消息处理

    • Web应用抛出的错误消息
    • 数据库等系统抛出的错误消息

    11.4 因会话管理疏忽引发的安全漏洞

    会化管理用来管理用户状态的必备功能,但是如果在会话管理上有所疏忽,就会导致用户的认证状态被窃取等后果。

    11.4.1 会话劫持

    会话劫持(Session Hijack)就是利用非法手段获取用户ID,从而能够伪装成用户,来达到攻击的目的。

    几种攻击者可获得会话ID的途径:

    • 通过非正规的生成方法来推测会话ID

    • 通过窃听或XSS攻击盗取会话ID

    • 通过会话固定攻击(Session Fixation)强行获取会话ID

    案例

    利用Web网站存在可跨站攻击(XSS)的安全漏洞。

    11.4.2 会话固定攻击

    会话固定攻击(Session Fixation)会强制用户使用攻击者指定的会话ID,属于被动攻击。

    案例

    Session Adoption

    Session Adoption是指PHP或ASP.NET能够接收处理未知会话ID的功能。

    11.4.3 跨站点请求伪造

    跨站点请求伪造(Cross-Site Request Forgeries,CSRF)攻击是指攻击者通过设置好的陷阱,强制已完成认证的用户进行非预期的个人信息等状态更新,属于被动攻击。

    案例

    11.5 其他安全漏洞

    11.5.1 密码破解

    密码破解攻击(Password Cracking)也就是算出密码,突破认证。

    攻击不仅限于Web应用,还包括其他的系统(FTP,SSH)。

    密码破解的手段:

    • 通过网络的密码试错

    • 对已加密密码的破解(指攻击者入侵系统,已获得加密或散列处理的密码数据的情况)

    密码试错

    穷举法,字典攻击(利用事先收集好的候选密码,如生日做密码的)

    以加密密码的破解

    Web应用在保存密码时,一般不会用保存明文的方法,通过散列函数或加salt的手段对要保存的密码本身加密。

    从加密过的数据中导出明文的方法:

    • 穷举法,字典攻击

    • 彩虹表

    • 拿到密钥

    • 加密算法的漏洞

    彩虹表

    彩虹表(Rainbow Table)是由明文密码及与之对应的散列值构成的一张数据库表,可在穷举法字典攻击过程中缩短消耗时间的技巧。

    11.5.2 点击劫持

    点击劫持(Clickjacking)是指利用透明的按钮或链接做成陷阱,覆盖在Web页面智商。诱使用户在不知情下点链接来访问内容的攻击手段。

    案例

    11.5.3 Dos攻击

    Dos攻击(Denial of Service attack)是一种让运行中的服务呈停止状态的攻击。

    攻击方式:

    • 集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也就呈停止状态。

    • 通过攻击安全漏洞使服务停止。

    多台计算机发起的Dos攻击称为DDos攻击。

    11.5.4 后门程序

    3种类型:

    • 开发阶段作为Debug调用的后门程序

    • 开发者为了自身利益植入的后门程序

    • 攻击者通过某种方法设置的后门程序

  • 相关阅读:
    idea设置全局ignore
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please ins
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistr
    kafka 删除 topic
    java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
    Centos中使用yum安装java时,没有jps的问题的解决
    Spring 整合Junit
    Spring纯注解配置
    Spring 基于注解的 IOC 配置
    打印java系统的信息
  • 原文地址:https://www.cnblogs.com/sevenun/p/6124461.html
Copyright © 2011-2022 走看看