JavaScript黑魔法:洪水攻击

偶然间,在国外的安全网站CloudFlare看到一篇文章,介绍了一种基于JavaScript的在线攻击,大意是:在网页中加入特殊JS脚本,使访问网页的每个人都高频访问某个目标网站地址,大量的访问,即形成为了一种DDOS攻击,也称为洪水拒绝服务攻击。

读来感觉颇有意思,那么,本文测试一下其是否真实有效。并思考其对应的防护方法。

首先,用NodeJS编写一个简单的Web服务器,代码如下:

在NodeJS环境中运行,启动后,这是一个简单的Web服务,访问时会加载一个静态网页,从后台命令行中,可显示被访问的URL:

这个简单的Web服务器,模拟被攻击目标,至此已准备就绪。

接下来,写攻击脚本,嵌入在网页中的JS代码,是核心部分:

这段代码含义、攻击原理是:每10毫秒,带一个随机参数访问一次127.0.0.1/index.html。

为了防止脚本被识破,可对JS代码进行混淆加密,比如使用JShaman加密上述JS代码:

加密后的代码效果:

这样,JS代码成为密文状态,他人就无法分析代码、无法得知攻击逻辑了。

然后是使用:网页被打开时,攻击立即发生:

由上图可看到,后台立刻监测到了大量访问请求。

查看本机网络连接状态,可以看到大量的访问连接:

单个人的访问,即产生如此多的连接。如果代码是嵌入在某个有很多访问量的页面上,想必会产生相当威力?

更理想的效果是:访问服务器上与后台有交互、消耗系统CPU或磁盘性能的网页,最终达到使Web服务器无法正常处理连接请求。这也是拒绝服务攻击的普遍原理。

注:本文是实验性质,用于技术研究、测试基于JavaScript脚本的DDOS攻击,所有操作均是在本地自己机器中进行测试。

简单测试到此结束,从实验来看,虽然没有产生危害,但证明方式是有效果的,起码在理论上如此。

那么,对此种可能发生的攻击,该如何防护呢?

在攻击端而言,要防止页面被植入不法脚本。

在被攻击端而言,也应做好网站安全防护,比如后台逻辑对同一访问者的访问频率做限制、与服务器有交互的页面设计验证访问机制等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值