基于JavaScript的DDoS攻击

DDoS,即Distributed Denial of Service,中文译为分布式拒绝服务攻击,是一种常见的网络攻击方式。它的基本思想就是像一台服务器发送大量的请求,服务器大量的服务资源被占用,导致正常用户的请求无法得到回应。

近几年来,基于JavaScript的DDoS攻击事件常用发生。和其他DDoS攻击方式不同,基于JavaScript的DDoS攻击利用的工具是普通网民的伤亡设备,这也意味着只要装有浏览器的电脑,都能被用作为DDoS攻击者的工具。当被操纵的浏览器数量达到一定程度时,这种DDoS攻击方式将会带来巨大的破坏性。

JavaScript DDoS攻击原理

出于安全的角度考虑,现代浏览器都遵守同源策略,即在浏览器中只能够加载相同域中的资源,比如在浏览器中发起AJAX请求时,只能向相同域下面的资源和数据发起请求(使用CORS除外)。然后,标签的src属性可以绕过同源策略的限制,加载任何域中的资源。这个属性被经常被用来进行跨域获取数据,比如著名的JSONP方法。另外,为了让各种JS库加载速度更快,让用户获得更好的体验,开发者经常会使用script标签来加载CDN下的脚本,而一般情况下这些脚本都是跨域获取的。src跨域发起请求的特性给web开发带来了很多方便,但是这也使得它被用作DDoS发起攻击的工具。

下面是一个简单的例子:

function imgflood() {  var TARGET = 'victim-website.com'var URI = '/index.php?'var pic = new Image()var rand = Math.floor(Math.random() * 1000)pic.src = 'http://'+TARGET+URI+rand+'=val'
}
setInterval(imgflood, 10) 

在上面的imgflood函数中,通过Image构造函数生成了一张图片,并将这张图片的src属性指向了攻击目标站点。在定义完函数之后,使用setInterval方法定时调用imgflood函数。此时,浏览器就会源源不断的向攻击目标站点发起请求,以达到攻击目的。

如果攻击者将这段恶意代码放在一个网站加载的JavaScript脚本中,可能会由于网站的点阅率过少而使DDoS攻击失效。由于很多站点选择从CDN加载JS资源,攻击者如果破解了CDN的后台权限,将恶意代码加入JS公共库中,只要网站加载了该CDN中的JS公共库,访问该网站的用户都会成为DDoS攻击的工具。

在文章任何区域双击击即可给文章添加【评注】!浮到评注点上可以查看详情。

基于JavaScript的DDoS攻击

DDoS,即Distributed Denial of Service,中文译为分布式拒绝服务攻击,是一种常见的网络攻击方式。它的基本思想就是像一台服务器发送大量的请求,服务器大量的服务资源被占用,导致正常用户的请求无法得到回应。

近几年来,基于JavaScript的DDoS攻击事件常用发生。和其他DDoS攻击方式不同,基于JavaScript的DDoS攻击利用的工具是普通网民的伤亡设备,这也意味着只要装有浏览器的电脑,都能被用作为DDoS攻击者的工具。当被操纵的浏览器数量达到一定程度时,这种DDoS攻击方式将会带来巨大的破坏性。

JavaScript DDoS攻击原理

出于安全的角度考虑,现代浏览器都遵守同源策略,即在浏览器中只能够加载相同域中的资源,比如在浏览器中发起AJAX请求时,只能向相同域下面的资源和数据发起请求(使用CORS除外)。然后,标签的src属性可以绕过同源策略的限制,加载任何域中的资源。这个属性被经常被用来进行跨域获取数据,比如著名的JSONP方法。另外,为了让各种JS库加载速度更快,让用户获得更好的体验,开发者经常会使用script标签来加载CDN下的脚本,而一般情况下这些脚本都是跨域获取的。src跨域发起请求的特性给web开发带来了很多方便,但是这也使得它被用作DDoS发起攻击的工具。

下面是一个简单的例子:

function imgflood() {  var TARGET = 'victim-website.com'var URI = '/index.php?'var pic = new Image()var rand = Math.floor(Math.random() * 1000)pic.src = 'http://'+TARGET+URI+rand+'=val'
}
setInterval(imgflood, 10) 

在上面的imgflood函数中,通过Image构造函数生成了一张图片,并将这张图片的src属性指向了攻击目标站点。在定义完函数之后,使用setInterval方法定时调用imgflood函数。此时,浏览器就会源源不断的向攻击目标站点发起请求,以达到攻击目的。

如果攻击者将这段恶意代码放在一个网站加载的JavaScript脚本中,可能会由于网站的点阅率过少而使DDoS攻击失效。由于很多站点选择从CDN加载JS资源,攻击者如果破解了CDN的后台权限,将恶意代码加入JS公共库中,只要网站加载了该CDN中的JS公共库,访问该网站的用户都会成为DDoS攻击的工具。

JavaScript DDoS攻击防御方法

为了解决由于引入第三方恶意脚本导致的DDoS攻击的问题,W3C提出了一个叫做“子资源完整性”( Subresource Integrity)的新特性,简称SRI。这个新特性允许一个网站告诉浏览器只有在引入的脚本满足需求时才会进行解析并运行。

举个例子:

<script src="http://xxx/jquery-1.10.2.min.js"></script>

上面的这个<script>标签引入了最新稳定版的jQuery代码,如果其中被插入了恶意脚本,浏览器也会不加分辨的运行。而使用了SRI新特性之后,浏览器将会根据代码的加密哈希来对引入的代码进行判断。加密哈希就好比一个文件的指纹一般,不同的文件将会产出不同的加密哈希值。如果其中被添加了恶意脚本,则浏览器会因为加密哈希不匹配而拒绝执行引入的代码。如下所示:

  <script src="https://code.jquery.com/jquery-1.10.2.min.js"  integrity="sha256-C6CB9UYIS9UJeqinPHWTHVqh/E1uhG5Twh+Y5qFQmYg="crossorigin="anonymous">

在上面的script标签上,多添加了两个属性,其中的integrity是加载的jquery版本的加密哈希值,用于判定判定加载进来的脚本是否符合我们的期望。如果你不了解你需要加载的JS脚本的加密哈希值,可以通过https://srihash.org/这个网站进行计算。同时,crossorgin属性和http header中的CORS属性能够保证浏览器遵守同源属性并防止XSS攻击。

转载和积累系列 - 基于JavaScript的DDoS攻击相关推荐

  1. 转载和积累系列 - HTTPS原理和HTTP缓存机制

    目录 HTTPS原理 HTTPS HTTPS 的实现原理 为什么数据传输是用对称加密? 为什么需要 CA 认证机构颁发证书? HTTP缓存机制和原理 HTTP报文 缓存规则解析 强制缓存 Expire ...

  2. 浅析防御僵尸网络基于应用层的DDOS攻击

    近期数据显示,针对应用层的DDOS攻击有加速的趋势.据预测,基于应用层的DDOS攻击每年以三倍的速度增长,Gartner预测DDOS攻击会占2013年所有的应用层攻击中的25%左右.研究指出,黑客现在 ...

  3. 基于机器学习的DDos攻击检测

    2基于机器学习的DDoS攻击检测方法 环境:pycharm+python3.4 2.1数据分析与特征工程 2.1.1数据来源 kaggle 2.1.2数据大小 训练集:80万条 测试集:30万条 2. ...

  4. 转载和积累系列 - L4负载均衡的设计与实现

    目录 简介 一.LVS的局限性 1. 数据包转发性能问题 2. HA-主备结构的浪费 3. 转发模式的优缺点 二.google maglev负载均衡 Maglev Consistent Hash Go ...

  5. ddos攻击python_Python基于http的ddos攻击代码

    基于http的ddos,主要就是靠占用连接数达到攻击目标,但也非常危险,会暴露攻击者的ip,慎用 #!/usr/bin/env python import socket import time imp ...

  6. 小隐隐于野:基于TCP反射DDoS攻击分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯DDoS安全专家.腾讯云游戏安全专家 陈国 0x00 引言 近期,腾讯云防护了一次针对云上某游戏业务的混合DDoS攻击.攻击持续了 ...

  7. DDoS科普系列:什么是 DDoS 攻击?

    什么是 DDoS 攻击? 分布式拒绝服务(DDoS)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器.服务或网络正常流量的恶意行为. DDoS 攻击利用多台受损计算机系统作为 ...

  8. 基于SDN的DDoS攻击检测与防御

    2022年6月21日更新 看到很多人喜欢这篇文章我还是很高兴的,今天本来打算将我当初的实验环境公布出来,但是当时是保存到了阿里云盘,阿里云盘不支持分享. 后来改成图片格式,又显示文件过大,4G就嫌大了 ...

  9. 人工智能可以阻止基于物联网的 DDoS 攻击——研究

    机器学习可能是防止网络攻击的关键 研究人员表示,人工智能可以帮助互联网服务提供商在DDoS 攻击发生之前阻止它们. 新加坡国立大学和以色列内盖夫本古里安大学的研究结果在同行评审期刊<计算机与安全 ...

最新文章

  1. chrome弱网_请你进行一下弱网模拟
  2. poj 2492A Bug's Life(并查集)
  3. 直接拿来用!最火的iOS开源项目(二)
  4. 六行代码安装 GPU版本的TensorFlow
  5. AndroidStudio使用入门
  6. 应届生去软通动力怎么样_直播回看!信通院/浪潮/软通智慧…金句频出,看看你错过了什么?...
  7. Delphi 取整函数round、trunc、ceil和floor
  8. 服务器注意事项(切记!)
  9. IOS中通知中心NSNotificationCenter应用总结
  10. python爬虫总结
  11. 如何使用VideoProc从MKV提取字幕?
  12. TCP和UDP对比的优势和劣势
  13. plsql导入EXCEL数据到数据表
  14. python的for语句有几种写法_python的for循环写法
  15. TSP_旅行商问题 - 模拟退火算法(三)
  16. 团队成员筛选的核心秘档:三否三拒三不动
  17. 黑客 骚扰欺诈 呼死你之外还假冒给好友打电话
  18. 大疆aeb连拍_给无人机新手的3个航拍技巧,入门机也能拍大片!
  19. 一文读懂Jina生态的Dataclass
  20. 数据仓库维度建模——事实表设计

热门文章

  1. c语言程序设计实验报告金陵科技学院,金陵科技学院C语言程序设计 - 图文
  2. python选股模型 均线_python选股模型均线
  3. mindnode_mindnode映射的Vue组件
  4. 手机html怎么打印,1秒搞定!老司机教你如何打印手机照片
  5. 什么商业模式是适合你,元宇宙电商NFG了解一下
  6. Tomcat下各个文件夹的作用
  7. mysql replicate函数_使用mysqlreplicate命令快速搭建 Mysql 主从复制
  8. 【用户画像】用户画像简介、用户画像的架构、搭建用户画像管理平台
  9. codeforces 839C Journey
  10. eyoucms采集发布,让你轻松发布大量内容!