[原创] 聊聊X-Forwared-For和关于他的几种非主流安全问题
关于这个X-FORWARED-FOR 有很多非主流漏洞都和他有关 之前我和我的基友misty以为关于这个标头的漏洞会有很多会被很多开发者忽视 会出现很多关于他的安全漏洞 可是由于我精力不足 就没继续研究下去
今天就写一篇文章出来跟大家聊聊这个吧 有兴趣的可以继续研究下去 原创的 各位给几个金币吧 穷死了!!!!
0x01 这个X-Forwared-For是个啥 啥样的漏洞会关于他
关于这个X-Forwared-For 他的作用很简单 很多网站利用这个东西获取客户的IP 也就是网页浏览者的Ip 他通过http包传输 我们暂时先不讲他的运行原理 毕竟我们不是聊开发 那么了解他是个啥之后 我们就聊聊关于他常见的三种安全问题形式 这三种漏洞都是因为这个X-Forwared-For是放在http包里的所以我们可以任意修改而出现的漏洞
第一种 伪造IP掩护自己的行为 之前我在乌云上就看到了一个漏洞 这个漏洞大概就是说 这个网站在获取IP时采取了X-Forwared-For这个方法 然后黑客可以伪造这个发送过去的IP 然后服务端获取到的Ip就不是黑客的真实IP 然后就形成了安全问题
我最初以为这根本不算漏洞厂商不会受理 可是没想到还真有厂商受理了........无奈之
第二种 形成XSS 我之前着重研究的就是关于这个东西的XSS 我还在XSS攻击剖析那本书里看到了有几句话的内容讲述这个漏洞 可是估计没人认真看这段 毕竟是非主流 具体我下面会讲的
第三种 密码找回或者常用地验证 我们都知道 申诉时他会验证你是否在常用地申诉的 那么我们就可以利用这个 还有就是QQ如果设置了登陆也需要密保 那么如果你不在常用地登陆他就会让你验证密保 我们就可以利用这个东西绕过这个验证密保的环节(换成常用地的IP就ok 一会下面我会详解)
0x02 先上工具 手工改包神马的都弱爆了
<ignore_js_op>
不多说 firefox把这个插件当下来你就懂了
引用我的偶像7B的一句话 : 不会你就多看点AV你就会了。
0x03 第一种和第二种的搞法
第一种 很简单就是在插件里改一下 如果他获取的IP变成了你改的IP就说明有这个安全问题
<ignore_js_op>
第二种 就有点复杂了 上IP138的XFOR-XSS镇楼 <ignore_js_op>
这种XSS的形成原理是这样的 很多网站会获取你的IP 然后回显出来(如果单纯是回显很鸡肋 估计是无法利用的)还有一些会保存在你的个人资料里 比如discuz (但是discuz安全性果然在国内数一数二 我在discuz里一个这样的XSS都没看到过) 或者在下次登录时显示出来上次登录的IP 如果没有做好处理 就会形成XSS 不废话 你应该能懂 所以各位基友以后挖洞盲打时也可以开着这个插件然后把XSS代码放里 然后浏览网站 这样如果你突然遇到了一个你写的弹窗的话多半是那块有某个获取IP的功能没处理好! 其实还有很多网站会存储IP到数据库 比如discuz 所以也可以利用这个插件构造一些sql语句试试能不能进行注入 因为小弟不才 不会php 所以这部分研究就做不了了 感兴趣的大牛做一些然后分享出来吧!
0x04 关于第三种和小总结
第三种我不知道腾讯在服务端的验证机制如何 所以我不敢妄下定论 但是如果开着插件并且更改为常用地的IP去申诉的话效果的确会有加成 别的东西以此类推 写太多了不想多写了 多写就成废话了 另外 很多站都不是用这个X-FORWARED获取IP的 所以你用这个插件修改不了IP别怪这个插件不好使!
就介绍到这吧 谢谢大家 谨以此文给大家增加一点思路!还有给开发的提个醒 这块很多小程序都会疏忽 ...并且如果能不用就尽量不用这个协议吧 很不安全 .. 趁着X-FORWARED还有人用 赶紧去挖几个吧
纯原创 看在我辛苦码字的份上 不给点JB你对的起本屌丝么?!
个人一点经验 大牛勿喷
另附上案例几份
利用Xforward进行XSS攻击 http://www.wooyun.org/bugs/wooyun-2010-027173 利用Xforward进行注入 http://www.wooyun.org/bugs/wooyun-2010-047595 http://www.wooyun.org/bugs/wooyun-2010-044027 利用Xforward伪造IP http://www.wooyun.org/bugs/wooyun-2010-049677 利用Xforward绕过IP验证http://www.wooyun.org/bugs/wooyun-2010-045884 http://www.wooyun.org/bugs/wooyun-2010-030548
乌云很多类似案例 大家去看看吧
补充内容 (2014-2-12 11:55): 谢谢各位指正 我第一句话的确有一个错误 他不是一种协议
[原创] 聊聊X-Forwared-For和关于他的几种非主流安全问题的更多相关文章
- 【原创实现】C 多线程入门Demo CAS Block 2种模式实现
分Cas和Block模式实现了demo, 供入门学习使用,代码全部是远程实现. 直接上代码: /* ================================================== ...
- 最全总结 | 聊聊 Python 办公自动化之 Excel(下)
1. 前言 前面谈到 Python 处理 Excel 文件最常见的两种方式,即:xlrd/xlwt.openpyxl 其中, xlrd/xlwt 这一组合,xlrd 可以负责读取数据,而 xlwt ...
- Mac mySql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的解决办法
我的环境:Mac 10.11.6 ,mysql 5.7.14 . mac mySql 报错ERROR 2002 (HY000): Can't connect to local MySQL serv ...
- [安卓] 14、安卓HTTP——POST和GET用法分析
内容简介 本文通过建立一个简单的Servlet服务器来分析安卓上用HTTP和服务器通信的细节,旨在演示C/S模式下服务器端和客户端的工作过程. 目录 part.1 用MyEclipse建立一个简单的s ...
- 管道函数(pipelined function)简单使用示例
-----------------------------Cryking原创------------------------------ -----------------------转载请注明出处, ...
- 推荐系统——online(上)
框架介绍 上一篇从总体上介绍了推荐系统,推荐系统online和offline是两个组成部分,其中offline负责数据的收集,存储,统计,模型的训练等工作:online部分负责处理用户的请求,模型数据 ...
- 负载均衡获得真实源IP的6种方法 【转】
除了X-FORWARD-FOR,负载均衡中获得真实源IP的方法还有很多种, 本文抛砖引玉,主要介绍获得真实源IP的多种方法,而不是具体配置, 负载均衡获得真实IP的方法有很多种,将形成专题文章, 本文 ...
- Phone漂亮的动画
//此处标明非原创 实现iPhone漂亮的动画效果主要有两种方法, 一种是UIView层面的, 一种是使用CATransition进行更低层次的控制, 第一种是UIView,UIView方式可能在低层 ...
- c语言3种方式实现参数传递
学习计算机已经两年了,参数传递已经成功恶心了我两年,今天在写二叉树遍历的时候成功对此忍无可忍.本文是在阅读https://blog.csdn.net/u013097971/article/detail ...
随机推荐
- jquery引用方法时传递参数
经常到网上去下载大牛们写的js插件.每次只需将js引用并设置下变量就行了,但一直没搞明白原理(主要是大牛们的代码太简练了-,-). 这次弄清了如何传递.设置多个(很多个)参数. 如 方法为functi ...
- linux 知识汇总
1 ) linux下文件系统类型的学习 2 )深入理解linux i节点(inode) 3 )RAID系列
- mysql sql常用语句大全
SQL执行一次INSERT INTO查询,插入多行记录 insert into test.person(number,name,birthday) values(5,'cxx5',now()),(6, ...
- jQuery实现两个按钮的位置互换
页面上有2个按钮A和B.点击按钮A和按钮B互换位置 ,点击按钮B和按钮A互换位置.应该如何实现? html代码如下: <body> <!--页面上有2个按钮A和B. 点击按钮A和按钮 ...
- openfire聊天消息记录插件关键代码
package com.sqj.openfire.chat.logs; import java.io.File; import java.util.Date; import java.util.Lis ...
- 百度地图 判断marker是否在多边形内
昨天画了圆形,判marker是否存在圆形内.今天来画多边形,判断marker在多边形内. 需要引入一个js <script type="text/javascript&quo ...
- Android开发之各个语言
Android开发之各个语言 1.进行源码开发遇到一个最基础的问题就是各个语言下的字串翻译,所以我们必须得清楚res文件夹下各个资源文件夹 2.如图:
- contiki-进程
进程的结构 Contiki的进程由两部分组成:进程控制块和进程线程.进程控制块存储在内存中,它包含进程运行时的信息,比如:进程名.进程状态.指向进程线程的指针. 进程线程是存储在ROM中的一个代码块. ...
- C语言指针
我是搞java的,今年要找工作,参加笔试就必须要准备一些C/C++.算法.数据结构.操作系统.概率论的东西,浅谈一下我作为初学者对C指针的学习和理解. 一.*p 概念: 申明一个整形指针变量: int ...
- linux 的 磁盘操作
//显示目录和文件 以kb m g为单位 du -ah //总大小 du -sh /etc //查看分区 fdisk -l //对磁盘进行分区 fdisk /dev/sdb //格式化分区 mkfs ...