PHP-XDebug配置

0x01 XDebug介绍php

  • XDebug是一个开放源代码的PHP程序调试器,能够用来跟踪,调试和分析PHP的运行情况,功能强大,对审计有很大的帮助
  • XDebug实际上是一个.dll文件,一般放在PHP安装目录的ext/php_xdebug.dll。经过配置对应版本的php.ini文件使用
  • 当配置XDebug完成后,每次访问一个页面,都会在指定的目录下生成一个文档,文档详细的记录了相关变量和函数的运行时间、源文件等等,可经过此文档,得知PHP的运行情况、某个函数的效率高低等等

0x02 安装配置Debughtml

  • 安装
    • 若是在PHP的安装目录下没有php_xdebug.dll文件,需到官网下载与本身本机PHP版本对应的XDebug,下载完成以后,放在对应版本/ext/下
  • 配置(修改配置文件后需重启Apache服务才可生效)
    • 修改对应的PHP版本配置(.ini)文件,配置以下
    • 参数解读
      • 1937:将分析器输出写入到的目录中,请确保将运行PHP的用户对该目录具备写权限
      • 1938:当这个设置被设置为!= 0时,Xdebug在错误状况下生成的堆栈转储也会显示最顶层范围内的全部变量。注意,这可能会生成大量信息,所以在默认状况下关闭
      • 1939:日志的输出文件夹,请确保将运行PHP的用户对该目录具备写权限
      • 1940:XDebug的文件位置
      • 1941:在概要文件输出目录中建立文件
      • 1942:当这个设置设置为1时,您能够经过使用XDEBUG_PROFILE GET/POST参数来触发概要文件的生成,或者设置一个名为XDEBUG_PROFILE的cookie。这将把分析器数据写入定义的目录。为了防止分析器为每一个请求生成概要文件,您须要设置xdebug。profiler_enable为0
      • 1943:打开自动追踪。自动追踪通常状况下为打开,能够更方便的寻找函数
      • 1944:当这个设置被设置为1时,Xdebug将在任何异常或错误被引起时显示一个堆栈跟踪,即便这个异常或错误被实际捕获
      • 1945:当这个设置被设置为1时,Xdebug将老是尝试启动一个远程调试会话并尝试链接到一个客户端
      • 1946:这个开关控制Xdebug是否应该尝试联系一个调试客户端,这个客户端在主机上监听Xdebug设置的端口。若是没法创建链接,脚本将继续,就像该设置为0同样
      • 1947:只能是“dbgp”来表示调试器协议。DBGp协议是惟一受支持的协议
      • 1948:远程调试客户机的主机IP,这里固定填写127.0.0.1
      • 1949:远程主机上Xdebug试图链接到的端口
      • 1950:链接IDE的Key,可自定义
      • 其余参数 xdebug.trace_format=0:日志追踪输出目录,0表明人可读,1表明机器可读,2表明html格式,用浏览器打开阅读。通常使用0
      • xdebug.trace_options=0:记录添加到文件中方式,0表明覆盖,1表明追加,通常选择覆盖,由于随着时间,文件愈来愈大,不方便审计
      • xdebug.collect_params=4:显示内容详细程度,这里选择4,显示全部变量内容和变量名
      • xdebug.collect_return=1:显示函数返回值,0为不显示
      • xdebug.collect_vars=1:显示当前做用于使用了哪些变量,显示变量名
      • xdebug.collect_assignments=1:添加一行显示变量赋值

0x03 XDebug的解密功能浏览器

  • XDbug还有一个很强大的功能,它能够自动跟随函数和变量的‘脚步’,解密出加密过的内容
  • 经过网页访问加密过的文件,使XDebug生成日志记录文件,从而间接达到解密的目的
  • 使用记事本打开日志记录文件便可获取解密后的内容
相关文章
相关标签/搜索