前端html小技巧—如何实现ip点击限制用以网页投票

今天分享下”“这篇文章,文中根据实例编码详细介绍,或许对大家的编程之路有着一定的参考空间与使用价值,需要的朋友接下来跟着云南仟龙Mark一起学习一下吧。 对限制ip该方法利用投票网站监控远程ip一些bug没有真正伪造ip地址,http是建立的tcp第七层,是不可能伪造真实i的p最近,我的朋友需要一个投票软件,我最近研究了这个投票网站,它有验证码,每个IP仅限于一票,看起来像一个标准的投票网站。我先研究了验证码:

该投票网站的验证码开始非常简单。标准位置的四个标准数字很容易识别。后来,异常到位数不一定,有字母,位置不一定上下。验证码的识别不仅使软件难以识别,而且使人工识别困难。山川无路可走。另一个村庄是黑暗的。请看下一段的分解!

在我的不断分析和研究中,我发现他的验证码检查有bug,发现了bug。验证码是徒劳的,没有识别或验证码,因为他只在投票选项页面上设置验证码是否为空 js代码,js代码在客户端运行,验证效果为零,一般JS这种验证只是为了方便用户使用。作为一个投票网站,这种验证方法,在投票处理动态页面不检查验证码是否空,真的不敢称赞,给网站的安全带来巨大的隐患。

对于验证码的问题,我已经知道了解决方案。只要验证码文件在投票时不直接访问,验证码就是空的。由于他的动态页面不检查验证码是否空,只要在post验证码参数为空即可。

然后还有一个问题就是这个投票网站P,限制一个IP只允许投票一次,所以只有使用代理,或者通过不断断开网络和拨号。我真的想不出其他好办法。后来,这位朋友找到了一个程序,可以在这个网站上快速投票。我对这个程序的IP如果你对解决方案很好奇,请你的朋友分析一下。

首先,我通过抓取投票软件的包来研究。准备好后,我打开投票程序刷!提示软件冲突!头晕,不,然后我关掉一些程序,关闭只留下一个包程序也提示冲突,哈哈,原程序也知道有人可能分析他的软件,实际上通过过程名称,检查是否有可疑的程序,如果有程序分析或抓住包,他拒绝运行。哈哈,我知道他限制的软件包括简单的语言编程软件和 WSockExpert_Cn 抓包软件。呵呵,关掉易语言,把 WSockExpert_Cn 更改名称,顺利通过软件自身安全检测,运行成功。

以下是他在使用过程中投票的数据包:

XML/HTML Code复制内容到剪贴板

POST /vote/view.php?sid=33act=vote HTTP/1.1
Accept: /
Referer: http://www.qdnfy.gov.cn/vote/vote.php
Content-Type: application/x-www-form-urlencoded
X-Forwarded-For: 218.20.218.200
CLIENT_IP: 218.20.218.200
VIA: 218.20.218.200
REMOTE_ADDR: 218.20.218.200
Accept-Language: zh-cn
Accept-Encoding: http://www.qlyl1688.com : text
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)
Host: www.qdnfy.gov.cn
Cookie: PHPSESSID=pldjnb6scereodjm5niqb9q990
Content-Length: 49
Connection: Close
   -Forwarded-For 发现了这个http头参数 后面跟着IP,呵呵,这个参数肯定有来头,原来我一直不知道,呵呵,赶紧百度一下。

下面是百度后的一篇说明文章,说得很好,大家看看。

伪造HTTP头中的X-Forwarded-For字段来伪造IP百度了一下X-Forwarded-For的原理,这东西出来好长时间了.我还第一次听说X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。

它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。

标准格式如下:

X-Forwarded-For: client1, proxy1, proxy2

从标准格式可以看出,X-Forwarded-For头信息可以有多个,中间用逗号分隔,第一项为真实的客户端ip,剩下的就是曾经经过的代理或负载均衡的ip地址,经过几个就会出现几个。

wiki 的X-Forwarded-For解释 http://en.wikipedia.org/wiki/X-Forwarded-For分析:

既然是要伪造客户端IP,那我们先看看一般是怎样获取客户端IP地址的(以php为例).这段代码是在百度搜索到的.大部分网站可能都用这段代码。

XML/HTML Code复制内容到剪贴板

u s e r I P = ( user_IP = ( userIP=(_SERVER[“HTTP_VIA”]) ? //是否使用了代理
$_SERVER[“HTTP_X_FORWARDED_FOR”] : $_SERVER[“REMOTE_ADDR”];
//获取失败则从REMOTE_ADDR获取
u s e r I P = ( user_IP = ( userIP=(user_IP) ? $user_IP : $_SERVER[“REMOTE_ADDR”];
?>
     首先判断HTTP_VIA头是否存在,HTTP_VIA头代表是否使用了代理服务器.如果没有那就从REMOTE_ADDR字段获取客户端的IP地址,如果有那就从X-Forwarded-For获取客户端IP我估计很多程序员都是从百度来的代码吧.asp也类似.

然后我们来测试一下.

服务端代码:

XML/HTML Code复制内容到剪贴板

//输出HTTP_X_FORWARDED_FOR
echo “HTTP_X_FORWARDED_FOR:”.$_SERVER[“HTTP_X_FORWARDED_FOR”];
//输出REMOTE_ADDR echo “REMOTE_ADDR:”. $_SERVER[“REMOTE_ADDR”];
?>
可以看到获得的客户端ip地址不同…REMOTE_ADDR真实地址。

所以,如果一个网站来自X-Forwarded-For判断客户端IP地址的话,然后我们可以利用这个逻辑bug刷票。以上是云南仟龙Mark给大家介绍的所有内容,希望对大家有所帮助,如果大家有任何疑问请在脚本之家留言,如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值