这两天在学习Web的RCE,因为没什么PHP的语言基础,学的很晕。就想着如果能够调试的话可能就好的很多了,但我在Windows上配置完后才悟到是我想多了。大部分的服务器都是Linux的平台,而Windows上的cmd命令真的很难用啊,远远比不上Linux。捣腾了一上午(我太难了.jpg),终于搞好了(差不多好了),记录一下这个大冤种的行为。

这里我是用的是PHPStorm + PHPStudy,只能说PHPStudy真的牛。

PHP5.xPHP7.x还是不同的,这个困饶了好一会儿。

我以为PHP5.x不可以了呢

正文开始咯!

新版旧版一起说了,会提醒差别de。

  1. 打开PHPStudy->网站->管理
    这个图片是选择的PHP5.6.9版本

PHP5.x的选择 php_xdebug,而PHP7.x的选择xdebug

  1. 打开phpstudy的网页,输出的为phpinfo()
    验证步骤

如果是新版本的PHP就会成功,而我用PHP5.x就失败了,(如第一张图)

PHP7.x成功了

新旧版PHP的区别

如果成功的话就直接点击下载,失败的话就访问Xdebug: Historical Releases,至于下载什么版本就取决于phpinfo中的 Compiler。

这亚子

无论是什么版本的,下载的文件名都是php_xdebug-版本号-php版本-vc版本-nts-x86_64.dll,将该文件保存到文件夹..\phpstudy_pro\Extensions\php\php7.3.4nts\ext\..下,删除原本的php_xdebug并把刚刚下载的文件重命名为php_xdebug最好停止网页的运行后操作,否则无法进行删除等操作.

  1. 修改对应的php.ini文件(文件位置.\phpstudy_pro\Extensions\php\php7.3.4nts\php.ini)
    旧版本的PHP,使用的是Xdebug 2.x

    [Xdebug]
    xdebug.profiler_enable=on
    zend_extension=这个地方填你刚刚下载的php_xdebug的存放路径
    xdebug.collect_params=on
    xdebug.collect_return=on
    xdebug.mode= "debug"
    xdebug.auto_trace=On
    xdebug.profiler_enable=On
    xdebug.remote_enable=on
    xdebug.remote_host=localhost
    xdebug.remote_port=9000        //这个地方要注意,后面要用到
    xdebug.remote_handler="dbgp" 
    xdebug.remote_mode="req"
    xdebug.idekey="PHPSTORM"    //这个地方要注意,后面要用到

    新版本的PHP > 7.x,使用的是Xdebug 3.x

    [Xdebug]
    xdebug.mode=debug
    zend_extension=这个地方填你刚刚下载的php_xdebug的存放路径
    xdebug.output_dir = /tmp 
    xdebug.client_host=localhost
    xdebug.client_port=9000      //这个地方要注意,后面要用到
    xdebug.remote_handler=dbgp
    xdebug.idekey=PHPSTORM       //这个地方要注意,后面要用到
    xdebug.var_display_max_depth = 15
    xdebug.var_display_max_data  = 2048

至于Xdebug 2.x与Xdebug 3.x的配置区别详见Xdebug:从 Xdebug 2 升级到 3

下面就主要是PHPStorm的配置了

  1. PHPStorm中配置
    配置、验证

验证

如果失败则修改 php.ini 文件

  1. 配置调试的php网页
    img

如果验证报错,检查php.ini文件。

  1. 基本完工了。

    使用方法

打开监听,再断点,调试。

Last modification:March 10, 2023
请我喝瓶冰阔落吧