学习笔记 图解HTTP 第11章 Web的攻击技术

148 阅读4分钟

11.1 概要

HTTP本身并没有安全问题,问题在于HTTP应用上,简言之,就是网站的漏洞.

11.1.1 HTTP不具备安全功能

HTTP在设计的时候就没有考虑过安全问题,所以安全功能都由用户自己实现,自己实现就会有各种各样的版本.漏洞就不可避免了.

11.1.2 攻击模式

主动攻击: 直接访问并攻击具体某个网站

代表手段

  • SQL注入
  • OS命令注入

被动攻击: 攻击者不直接攻击某个网站,而是放置陷阱,让斡旋陷阱的人执行攻击代码

代表手段:

  • 跨站脚本攻击
  • 跨站脚本伪造

应对方法

  • 检验每一个输入的值
  • 转义第一个输出的值

11.2 常见攻击手段

11.2.1 跨站脚本攻击

概念: Cross-Site Scripting,就是把其他网站的JS代码,植入到你的网站里面.属于被动攻击

实际原理:

  • 如果网站输出值转义不完全
  • 比如在论坛里面,攻击者可以把自己的头像设置成一段js代码
  • 当其他用户访问到攻击者头像时
  • 就会执行这个js代码

危害:

  • 盗取用户帐号密码等个人信息
  • 获取用户cookie,发送恶意请求
  • 显示伪造的官方文章

11.2.2 SQL注入攻击

概念: SQL Injection,通过修改请求参数,让服务器运行非法的SQL语句

实现原理:

  • 如果网站没有做SQL参数检验
  • 比如在一个查看文章的页面,攻击者可以把文章ID修改成一段SQL语句
  • 当服务器接收到这个请求时
  • 就会运行攻击者设置的这个SQL命令

危害:

  • 非法查看和修改数据库

11.2.3 OS命令注入攻击

概念: OS Command Injection,通过修改请求参数,让服务器运行非法的Shell命令

实现原理:

  • 如果网站没有做请求参数检验
  • 比如在一个发送邮件的请求中,攻击者可以附加Shell命令
  • 当服务器执行发送邮件的操作时
  • 就会运行相应的Shell命令

危害:

  • 攻击者可以任意查看和运行服务器上的程序

11.2.4 HTTP首部注入攻击

概念: HTTP Header Injection,通过在首部插入换行,添加新的首部字段攻击

实现原理:

  • 服务器如果没 对请求首部做检验
  • 攻击者在请求中添加%0D%0A换行符,后面带上相应的响应首部
  • 服务器返回响应时,就会带上这一段
  • 客户端接收到响应后,就会变成多个首部字段

危害:

  • 添加任意的Cookie
  • 重写响到任意的URL

11.2.5 HTTP响应截断攻击

概念: HTTP Response Splitting Attack, 通过在首部插入换行,添加响应主体的攻击

实现原理:

  • 大概步骤同上
  • 只是换行符是两个回车,这样后面追加的内容就变成了响应主体

危害:

  • 可以让用户界面显示任意的内容

11.2.6 邮件首部注入攻击

概念: EMail Header Injection,通过在邮件首部插入换行,添加非法内容发起的攻击.

实现原理:

  • 同HTTP首部注入攻击一样
  • 只是添加的内容不一样

危害:

  • 对任意邮件发送任意垃圾内容

11.2.7 目录遍历攻击

概念: Directory Traversal,通过伪造路径,非法访问服务器其他目录.

实现原理:

  • 如果服务器对文件名处理存在漏洞
  • 在上传/下载/访问某个文件时,攻击者可以把正常的文件名修改成相对路径
  • 服务器运行到这段代码时
  • 就会去访问另外一个目录下的文件了

危害:

  • 泄漏服务器上重要的文件信息

11.2.8 强制浏览

概念: Forced Browsing,通过猜测,访问网站上未公开的一些信息

实现原理:

  • 如果服务器对图片信息没有估权限管理
  • 攻击者可以遍历请求图片地址
  • 有可能某个用户发布的一个私密相册的照片
  • 就可能被遍历到

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

11.4.1 会话劫持

概念: Session Hijack, 攻击者通过各种手段,拿到用户的Session信息伪装成用户.

危害:

  • 就像盗QQ一样,虽然我没拿到你的密码
  • 但是我可以登陆上去发消息,看聊天纪录

11.4.2 会话固定攻击

  • 这个没太看懂

11.4.3 跨站点请求伪造

概念: Cross-Site Request Forgeries,攻击者通过陷阱,强制注册用户发起相关请求.

实现原理:

  • 基本和XSS一样
  • 只是这个要利用已登陆用户来进行请求

11.5 其他安全漏洞

11.5.1 密码破解

  • 未加密密码
    • 穷举
    • 字典
  • 已加密密码
    • 彩虹表
    • 拿密钥

11.5.2 点击劫持

就是放隐藏按钮,在用户不知情的情况下触发某些操作

11.5.3 DoS攻击

11.5.4 后门程序