[原创] 聊聊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 ...
随机推荐
- linux python pip包安装
python -m pip install --trusted-host pypi.python.org
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’解决方法 + Linux启动/停止/重启Mysql数据库的方法
启动mysql 报错: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/m ...
- (五)socket实践编程
1.服务器端程序编写 (1)socket(2)bind(3)listen(4)accept,返回值是一个fd,accept正确返回就表示我们已经和前来连接我的客户端之间建立了一个TCP连接了,以后我们 ...
- DB2表分区删除
近日,由于部门数据库读库空间过小,提出删除掉两个月之前日志表的分区(数据库分区是按时间月分区),记述如下: 上网搜索资料发现删除表分区大概分这么几步: 1.查询需要删除掉的分区: select t.D ...
- python核心编程第六章练习6-12
6-12.字符串.(a)创建一个名字为findchr()的函数,函数声明如下.def findchr(string, char)findchr()要在字符串string中查找字符char,找到就返回该 ...
- Android性能优化篇
很多App都会遇到以下几个常见的性能问题: 启动速度慢:界面跳转慢:事件响应慢:滑动和动画卡顿. 一.启动速度优化. 优化初始化任务: 1. 把一些初始化任务懒加载初始化 2. 把初始化任务并行化(异 ...
- 数组的sort方法
今天在看<JavaScript高级程序设计第三版>时,学到了数组的sort方法.知道这个方法,但是一直没仔细研究过,这次发现,它是把数组内的值用toSting()变为字符串再进行比较,这样 ...
- jQuery实现加入购物车飞入动画效果
<script src="jquery.js"></script> <script src="jquery.fly.min.js" ...
- Microsoft Enterprise Library 5.0 缓存配置
在使用企业库的缓存时遇到一个问题. 创建 cachingConfiguration 的配置节处理程序时出错: 未能加载文件或程序集“Microsoft.Practices.EnterpriseLibr ...
- OC语言构造方法
OC语言构造方法 一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法 ...