投票系统程序设计缺陷分析
1.题目描述
背景介绍
年终了,公司组织了各单位"文明窗口"评选网上投票通知。 安全工程师"墨者"负责对投票系统进行安全测试,看是否存在安全漏洞会影响投票的公平性。
实训目标
1、了解浏览器插件的使用;
2、了解开发程序员对IP地址获取方式;
3、了解网络协议软件的使用,如burpsuite等;
解题方向
根据页面提示,进行投票页面测试。
2.解题思路
打开靶场要求为ggg号选手投票让他获得第一名,但是只有一次机会!!!所以怎么给他投更多的票呢????
由提示可以看出,它应该是限制IP,也就是一个IP只能投一次。
这就要知道PHP获取IP的一些方式,其中x-forwarded-for方式是可以伪造的,在数据包中添加即可。
添加形式:
x-forwarded-for: 192.168.1.1
但为了最终ggg的第一,我们不可能一个一个的改一个一个的发送,要经常更改IP地址,这就用到了burpsuite的一些功能。
3.解题流程
1.抓取为ggg投票的数据包,在其中添加 x-forwarded-for: 192.168.1.1
2.为了得到多变的IP地址,将IP的后两位加入到变量中(后两位IP是变量的IP数就已经60000多个了,够用了),选中IP第三位右键send to Intruder 添加变量。为了观测实时提交时的response,可以右send to repeater。
-
在Intruder中为其设置成变量,采用自定义模式,两个参数均用Number ,从1~255,中间间隔为1。
4.进行爆破模块 start attack,等待一会儿,发送数据包,刷新网站就可以了(在爆破时,点击查看response 返回的是0,则投票成功了,我已经用爆破模块运行一次,返回-1,次IP已经被用于投票过了。)
happy!!!
# 希望以这种方式,激励自己去学习web安全的知识,也希望这些总结能帮助到大家,初涉web实间不长,有问题的地方,欢迎大家留言。#