攻击目标:
应用HTTP协议的服务器和客户端、以及运行在服务器上的Web应用等。
攻击基础:
HTTP是一种通用的单纯协议机制。在Web应用中,从浏览器那接受到的HTTP请求的全部内容,都可以在客户端自由地变更、篡改,Web应用可能会接收到和服务器完全不相同的、被刻意篡改的内容。
攻击对象:
URL查询字段或表单、HTTP首部、Cookit等。
在HTTP的请求报文内加载攻击代码,就能发起Web应用的攻击,通过URL查询字段或表单、HTTP首部、Cookit等途径把攻击代码传入,若代码存在安全漏洞,则会被攻击者拿到管理权限,然后请求内容被更改或获取。
攻击方式:
主动攻击和被动攻击
主动攻击:以服务器为目标的主动攻击
主动攻击是指攻击者通过直接访问Web应用,把攻击代码传入的攻击模式。由于该模式是直接针对服务器上的资源进行攻击的,因此攻击者需要能够访问到那些资源。
主动攻击模式里具有代表性的攻击是SQL注入攻击和OS命令注入攻击。
SQL注入攻击
该攻击主要是针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。
攻击模式:当Web应用对数据库表内的数据进行检索、添加或删除等操作时,会使用SQL语句连接数据库进行相应的操作,所以如果在调用SQL语句的时候存在漏洞的话,将会被恶意注入非法的SQL语句。所以可以在Web的地址栏部分进行相应的攻击处理。如:在URL中,加--,在SQL语句中--表示注释的意思,会将一部分内容注释掉,达到攻击者的攻击目的。
攻击影响:非法查看或篡改数据库内的数据、规避认证、执行和数据库服务器业务关联的程序
OS命令注入攻击
该攻击是通过Web应用,执行非法的操作系统命令达到攻击目的,只要在能调用Shell函数的地方就存在被攻击的风险。
攻击模式:从Web应用中通过Shell来调用操作系统命令,如果在Shell调用时存在漏洞,就可以执行攻击者的非法OS命令,也就是说,可以通过OS注入攻击执行OS上安装的各种程序。如发送咨询邮件来注入攻击。
被动攻击:以服务器为目标的被动攻击
被动攻击时指利用圈套策略执行攻击代码的攻击模式,在被动攻击的过程中,攻击者不直接对目标Web应用程序发起攻击,一般的攻击手法是设置陷阱让用户去触发,中招后的用户浏览器会把含有攻击代码的HTTP请求发送给作为攻击目标的Web应用,运行攻击代码。攻击者借助这个攻击代码为基础,可以窃取用户个人信息、篡改滥用用户的信息等。该攻击模式连企业内网都同样会受到攻击。
被动攻击中具有代表性的攻击是跨站脚本攻击和跨站点请求伪造、HTTP首部注入攻击等。
跨站脚本攻击
XSS,Cross-Site Scripting,是通过安全漏洞的Web网站注册用户的浏览器内运行非法的HTML代码或者JavaScript进行的一种攻击。
攻击模式:攻击者编写脚本设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击。
攻击影响:利用虚假输入表单骗取用户个人信息、利用脚本窃取用户的Cookit值,被攻击者在不知情的情况下,帮助攻击者发送恶意请求、显示伪造的文章或图片
XSS是攻击者利用预先设置好的陷阱触发的被动攻击。如:在URL中加入特定的script代码来获取登录者的个人登陆信息、对用户Cookit的窃取攻击(通过Js获取)。
跨站点请求伪造
CSRF,是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某种状态更新,属于被动攻击。影响:利用已通过认证的用户权限更新设定信息、利用已通过认证的用户权限购买商品、利用已通过认证的用户权限在留言板上发表言论。等
HTTP首部注入攻击
该攻击模式是指攻击者通过响应首部字段被插入换行、添加任意响应首部或主体的一种攻击。属于被动攻击模式。向首部主体添加内容的攻击称为HTTP响应截断攻击。
攻击模式:Web应用有时会将从外部接收到的数值,赋给响应首部字段Location和Set-Cookit。HTTP首部注入通过在某些响应首部字段需要处理输出值的时候,插入换行发动攻击。
攻击影响:设置任何Cookit信息、重定向至任意URL、显示任意的主体(HTTP响应截断攻击)
攻击案例:
1、在URL后添加以%0D%0A(HTTP报文中的换行符),后紧接着攻击者自己编写的首部攻击字段进行信息获取,如Set-Cookit来获取相应Cookit的值。
2、HTTP响应截断攻击:将两个%0D%0A并排插入字符串后发送,利用两个连续的换行就可做出HTTP首部和主体分隔所需的空行类,这样就能显示伪造的主体,达到攻击目的。利用这种攻击方式,已触发陷阱的用户将看到伪造的Web页面,再让用户输入个人信息等,达到跨站脚本攻击相同的效果。
3、缓存污染:滥用HTTP/1.1中汇集多响应返回功能,会导致缓存服务器对任何内容进行缓存操作,使用该缓存服务器的用户,在浏览遭到攻击的网站,会不断地浏览被替换掉的Web网页。
其他攻击方式:
邮件首部注入攻击
该攻击模式是指Web应用中的邮件发送功能,攻击者通过对邮件首部To或Subject内任意添加非法内容发起的攻击。利用存在安全漏洞的Web网站,可对任意邮件地址发送广告邮件或病毒邮件。
攻击案例:攻击者将以下数据作为邮件地址发起请求,然后在后面加上%0D%0A在邮件报文中表示换行符,使用了之后,可以对邮件地址进行追加发送,使用连续两个换行符就有可能篡改邮件文本内容并发送。再以相同的方法,就有可能改写To和Subject等任意邮件首部,向文本添加附件等动作。
目录遍历攻击
目录遍历攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。
攻击模式:通过Web应用对文件操作处理时,由外部指定文件名的处理存在漏洞的情况下,用户可用../../etc/passed等相对路径定位到绝对路径上面,因此服务器上任意的文件或文件目录皆有可能被访问到。就可以去非法浏览、篡改或删除Web服务器上的文件。
远程文件包含漏洞
该攻击模式是指当部分脚本内容需要从其他文件读取时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取后,就可运行任意脚本的一种攻击。这是PHP存在的主要安全漏洞,对PHP的include或require来说,这个功能是一种可通过设定、指定外部服务器的URL作为文件名的功能,但是由于它十分的危险,所以PHP5.2.0后默认此功能无效。
怎样会造成安全漏洞?
因设置或设计上的缺陷引发的安全漏洞
错误设置Web服务器,或是由设计上的一些问题引起的安全漏洞。
1、强制浏览
从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。可能会泄露顾客的个人信息、泄露原本需要具有访问权限的用户才能查阅的信息内容、泄露未外连到外界的文件。比较好的做法是:隐蔽其URL。因为直接显示易推测的文件名或文件目录索引时,通过某些方法可能会使URL产生泄露。
2、不正确的错误消息处理
Web应用的错误信息内包含对攻击者有用的信息,主要有:Web应用抛出的错误信息、数据库等系统抛出的错误信息等。
Web应用抛出的错误信息:以认证功能的认证错误信息为例,讲解不正确的错误消息处理方式。类似于当用户登陆失败的时候具体提醒用户为注册等信息,攻击者可利用这些信息确认用户是否注册。建议将提醒消息的内容仅保留在“认证错误”这种程度。
数据库等系统抛出的错误信息:输入未预料的错误消息时,提醒数据库的错误。攻击者从提醒消息可读出数据库选用的是MySQL等数据库信息,可能给SQL注入攻击提供启发。
3、开放重定向
对指定的任意URL做重定向跳转的功能,加入指定的重定向URL到某个具有恶意的Web网站,那么用户就会被诱导到那个网站。如http://example/?redirect=***.攻击者指定重定向参数就可以改写成已设定好的Web 网站对应的连接。可能用来作为钓鱼攻击的跳板。
因会话管理疏忽引发的安全漏洞
如果在会话管理上有所疏忽,就会导致用户的认证状态被窃取等后果。如会话劫持(通过一些手段拿到用户的会话ID,伪装用户达到攻击的效果)、会话固定攻击(强制用户使用攻击者指定的会话ID,属于被动攻击)等方式。
- python web的一些常见技术面试笔试题
1. 三次握手四次挥手 tcp建立连接的过程是三次挥手,断开连接是4次挥手. 三次握手:建立连接时 a. 客户端发送syn=1 seq=k给服务器 b. 服务器接收到之后知道有客户端想建立连接, ...
- 新手入门:史上最全Web端即时通讯技术原理详解
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...
- Web端即时通讯技术原理详解
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...
- vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结
vue—你必须知道的 目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...
- web开发中常见的安全漏洞及避免方法
1.安全攻击 1.SQL.HTML.JS.OS命令注入 2.XSS跨站脚本攻击,利用站内信任的用户,在web页面插入恶意script代码 3.CSRF跨站请求伪造,通过伪装来自信任用户的请求来利用受信 ...
- Web前后端缓存技术(缓存的主要作用是什么)
Web前后端缓存技术Web前后端缓存技术(缓存的主要作用是什么) 一.总结 一句话总结: 加快页面打开速度 减少网络带宽消耗 降低服务器压力 1.在Web应用中,应用缓存的地方有哪些? 主要有浏览器缓 ...
- web前端各大技术都能实现什么功能
web前端各大技术都能实现什么功能 以下是孜然为你总结的web前端开发你必须要一项一项掌握的技术:Html.css.ajax.jquery.extjs.JavaScript,今天为你详细解读他们各自都 ...
- CPU虚拟化的常见技术
关键词:cpu虚拟化,KVM,Host-PassThrough,Nested,CGroup,NUMA,热添加 云计算虚拟化技术主要包括三个领域:计算.存储.网络 本文主要总结了计算虚拟化领域中的CPU ...
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Serve ...
随机推荐
- JAVA 文件读取写入后 md5值不变的方法
假如我们想把某文件读入 StringBuffer 并写入新文件,新文件md5值需要保持不变(写入新文件后保证和源文件一模一样), 我们就需要在操作 StringBuffer 时附加换行符: Strin ...
- 虚拟机console基础环境部署——工作目录准备
1. 概述2. 相关约定2.1 删除旧文件2.2 创建全局共享文件目录2.3 创建全局软件安装目录2.4 创建数据放置目录3. 总结 1. 概述 上述博客中,已经为console最小化安装了操作系统. ...
- 微信小程序初体验与DEMO分享
前言 前一段时间微信公布小程序,瞬间引来了大量的关注.博主的公司也将其定为目标之一,遂派本菜为先头兵(踩坑侠). 这次开发了一个比较完整的DEMO,模仿自某个APP首页,由于保护隐私的目的我把数据拷贝 ...
- WebGL模型拾取——射线法
今天要把WebGL中一个非常重要的算法记录下来——raycaster射线法拾取模型.首先我们来了解一下为什么要做模型拾取,我们在做webgl场景交互的时候经常要选中场景中的某个模型,比如鼠标拖拽旋转, ...
- PAT甲题题解-1064. Complete Binary Search Tree (30)-中序和层次遍历,水
由于是满二叉树,用数组既可以表示父节点是i,则左孩子是2*i,右孩子是2*i+1另外根据二分搜索树的性质,中序遍历恰好是从小到大排序因此先中序遍历填充节点对应的值,然后再层次遍历输出即可. 又是一道遍 ...
- UVALive 4877 Non-Decreasing Digits 数位DP
4877 Non-Decreasing Digits A number is said to be made up ofnon-decreasing digitsif all the digits t ...
- SCRUM 12.09 软件工程第二周计划
第二轮迭代的第二周开始了,上一周我们进行了对代码优化的探索与自我审查. 本周,我们有以下两点目标要实现: 1.对客户端进行优化. 2.网络爬虫爬取美团外卖. 客户端优化主要开发人员:高雅智.牛强.彭林 ...
- 20135220谈愈敏Linux Book_5
第五章 系统调用 内核提供了用户进程与内核进行交互的一组接口. 应用程序发出请求->内核负责满足 目的:保证系统稳定可靠 5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层 ...
- Linux内核分析——第六周学习笔记
进程的描述和进程的创建 前言:以下笔记除了一些讲解视频中的概念记录,图示.图示中的补充文字.总结.分析.小结部分均是个人理解.如有错误观点,请多指教! PS.实验操作会在提交到MOOC网站的博客中写.
- 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程
第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 ...