《图解HTTP》阅读笔记--第十一章针对web的攻击技术
第十一章、针对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攻击/服务停止攻击/拒绝服务攻击(集中大量访问请求/安全漏洞)
后门程序
《图解HTTP》阅读笔记--第十一章针对web的攻击技术的更多相关文章
- 针对Web的攻击技术
主动攻击 SQL注入攻击 OS命令注入攻击 会话劫持 被动攻击 XSS攻击 CSRF攻击 HTTP首部注入攻击 会话固定攻击 一.主动攻击 1.SQL注入攻击(案例) 什么是SQL? SQL是用来操作 ...
- 《图解HTTP》阅读笔记--第七章---确保WEB安全的HTTPS
第七章.确保WEB安全的HTTPSHTTP的缺点:通信使用明文(不加密),内容可能会被窃听 解决---加密处理: //将通信加密 :通过SSL(安全套接层)---HTTPS(超文本传输安全协议)--- ...
- 《图解HTTP》 第11章 web的攻击技术
11.1 针对Web的攻击技术 简单的HTTP协议本身并不存在安全性问题,所以协议本身几乎不会成为攻击的对象. 11.1.1 HTTP不具备必要的安全功能 11.1.2 在客户端即可篡改请求 在HTT ...
- 《Linux内核设计与实现》第五周读书笔记——第十一章
<Linux内核设计与实现>第五周读书笔记——第十一章 20135301张忻 估算学习时间:共2.5小时 读书:2.0 代码:0 作业:0 博客:0.5 实际学习时间:共3.0小时 读书: ...
- 图解HTTP——阅读笔记
基础部分 第1章 了解Web及网络基础 重点了解HTTP协议在网络中的作用,扮演了什么角色,以及网络传输中相关的一些角色. 3项重要的web构建技术:HTML,URL,HTTP HTTP协议位于应用层 ...
- o'Reill的SVG精髓(第二版)学习笔记——第十一章
第十一章:滤镜 11.1滤镜的工作原理 当SVG阅读器程序处理一个图形对象时,它会将对象呈现在位图输出设备上:在某一时刻,阅读器程序会把对象的描述信息转换为一组对应的像素,然后呈现在输出设备上.例如我 ...
- [计算机网络]图解HTTP阅读笔记
总述 书的定位:一本十分浅显的HTTP书籍,主要介绍了HTTP与HTTPS.适合入门了解,很多地方都是蜻蜓点水,但稍微深入的地方能让人了解重点在哪,后面应该有针对性地阅读深入书籍. 主要内容:介绍了T ...
- [CSAPP笔记][第十一章网络编程]
第十一章 网络编程 我们需要理解基本的客户端-服务端编程模型,以及如何编写使用因特网提供的服务的客户端-服务端程序. 最后,我们将把所有这些概念结合起来,开发一个小的但功能齐全的Web服务器,能够为真 ...
- 深入理解 C 指针阅读笔记 -- 第六章
Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_ /*<深入理解C指针>学习笔记 -- 第六章*/ typedef struct _ ...
随机推荐
- PostgreSQL recovery.conf恢复配置
PostgreSQL recovery.conf恢复配置 这一章描述recovery.conf 文件中可用的设置.它们只应用于恢复期.对于你希望执行的任意后续恢复, 它们必须被重置.一旦恢复已经开始, ...
- UTF-8, Unicode, GB2312格式串转换之C语言版
原住址:http://www.cnitblog.com/wujian-IT/archive/2007/12/13/37671.html /* author: wu.j ...
- docker 端口映射iptables: No chain/target/match by that name错误解决方法
pkill docker iptables -t nat -F ifconfig docker0 down brctl delbr docker0 service docker restart
- Ubuntu中vi命令的使用
指今说明: 进入 vi 的命令vi filename: 打开或新建文件,并将光标置于第一行首 vi +n filename: 打开文件,并将光标置于第n行首 vi + filename: 打开文件,并 ...
- DAY15-web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- js兼容事件
//浏览器检测(function () { window.sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.ma ...
- 基于:Hadoop 2.6.0-cdh5.4.0 hive1.1.0 HBase 1.0.0-cdh5.4.0 关键配置文件
core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value ...
- java GC是在什么时候,对什么东西,做了什么事情?
1.新生代有一个Eden区和两个survivor区,首先将对象放入Eden区,如果空间不足就向其中的一个survivor区上放,如果仍然放不下就会引发一次发生在新生代的minor GC,将存活的对象放 ...
- re.match
- 最短路dijkstra堆优化
demo: #include<bits/stdc++.h> #define max_v 102000 #define inf 0x3f3f3f3f using namespace std; ...