专注微信投票-点赞投票网络投票服务「小青投票」

首页

当前位置:首页 > 投票教程

【网站渗透测试实战演练】怎样恰当根据IP仿冒完成微信刷票系统漏洞利润最大化

当前栏目:投票教程|更新时间:2020-12-19 09:12:01|浏览:0

网警文化教育

塑造网络信息安全优秀人才

行业交流、学习培训资询


基本基本原理


1、难题情况

在Web应用程序开发中,常常会必须获得手机客户端IP地址。一个典型性的事例便是投票系统软件,为了更好地避免 刷票,必须限定每一个IP地址只有投票一次。


2、怎样获得手机客户端IP


在Java中520刷票,获得手机客户端IP最立即的方法便是应用request.getRemoteAddr()。这类方法能获得到连接网络的手机客户端IP,在中间沒有代理商的状况下,确实是非常简单合理的方法。可是现阶段互联网技术Web运用非常少会将网站服务器立即对外开放出示服务项目,一般都是会有一层Nginx做反向代理和三层交换机,有的乃至很有可能有双层代理商。在有反向代理的状况下,立即应用request.getRemoteAddr()获得到的IP地址是Nginx所属网络服务器的IP地址,而不是手机客户端的IP。


HTTP协议书是根据TCP协议书的,因为request.getRemoteAddr()获得到的是TCP层立即联接的手机客户端的IP520刷票,针对Web网站服务器而言立即联接它的手机客户端事实上是Nginx,也就是TCP层是拿不上真正手机客户端的IP。


为了更好地处理上边的难题,许多 HTTP代理会在HTTP协议书头中加上X-Forwarded-For头,用于跟踪要求的来源于。X-Forwarded-For的文件格式以下:

1X-Forwarded-For: client1, proxy1, proxy2


X-Forwarded-For包含好几个IP地址,每一个值根据分号 空格符分离,最左侧(client1)是最初手机客户端的IP地址,正中间如果有双层代理商520刷票,每一层代理会将联接它的手机客户端IP增加在X-Forwarded-For右侧。


下边便是一种常见的获得手机客户端真正IP的方式,最先从HTTP头里获得X-Forwarded-For,假如X-Forwarded-For头存有就按分号隔开取最左侧第一个IP地址,不会有立即根据request.getRemoteAddr()获得IP地址:

1public String getClientIp(HttpServletRequest request) {
2    String xff = request.getHeader("X-Forwarded-For");
3    if (xff == null) {
4        return request.getRemoteAddr();
5    } else {
6        return xff.contains(","#p#分页标题#e#) ? xff.split(","

网站友情链接: