校园网络投票的作弊和反作弊技术
程序员文章站
2022-07-10 11:26:36
校园网络投票现在已经是征询师生意见的一种主流方式了,所有的数据都通过计算机统计,貌似公平而有效。然而,在看似公平的背后其实往往存在着巨大的漏洞,通过黑客工具的使用,公... 08-11-04...
校园网络投票现在已经是征询师生意见的一种主流方式了,所有的数据都通过计算机统计,貌似公平而有效。然而,在看似公平的背后其实往往存在着巨大的漏洞,通过黑客工具的使用,公平在一瞬间就被黑客技术左右了……
无论如何,我都必须承认,爱情是神奇的,不管它降临到了谁的身边,都能够让你陶醉其中,显然我现在也陶醉了。我深深的爱上了她的一切和这种称之为恋爱的感觉。我喜欢坐在她身边沉醉在她轻轻哼唱的歌声中,我喜欢她那张圆圆笑脸上的可爱酒窝,我喜欢她那个小巧而可爱的樱桃嘴,我喜欢她大而灵动的眼睛,那个俏皮的鼻子,雪白如玉的皮肤……
我承认,我是装出来的无所谓,其实当我小心而谨慎地牵着她的手,带她出现在我们学院的公共课上的时候,我能够真实地感受到全系271名男同胞炽热而嫉妒得发疯的眼神。要知道在我们理工学院,女孩本来就如同熊猫一样珍稀,而且大多数都长得比较“抽象”,可想而知这种强烈的对比是多么震撼的视觉冲击,当然你也一定能够想象到此时的我是多么的自鸣得意。
上帝一定是一个开玩笑的高手,正在我感觉自己开始恋爱了的时候,学校却突然宣布了一个消息,由于学校要扩大规模,因此包括音乐学院在内的几个艺术类学院要搬迁,而搬迁的地址则由师生网络投票选择。
我完全不知道音乐学院的那群学生怎么想的,网络投票结果中目前排名第一的竟然是搬迁到200公里以外的一个海边小县,如果这个结果是最终结果,那么也就意味着,我和她刚刚起飞的爱情很可能转眼就变成可怜的牛郎织女的故事。不行,这种情况绝不能发生,我必须想办法改变结果,留下她,让她留在我身边,就留在我身边的长安区!
原来是cookies验证阻止我
我打开学校的投票网站,看到这个网页是用asp编写的,一度想尝试寻找漏洞进入数据库直接修改数据,不过有了前几次我挑衅式的攻击,学校的网站安全性已经开始加强了,至少单凭几款傻瓜软件,已经不能够完全敲开它的大门了。无奈我只好另辟蹊径,从投票系统本身下手了。
在投票网站中,音乐学院的四个迁址备选地都列在了上面,我勾选了距离现在学校地址最近的“长安区”,点击“提交选票”后,提示我投票成功了。再给“长安区”投票时,系统提示我已经投过票了。
显然,投票系统加了一个简单的防作弊功能。此时我注意到,学校投票的网址为http://www.edu.cn/vote/vote_xiaozhi.asp?id=39,网站是放在公网中。正因为学校的投票网址为公网网址,我断定投票系统肯定不会采用数据库记录、核对ip地址防作弊手段。因为大多数投票的学生都是在教室机房或网吧进行的,而这些地方通常只有一个公网ip地址。我觉得学校网站采用cookies验证可能性要大得多。
cookies验证是对用户的cookies文件中特殊ip地址进行判断的,用户在投票时cookies文件会被网站加入一个特殊的ip地址且时间设为无限长。但是一旦用户关闭了浏览器的cookies功能或将cookies清空后再一次投票,这种验证方法就会失效。
于是我决定验证一下,我首先将系统中的cookies清空,然后重新打开ie浏览器,将“internet选项”中的“隐私”设为“阻止所有cookies”。修改完成后,我又一次进行了重复投票,而此时浏览器并没有弹出重复投票的警告提示,而是顺利地认为我投票成功了,显然我的判断是正确的,网站采用的就是cookies验证防作弊。
选票我要“疯”投
如果我有大量的空闲时间,并且不在乎手腕局部抽筋的话,此时我可以一直在浏览器中重复刚才的投票动作,用体力换来大量的“有效票”。但是这样似乎并不符合黑客精神的本质,而且她如果知道我为了留下她点击鼠标点到手抽筋,估计会笑破肚子的,必须采用一个简单易行的办法。
网络投票判断投票成功的条件,往往是根据投票系统接收到的回馈数据进行判断的,根据这个特性,我决定调出抓包工具winsock expert,重复一次投票动作,并点击软件中的“打开进程”按钮,在弹出对话框中选择“iexplore.exe”就可以抓取cookies中的敏感数据,查找投票的关键代码(图1)。
从抓包数据的分析中,我发现了“choice=137&submit22.x=74&submit22.y=31”这段代码。随后我选择了投票系统另外一个地区,重复投票抓包。根据反馈的数据我发现“choice=137“是控制投票选项选择的关键数据,而其他数据则没有任何意义。
分析出关键数据之后,我决定利用大名鼎鼎的网络瑞士军刀nc完成批量投票的工作。首先,我复制粘贴“长安区”投票抓包分析中的有用代码到记事本中(图2),并保存为shuapiao.txt文件。
然后,我把shuapiao.txt和nc放到同一个目录中,在dos命令提示符下输入“nc toupiao.edu.cn 80
虽然用nc直接发送数据省去了许多环节,但是发送1000票需要连续点击1000次也是我无法忍受的,bat批处理文件再一次成为了我制胜的武器(图3)。通过编写bat批处理文件,我可以精确地控制投票数。毕竟只有1000多人的一个学院,如果出现上百万的投票就会露马脚。
最后的时刻,我将txt文本、nc和bat文件复制在一个目录中完成运行(图4),20分钟后,我得到了1000票的完美结果。我希望我的黑客技术此时能够留住我的爱情……
清理虚假的民意
针对越来越多的网络刷票,有两个比较好的防范办法。一是用session技术。与常用cookies防作弊方法基本一样,它是将数据写入用户电脑的session中,时间设置为无限长(相对来说,session比cookies安全,因为session是保存在服务器上的,而cookies是保存在客户端上的)。
另外一个方法就是用验证码技术,在投票前要先手工输入验证码。这个方法较为流行,通过随机产生的验证码,就可以防止别有用心的人使用刷票工具了。