这年头,超男超女成风尚了!前几天我一个高中的朋友说她也参加了我们地方的什么“我酷我秀”评选,目前是是网络海选,
『我酷我秀』你的排名我作主
。我看了看,还可以,一直在前6名,表示了下祝贺就没说什么。对这类活动没感觉!2天后的晚上,她的电话就打过来了,带着哭腔,说新参加的几个人刷票太厉害了,再过几天就结束评选了,她现在被远远甩在后面,我登陆投票的站点一看,前几名的票树居然都有8-9万之多,我记得前几天我看的时候,第一名才不到一万的票,她们真是美女我就也不说什么了,我同学虽然说不是什么国色天香,也要比这几个好了太多,引用下我一个老乡的话,如果真被她们拿了前几名,还不让人误解我们那地方的美女都是这样的货色!于是决定帮同学一把!入侵准备
用同学发过来的网址一看,标题是:我酷我秀XX全民总动员,是某个娱乐门户网站协办的,难怪用的还是人家的二级域名呢。再一看图,除了第一名有几分姿色外,其它的真是让我难以形容,看来除了帮帮那个同学之外,还应该拉其它的PLMM一把!
先来分析一下这个投票系统的流程。在选手的照片边上点击那个投票的按钮图片(如图一)。进入另一个页面,并弹出JS窗口“谢谢你的参与”(如图二)。点确定后返回主页,查看一下刚才的投票数,已经涨了一票。再点这个选手的投票按钮,弹出拒绝的提示(如图三),看来是做了基本的防涮票验证。
图一
图二
图三
对于投票系统的认证模式,常见的是以下几种:
1. IP认证,通过服务器对IP的记录,限制同一IP的用户多次投票。
2. 客户端COOKIE认证,通过服务器向客户机器写入COOKIE,用COOKIE来限制用户的投票次数。
3. 服务器SESSION认证,通过服务器本机的SESSION数据记录来判断有效性。
4. 验证码之类,通过生成随机的图片验证码,限制非人为的访问和提交数据。
5. 通过用户信息验证,非注册用户无法投票,这样在对用户身份认证和防刷票上基本上做到了最好!
通过对这个投票系统的抓包结果(如图四)和投票过程测试分析,初步判断这个投票系统是通过Cookie认证的,同一个IP每15分钟对同一个选手只允许投票一次,如果客户端阻止cookie写入,投票无效并直接跳转到另外的网页。
图四
这么看起来,好像就没有漏洞了,那么别人是怎么涮票的呢?再仔细分析了一下抓包的结果。发现了一个Cookie里的时间戳cck_lasttime ,莫非服务器是通过客户端cookie的最后一次投票时间来决定下一次的投票许可判断?灵光一闪,我刚才的最后一次投票已过了15分钟,我现在重新阻止一下cookie写入试试。
在浏览器(IE)的Internet选项中,找到隐私选项卡,把里面的滑块拖到最上面,旁边写着:阻止所有Cookie(如图五)!这样一来,设置禁止Cookie写入,再来尝试投票,哈哈,成功了!想投哪个就投哪个,再也没有了限制。
图五
别人也许就是这样来涮票的,或者是花钱用人海战术,不过不管怎么样,涮票的方法我也掌握了,下面就比谁涮的快吧。用这种办法涮了一会,在那里点投票,返回主页,再点投票,总是重复操作,感觉特别的累,也很无聊。而且很慢,一个小时也涮不了多少票,眼看着第一名有九万多票,这么点下去,什么时候才追的上啊。
有没有更快的办法呢?突然之间,想到了挂马,打开肉鸡的网站,同时也会提交一份合法的选票到投票系统。这也许是个好办法。正好前一阵入侵了几个网站,现在拿过来试一试。我先拿出自己写的一个网页木马辅助制作工具(如图六),生成一份挂马的代码。放入肉鸡的主页上试了一下。没想到收效不大,可能是这些站的访问量太低了吧。而且会有JS的弹窗提示,搞不好肉鸡还会飞掉。看来还应另想良策。
图六
无奈之际,开始查查资料,有没有什么好的方法,
电脑资料
《『我酷我秀』你的排名我作主》(https://www.unjs.com)。正在翻邮箱时的时候看到了前段时间关于DDOS防护的研究资料,想起DDOS里面的一个工具“CC”,这个是通过代理来不停访问网站页面而产生攻击的--可以不停的刷新页面。于是一个新的思路出来了……拿出了以前整理收集的代理IP列表,用花刺验证了一下(如图七)。把有效的代理导出。然后打开CC(如图八),开始填写参数:
Refer:填上投票的页面地址(告诉系统我是从投票的页面而来的)
Mozilla:填写浏览器类型,用CC自带的也可以。
Cookie:是记录在本机的cookie信息,用Winsock Expert 抓包,得到投票系统验证的cookie。特别说明:此处如不填写,会被视为非法投票,只能算普通的页面攻击,而达不到涮选票的目的。
ProxyList:栏下点击Load键直接导入刚才导出的有效性代理列表;
AttackList:填写提交投票信息的链接了,回到投票系统的的页面上,在投票的按钮上点右键,选“复制快捷方式(I)”(如图九)。把得到的URL复制到CC的AttackList下面的地址栏中,再点击Add加入到攻击列表。(提示:URL前面加“G”表示Get模式)
Thread:这里默认是10线程,你可以根据自己的电脑配置去调节。
Type:这里如果你同时给多个选手投票时,勾选Sort选项。我这里只选一个投票对象,所以就不用选了。
最后点击Attack,就可以投票开始了。
图七
图八
图九
大概过了十几分钟,刷新了下投票的页面,有些卡,好久才显示出来,我同学一下子多了将近5000票,再试试多个选手同时涮票,吓了我一跳,CC啊,还真是恐怖,原来那个选手是一万多票(如图一),我稍带着涮一会儿,就变成了两万多票(如图十)……,先停了CC,然后看了看,前9名了,问下同学,她说前6名就好,不用太超前。能知足不贪心就好啊……,闲着无聊就帮几个PLMM刷了下票,结果选举的前几名都成了我喜欢的MM,本来是海选投票,结果却成了我一个人的抉择……
图十
简单的总结一下,原理其实很简单:CC是用来攻击页面的,简单的理解就是它通过大量的代理IP,模拟大量的合法用户,向站点提交请求,从而消耗站点的大量资源,造成DDOS攻击。
我们可以利用它能模拟合法用户提交请求和可以刷新页面的特点,做其他一些事,比如今天我们用来模拟不同IP的用户向投票系统提交大量的投票信息,从而为某个特定的人刷选票。
其他的应用也很多,比如说模拟大量用户访问你的站点,提高网站的在线人数、IP流量和站点排名(小心自己DDOS自己了)等等……
CC原本是用来DDOS的,换个思路也可以做其他很多的事……
至于防范CC的办法,有很多,硬件防火墙是最好的选择!在程序代码方面可以有以下几种方法:
1.利用CC多用大量代理的特征,限制代理服务器的访问,或者在代理服务器访问时,加上验证或者限制!
2.CC攻击的对象是页面,也就是一个存在消耗大量CPU计算时间的地方,对于这点,可以对站点的页面程序代码进行优化,尽量减少动态页面的使用,对于访问量大的动态页面使用静态cache技术,尽量减少CPU的资源消耗。
3.限制单位时间内同一请求IP的并发连接数,限制一定时间的刷新次数,这点可以使用Session认证。
4.可以利用代理服务器无法运行脚本和对脚本做出判断的特点,把需要对数据进行查询等消耗资源的语句做在Redirect后面,让对方必须先访问一个判断页面,等做出判断后,然后Redirect过去。
5.对于投票系统这样的,其实很简单的解决办法就是利用图片验证码,这样就没办法伪造投票的数据了!
对于CC防御等还有很多方法,不再多说,本文目的在于讲CC的另类用法,很多东西都是换个思路就可以做其他很多事情的!大家如果有什么问题,欢迎到中华盾与我交流。