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

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

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

《图解HTTP》 第11章 web的攻击技术的更多相关文章

  1. 基于http的追加协议、构建web内容的技术、web的攻击技术(9,10,11)

    第九章 基于http的追加协议 用来提升http的瓶颈,比如Ajax技术,spdy等 第十章 构建web内容的技术 html.css.js等 第十一章 web的攻击技术 比如sql注入攻击.xss等.

  2. 《图解HTTP》阅读笔记--第十一章针对web的攻击技术

    第十一章.针对WEB的攻击技术 ----<图解HTTP>阅读笔记攻击目标---Web简单的HTTP协议本身并不存在安全性 问题,协议本身并不会成为被攻击的对象,应用HTTP的服务器和客户端 ...

  3. web的攻击技术

    简单的http协议本身并不存在安全性问题,因此技术本身几乎不会成为攻击的对象,应用http协议的服务器和客户端,以及运行在服务器端web应用等资源才是攻击目标,那么怎么攻击,来源于哪里呢 web应用攻 ...

  4. 《图解Http》 10,11章:构建Web的技术, Web的攻击技术

    10.2动态HTML 通过调用客户端脚本语言js,实现对web页面的动态改造.利用DOM文档对象模型,指定想发生变化的元素. 10.22 更容易控制的DOM 使用DOM可以将HTML内的元素当作对象操 ...

  5. Web的攻击技术笔记

    HTTP不具备必要的安全功能,就是一个通用的单纯协议机制,比如远程登录时会用到的SSH协议来说,SSH具备协议级别的认证及回话管理等功能,HTTP协议则没有.另外在架设SSH服务方面,任何人都可以轻易 ...

  6. 针对Web的攻击技术

    主动攻击 SQL注入攻击 OS命令注入攻击 会话劫持 被动攻击 XSS攻击 CSRF攻击 HTTP首部注入攻击 会话固定攻击 一.主动攻击 1.SQL注入攻击(案例) 什么是SQL? SQL是用来操作 ...

  7. HTTP通信安全和Web攻击技术

    一.HTTPS,确保Web安全 在HTTP协议中可能存在信息窃听或身份伪装等安全问题,HTTP的不足: 通信使用明文(不加密),内容可能会被窃听  不验证通信方的身份,因此有可能遭遇伪装 无法证明报文 ...

  8. Web攻击技术

    Web攻击技术 1.针对Web的攻击技术 1.1.在客户端即可篡改请求 在Web应用中,从浏览器那接收到的Http的全部内容,都可以在客户端自由地变更.篡改,所以Web应用可能会接收到与预期数据不相同 ...

  9. [flask/python/web] 解析flask web开发(Miguel著)一书第11章主页不显示博文表单的问题

    ---------------------------------------------以下内容2017.7.14更新---------------------------------------- ...

随机推荐

  1. Target runtime Apache Tomcat v6.0 is not defined. phyy Unknown Faceted Project Problem

    Description Resource Path Location TypeTarget runtime Apache Tomcat v6.0 is not defined. phyy Unknow ...

  2. SVN 中trunk、tags、branches使用

    简介 我们都知道SVN是管理项目源代码的软件,可以把我们开发中的各个阶段的代码记录下来,供我们以后来使用,那么SVN具体的结构你是否知道呢?下面我们来介绍一下它的基本结构 Trunk.Branches ...

  3. js上拉加载、下拉刷新的插件

    之前在网上找那种下拉刷新,上拉加载的插件,有一款IScroll,但是用起来太麻烦,于是就自己写了款,但依赖于jquery.js,bug肯定有,希望评论提出. js: /* 简洁的下拉刷新,上拉加载插件 ...

  4. git pull 代码很慢的问题

    办公环境调整,之前开发机是和自己的电脑放同一网段内的,现在开发机放至到本地其他网段内,造成pull 代码很慢的问题,在网上查了一下 以下是原文,链接为 http://blog.sina.com.cn/ ...

  5. 【网络流#9】POJ 2135 Farm Tour 最小费用流 - 《挑战程序设计竞赛》例题

    [题意]给出一张无向图,从1开始到n,求两条没有公共边的最短路,使得路程总和最小 每条边的权值设为费用,最大流量设为1,然后就是从源点到汇点流量为2的最小费用流. 因为是规定了流量,新建一个源点和一个 ...

  6. SpringMVC06以对象的方式获取前台的数据

    ========创建需要的两个实体类================ public class School { private String sName; private String addres ...

  7. 迁移/home目录至新硬盘分区总结--无备份情况下

    搞了一天,终于成功迁移.由于一开始就没备份过程实在很曲折. 希望本篇对那些没有备份习惯的朋友们有所帮助. 准备工作: sudo vim /etc/fstab 在文件中加入: /dev/sdb8     ...

  8. PHP Zip File

    安装 如需在服务器上运行 Zip File 函数,必须安装这些库: Guido Draheim 的 ZZIPlib 库: 下载 ZZIPlib 库 Zip PELC 扩展:下载 Zip PELC 扩展 ...

  9. react-native迁移版本遇到的问题

    问题: 1.  failed to find Build Tools revision 23.0.1 两个版本号需要对应

  10. hdu 2480 贪心+简单并查集

    Steal the Treasure Time Limit: 10000/6000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...