phpstorm+phpstudy 配置xdebug

前言

说到PHP代码审计, 我们可以通过简单的echo、print_r、var_dump函数来使我们更加清楚代码的作用,例如之前做的upload文件上传就可以通过这种方法进行代码审计(此处在文末:代码审计小技巧);可对于PHP新手来说仅仅通过这些简单的调试语句来定位并解决问题,还是相当有难度的,这里带来一个工具:xdebug,它作为一款专为PHP而诞生的代码调试工具,可以用来跟踪、调试和分析PHP程序的运行状况,对我们来说很有帮助!

这篇文章主要介绍和记录了在Windows中phpstorm和xdebug的安装配置和在phpstorm的配置调试和使用。

基础环境:PhpStorm 2020

Php7.3.4nts

Xdebug3.0.3

基础环境准备

1.phpstorm

PHPStorm 是 JetBrains 公司开发的一个轻量级且便捷的 PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。

安装:

打开phpstorm安装包

链接:

https://pan.baidu.com/s/12GFIPS9vEf-MMDuWQrRMdQ 提取码: 8j4i

点击next,选择安装的目录点击next

选择如图的选项点击next,然后点击install

选择第二个选项,点击finish

这样就安装好了

如何调成中文版?

点击plugins,选择chinese (slmplifled)插件,安装,这样就变成中文版的了

2.phpstudy_pro

链接:

https://pan.baidu.com/s/1sRq_HNViUGQwS7wl5-Vq5A 提取码: qmzf

创建网站

先开启如图所示的服务,点击左侧网站,点击创建网站

重启服务

ok!网站搭建成功

【----帮助安全学习,免费资源获取处----】

①18份渗透测试电子书

②安全攻防300页笔记

③30份安全攻防面试指南

④安全红队渗透工具包

⑤网络安全必备书籍

⑥99个漏洞实战案例

安装流程

Xdebug扩展安装详解

1、进入相应的 phpinfo 界面,在界面中 Ctrl+A 全选复制整个界面 (phpinfo) 的信息

2、打开网站 https://xdebug.org/wizard 会来到这样的一个界面,注意看图,具体步骤在图中

随后你会得到这样的一个界面

1、把复制到的信息粘贴入白色框

2、点击下方的 Analyse my phpinfo() output 按钮,即可获得以下信息

1、下载 php_xdebug-3.0.3-7.4-vc15-nts-x86_64.dll 文件(名字可能不一样)

2、把第一步下载的文件移动到 xdebug 网站步骤 2 给出的绝对路径中

3、打开网站步骤 3 中给出的绝对路径的文件

4、拉到 php.ini 文件的最下方,添加步骤 3 后面给出的文字(不要换行,就一排)

最后得到的 php.ini 文件像这样:

重启 Web 服务器后,打开 phpinfo 界面,你就会发现 Xdebug 模块已经启用了

但是注意观察,红框内的都是 Xdebug 的配置,你可以通过在 php.ini 的 [Xdebug] 模块下添加文字来更改这些默认配置,就像这样:

https://xdebug.org/docs/all_settings  这个链接是官方对这些设置的详解,需要更改设置的可以去里面查阅

看不懂英文的可以使用谷歌翻译(整个网页一起翻的那个)

这里提供一份老版本的翻译,可能有误,这个 ; 号就是注释符

方法二(懒人):

进入 phpStudy 的软件管理界面

最后点击确认完成更改,去 phpinfo 界面查看,你就发现 Xdebug 安装好了

这里的 php.ini 里面有一部分 phpStudy 自动帮你添加的配置,需要增加和更改的话和上面的操作步骤一致

phpstorm配置

1.在安装好xdebug扩展,并正确配置php.ini文件的条件下,打开phpstorm应用,找到设置界面(或者Ctrl+Alt+S)

2.找到语言和框架下的php,再找到其中的调试。将调试端口改为与php.ini中的一致,否则将无法成功配置。

3.打开服务器设置,并新建一个服务器,设置如下。

4.切换到php下,将php语言级别换成网页的php版本(例如5.4,7.3)

5.在此页面下还需要添加CLI解释器,在php可执行文件中找到刚刚phpstudy_pro中的php.exe(注意要在当前php版本下的php.exe),刷新会出现类似以下界面。

6.配置调试下的DBGp代理。

7.添加配置,选中PHP Web 页面,点击验证,更改脚本路径,并且一定要确保信息界面的要求是全通过即全是绿色的钩,以下有两个我所遇到问题的修改方法。(注意每次修改php.ini都需要保存并且重启web服务)

8.回到主页面,xdebug配置成功

9.打开网页xdebug插件设置

10.最后进行实例测试,打开网页测试脚本,并打开网页xdebug插件,在上传文件之前在phpstorm中的php脚本中添加一个断点,然后运行脚本,按F7向下运行代码,可以清楚的看到变量的变化

代码审计小技巧

1.我们在进行代码审计时,如果代码比较长就会导致我们审计比较困难,接下来会给大家介绍一个代码审计的小技巧,让我们代码审计更加简单方便(下面以upload-lab文件上传第11关作为举例)。

2.进入到我们的upload-lab靶机的第11关,我们可以在这里获取到我们上传页面的关键源码,此时如果我们读我们的源码,会比较困难,因为有些变量的具体意思比较难理解,因此我们第一步可以先把这个上传页面的关键源码拷贝一份到本地

3.这里我们首先新建一个php文件,然后我们把我们在upload-lab第十一关的源码复制粘贴到我们的test.php(这里我们用phpstorm工具来对源码进行编辑),这里需要注意的是,upload-lab第十一关的源码并不是完整的源码,需要我们补足一些他所需要的其他html代码,我们这里直接上图来解释我们的代码

4.我们的技巧便是利用php对变量的输出,来判断该变量的具体意义,比如我们不了解$img_path和$file_ext变量代表着什么,我们可以利用echo对$img_path和$file_ext进行输出(当然我这里是事先知道我们变量 所代表的含义才用了文件来表示),利用我们的输出以及对代码初步的理解,来进行我们的代码审计工作