论坛首页 Java企业应用论坛

投票程序遭遇cc攻击怎么办

浏览 10320 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-27  
谢谢大家关注。现在投票前增加了验证码,apache和db是抗的住了,但是对方修改了程序仍然能刷票,只是速度有所下降。我认为原因在于投票页面不需要登录,是不是增加登录就能避免刷票了??
0 请登录后投票
   发表时间:2011-12-27  
只要你的验证码够复杂就没问题。

就像google不是有个自己的验证码吗?那个连人都看不清楚,更别说机器了
0 请登录后投票
   发表时间:2011-12-27  
话说有种验证码叫 recaptcha, 我们公司开发的在好多网站都使用这个
0 请登录后投票
   发表时间:2011-12-28  
使用数字证书主要是从安全角度考虑,因为验证了用户身份,也在一定程度上对某些弱智机器人进行了过滤. 嵌入式代码是指js代码,防止恶意嵌入js代码,这种行为破坏性根据页面情况可大可小.严重时可将整个系统致瘫.

你的程序是投票程序.相对比较简单.你可以这样处理.首先.投票的页面做成静态页面.这样高频访问此页问题不大.投票需要注册.注册后只可以投票一次.对于未注册和已投票用户.通过js直接拦截.页面上的提交按钮用js处理显示.这样若关闭浏览器的js,则无法提交.

最后,提交前加验证码,并且提交方式采用post方式.页面上不要超链接.对于验证码的超链接特殊处理下.即url的值是指定的几种,其余的url认为是仿制.
0 请登录后投票
   发表时间:2011-12-28  
验证码搞复杂点,比如5*19=?
这样的,如果用图片,现在有自动识别软件的
0 请登录后投票
   发表时间:2011-12-28   最后修改:2011-12-28
asdfrrrr 写道
谢谢大家关注。现在投票前增加了验证码,apache和db是抗的住了,但是对方修改了程序仍然能刷票,只是速度有所下降。我认为原因在于投票页面不需要登录,是不是增加登录就能避免刷票了??


你需要了解他们的本质,了解了本质对症下药。我做过类似的工具,但是是用来做大并发来测试网站的性能,不是用来攻击别人的。当然手段很多,我给你分析下其中的一个例子吧。

如果是我要玩你,首先我会走正常流程走一边你的投票程序,然后监控网卡的数据包。解析成明文,制作成原始脚本。
然后就对这个脚本进行参数化,也会做关联(利用上一次服务器返回的信息作为下一个post提交的参数),所以,不管你做登录,还是注册都是无济于事的,都可以批量完成的,还有就是上面有人说什么js什么什么,按钮什么什么的,都没什么用,纯扯蛋,因为他完全可以先批量虚拟出N个用户,在一个登录用户投一票,搞死你,而且原理和批量投票一模一样。
因为数据是可以从网卡抓的。你换端口或域名等也没用。然后就用这个编辑后的原始脚本,开始疯狂的并发,把这些请求发到你的服务器上,因为这些请求都是照着你的标准做的,你很难识别,而且又做了IP欺诈。你很难过滤
原理和loadrunner类似,你可以用用这个工具(脚本录制,参数化,自动关联,IP欺诈,并发脚本提交请求功能都有)。

看了上面的情况,相信怎么处理你心里应该有些数了吧。我给你2条建议
1.做图片校验,这个很有效,因为图片是后台生成的,把数字打到图片里,网卡抓到的只是图片的二进制码,但是后面提交请求时,要的是打在图片里头的数字或文字,也就是说如果他要模拟做参数关联,就要解析这张图片,把里面需要的内容读出来,关联到下一个post提交的参数里,这个其实还是不好做的,相信他们也不会花时间去搞。
2.对通讯数据进行加密,也就是数据证书加密,也就是说让他们抓到的数据包无法解析成明文,如果遇到对着一对二进制数据也能搞死你的人,那你也认了吧,遇到高手不得不服。当然现在这个貌似也不是很安全了,我知道有可以通过浏览器对你正确的证书进行缓存,然后解析时,通过浏览器代理去截获证书并把数据包解析成明文。

至于其它的你可以想想办法,比如看看他的IP欺诈啥的有没有规律啥的,从原理上去找办法,只要是要黑你的人多做事的,估计都能卡住他们。

0 请登录后投票
   发表时间:2011-12-28  
jxdncsl 写道
asdfrrrr 写道
谢谢大家关注。现在投票前增加了验证码,apache和db是抗的住了,但是对方修改了程序仍然能刷票,只是速度有所下降。我认为原因在于投票页面不需要登录,是不是增加登录就能避免刷票了??


你需要了解他们的本质,了解了本质对症下药。我做过类似的工具,但是是用来做大并发来测试网站的性能,不是用来攻击别人的。当然手段很多,我给你分析下其中的一个例子吧。

如果是我要玩你,首先我会走正常流程走一边你的投票程序,然后监控网卡的数据包。解析成明文,制作成原始脚本。
然后就对这个脚本进行参数化,也会做关联(利用上一次服务器返回的信息作为下一个post提交的参数),所以,不管你做登录,还是注册都是无济于事的,都可以批量完成的,还有就是上面有人说什么js什么什么,按钮什么什么的,都没什么用,纯扯蛋,因为他完全可以先批量虚拟出N个用户,在一个登录用户投一票,搞死你,而且原理和批量投票一模一样。
因为数据是可以从网卡抓的。你换端口或域名等也没用。然后就用这个编辑后的原始脚本,开始疯狂的并发,把这些请求发到你的服务器上,因为这些请求都是照着你的标准做的,你很难识别,而且又做了IP欺诈。你很难过滤
原理和loadrunner类似,你可以用用这个工具(脚本录制,参数化,自动关联,IP欺诈,并发脚本提交请求功能都有)。

看了上面的情况,相信怎么处理你心里应该有些数了吧。我给你2条建议
1.做图片校验,这个很有效,因为图片是后台生成的,把数字打到图片里,网卡抓到的只是图片的二进制码,但是后面提交请求时,要的是打在图片里头的数字或文字,也就是说如果他要模拟做参数关联,就要解析这张图片,把里面需要的内容读出来,关联到下一个post提交的参数里,这个其实还是不好做的,相信他们也不会花时间去搞。
2.对通讯数据进行加密,也就是数据证书加密,也就是说让他们抓到的数据包无法解析成明文,如果遇到对着一对二进制数据也能搞死你的人,那你也认了吧,遇到高手不得不服。当然现在这个貌似也不是很安全了,我知道有可以通过浏览器对你正确的证书进行缓存,然后解析时,通过浏览器代理去截获证书并把数据包解析成明文。

至于其它的你可以想想办法,比如看看他的IP欺诈啥的有没有规律啥的,从原理上去找办法,只要是要黑你的人多做事的,估计都能卡住他们。


辛苦jxdncsl打了这么多字,说的这么详细。
现在的情况是这样:一边是做程序的人,这个人在深圳上班,是公司点名指定的某家外包公司的一个经理的朋友,上次联系了一天才联系上。一边是协会。还有现在运行在虚机上,一到晚上虚机负载就高的不得了,我认为可能是晚上上网人多,攻击量大了,apache负载太高。另外领导说申请实机要评估流量,这条路也堵死了。哎,不过这投票还有4天就结束了。
0 请登录后投票
   发表时间:2011-12-28  
给你提供这么几种方案,你可以尝试着去做一下:
1.注册用户投票,每个注册用户只能进行一次投票
2.如果可以匿名投票则一个IP可以进行一次投票
3.防止刷的话,在每次提交的时候挂一个token参数(随机生成8位码),由后台生成,然后在session中保存,保存成功后,然后清除session
注:以上1、2,,保存一次IP或用户后,在系统内保存到静态的一个map中,进行缓存,减少数据库IO,如果缓存清空则查数据对比IP,然后再缓存进来,这样可以减少数据库IO,但是网络IO还是无法减少,如果想要减少网络IO,建议封锁投票过的IP对与该URL(投票地址)访问
上述是我的几点建议
0 请登录后投票
   发表时间:2011-12-28  
jxdncsl 写道
asdfrrrr 写道
谢谢大家关注。现在投票前增加了验证码,apache和db是抗的住了,但是对方修改了程序仍然能刷票,只是速度有所下降。我认为原因在于投票页面不需要登录,是不是增加登录就能避免刷票了??


你需要了解他们的本质,了解了本质对症下药。我做过类似的工具,但是是用来做大并发来测试网站的性能,不是用来攻击别人的。当然手段很多,我给你分析下其中的一个例子吧。

如果是我要玩你,首先我会走正常流程走一边你的投票程序,然后监控网卡的数据包。解析成明文,制作成原始脚本。
然后就对这个脚本进行参数化,也会做关联(利用上一次服务器返回的信息作为下一个post提交的参数),所以,不管你做登录,还是注册都是无济于事的,都可以批量完成的,还有就是上面有人说什么js什么什么,按钮什么什么的,都没什么用,纯扯蛋,因为他完全可以先批量虚拟出N个用户,在一个登录用户投一票,搞死你,而且原理和批量投票一模一样。
因为数据是可以从网卡抓的。你换端口或域名等也没用。然后就用这个编辑后的原始脚本,开始疯狂的并发,把这些请求发到你的服务器上,因为这些请求都是照着你的标准做的,你很难识别,而且又做了IP欺诈。你很难过滤
原理和loadrunner类似,你可以用用这个工具(脚本录制,参数化,自动关联,IP欺诈,并发脚本提交请求功能都有)。

看了上面的情况,相信怎么处理你心里应该有些数了吧。我给你2条建议
1.做图片校验,这个很有效,因为图片是后台生成的,把数字打到图片里,网卡抓到的只是图片的二进制码,但是后面提交请求时,要的是打在图片里头的数字或文字,也就是说如果他要模拟做参数关联,就要解析这张图片,把里面需要的内容读出来,关联到下一个post提交的参数里,这个其实还是不好做的,相信他们也不会花时间去搞。
2.对通讯数据进行加密,也就是数据证书加密,也就是说让他们抓到的数据包无法解析成明文,如果遇到对着一对二进制数据也能搞死你的人,那你也认了吧,遇到高手不得不服。当然现在这个貌似也不是很安全了,我知道有可以通过浏览器对你正确的证书进行缓存,然后解析时,通过浏览器代理去截获证书并把数据包解析成明文。

至于其它的你可以想想办法,比如看看他的IP欺诈啥的有没有规律啥的,从原理上去找办法,只要是要黑你的人多做事的,估计都能卡住他们。



解释一下,先说js的问题,防止恶意植入js代码,这个漏洞是挂马的最低级方式,也可以通过js改变提交时的数据值做成合法的目标数据,这个时候证书也是不必破译的,这种问题可大可小.可以网上搜索一下木马的植入方式.有详细介绍.
另外,说一下,通过分析数据包做批量注册的问题.这种技术目前比较成熟.基本注册时都是带图片验证码的.安全度高的带数字证书,比如常见的VPN证书等. 如果注册用户可以做成你说的这样.那也不必考虑投票过程了,光是一直注册也达到目的了.
0 请登录后投票
   发表时间:2011-12-29  
实际上数字证书也没办法解决问题,因为代码是需要下载到本地浏览器执行的,所以源代码不通过网卡抓包,在浏览器内存里也是可以看到的,代码必须还原成HTML源代码才可以被浏览器解析。

所以基本上也就是识别客户端的操作到底由机器进行还是人工操作。

这类似于GG baidu那样的广告系统,即便是GG BAIDU也没办法从技术角度识破机器操作,不然也就不会有大量的封AD账户了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics