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

时间:2021-11-08 06:36:27

              第十一章、针对WEB的攻击技术

----《图解HTTP》阅读笔记
攻击目标---Web
简单的HTTP协议本身并不存在安全性 问题,协议本身并不会成为被攻击的对象,应用HTTP的服务器和客户端,以及运行在服务器上的web应用才是被攻击的目标。

攻击漏洞:
  1、HTTP不具备必要的安全技术,(不像远程登录使用的SSH可以构建安全等级高的服务):即使HTTP以及架设好服务器,但是在其上搭建Web应用时又需要重新自己搭载认证和回话管理功能,此时在用户自行设计重新搭载的过程中隐藏很多安全漏洞可以攻击。
  2、在客户端篡改请求:web服务器在等待服务器回应时,请求经过客户端时客户端可以*修改返回的报文,返回报文可能包含了恶意的攻击信息(通过URI查询字段、表单、HTTP首部或cookie等途径传入攻击代码),那么攻击者就会收到内部信息或管理权限。

攻击模式:
  1、主动攻击:针对服务器上的资源信息,通过直接访问Web应用把攻击代码传入的攻击模式。
    代表:SQL注入攻击和OS命令注入
  2、被动攻击:不直接通过WEB应用发起攻击,而是利用圈套策略执行攻击代码的攻击模式。

安全对策
  1、客户端的验证:不合适做安全防范对策,只是为了尽早辨识输入错误,提高UI体验。
  2、Web应用端(服务器端)的认证:
    --输入值验证:检查是否符合系统业务逻辑的数值或检查字符编码等预防对策
    --输出值转义:指从数据库、HTML、文件系统、邮件等地方输出Web应用数据之际转义输出数据。这是一项至关重要的安全对策,转义不完全会触发攻击者传入的攻击代码,损害输出对象。、

验证数据的地方:
客户端(验证);——HTTP请求——Web应用端(验证){输入&处理&输出};-——HTTP响应&访问DB&访问文件系统

-------------------------------------------------------------------------------------------------------------------
跨站脚本攻击XSS——通过在存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML或JavaScript进行的一种攻击
  1、利用虚假输入表单骗取用户个人信息。(创建嵌入恶意URI代码的页面---欺诈网页/欺诈邮件)
  2、利用脚本窃取用户的Cookie值,使用户在不知情的情况下,帮助攻击者发送恶意请求。
  3、显示伪造的文章或图片

SQL注入攻击——针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。
  1、非法查看或篡改数据库内的数据,例如加入"--"SQL注释掉后面的命令数据
  2、规避认证
  3、执行和数据库带我去业务关联的程序等

OS命令注入攻击——指通过web应用,执行非法的操作系统命令达到攻击的目的
(注意:只要在能使用shell命令的地方都存在风险),OS命令注入攻击通过OS命令注入可以执行OS上安装的程序。

HTTP首部注入攻击——攻击者在HTTP首部字段内插入换行,添加任意响应首部或主体的一种攻击(被动攻击模式)
BTW,向HTTP首部添加内容的攻击称为HTTP响应截断攻击。Web应用有时会把从外部接收到的数值赋给响应字段Location和Set-Cookie。
  1、设置任何Cookie信息
  2、定向到任意URI
  3、显示任意的主体(HTTP响应截断攻击)

HTTP响应截断攻击
在HTTP首部字段内并排插入两个换行符字符串(%0D%0A%0D%0A)后发送,制造出一个首部和主体分割的空行来伪造主体。

邮件首部注入攻击:
在Web应用的邮件发送功能中,通过向邮件首部To或Subject内任意添加非法内容来攻击,以发送广告邮件或病毒邮件。

目录遍历攻击/路径遍历攻击:
通过非法截断目录路径,访问本无意公开的文件目录的一种攻击。

远程文件包含漏洞:
指当部分脚本内容需要从其他文件读入时,利用外部服务器的URL充当依赖文件,脚本读取后就可以运行任意脚本的攻击。(主要是PHP存在的漏洞:PHP的include和required可以设定指定外部服务器URL作为文件名)

---------------------------设计缺陷类安全漏洞
强制浏览
不正确的错误消息处理
开放重定向

---------------------------会话管理疏漏类安全漏洞
会话劫持
会话固定攻击跨站点请求伪造

------------------------------其他
密码破解:
  1、通过网络的密码试错(穷举法/字典攻击)
  2、对已加密密码的破解(通过密码试错进行类推/彩虹表/拿到密钥/加密算法的漏洞)

点击劫持(透明的按钮或按键)
Dos攻击/服务停止攻击/拒绝服务攻击(集中大量访问请求/安全漏洞)
后门程序