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调用的后门程序

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

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

  • 相关阅读:
    jQuery 遍历函数 ,javascript中的each遍历
    定时器:右下角滑动信息通知
    nopad++将制表符替换为换行符
    使用git提交远程仓库
    (转)解决windows解决windows 7 部分程序图标显示不正常的问题
    设置gvim的字体大小
    mysql乱码
    (转)notepad++去重
    查看linux硬件的信息
    虚拟机安装centos6.5出现Error processing drive:pci-0000:00:10-scsi-0:0:0:0问题
  • 原文地址:https://www.cnblogs.com/sevenun/p/6124461.html
Copyright © 2011-2022 走看看