【代码审计】PHP断点调试配置及代码审计实战

2024-06-01 367 0

0x00前言

在PHP代码审计的过程中,往往需要进行变量和数据流的追踪,从而判断程序有无进行过滤并确定漏洞的触发点,所以断点调试就显得格外重要。本篇文章将介绍如何配置进行调试配置和调试技巧。全文共分为两个部分,第一部分为PHPSTORM的xdebug配置,第二部分是对bluecms进行代码审计调试实操。
0x01工具及环境
本次进行代码审计的工具和环境如下所示:

  • PHPSTORM(编辑器)

  • Burp Suite(代理抓包工具)

  • Phpstudy(PHP开发集成环境)

  • Seay源代码审计系统(白盒扫描工具)

0x02 Debug配置

网上大多关于debug的配置都是xdebug2.x的,而关于3.x的比较少,接下来将分别介绍这两个版本配置过程。

【1】xdebug2.x配置

首先介绍xdebug2.x的配置,这里使用phpstudy进行环境的搭建,php版本选用5.6.9,phpstudy对于这个php版本是自带php_xdebug.dll的,也省去了去下载的步骤。

1、第一步,找到php.ini配置文件进行xdebug配置修改,配置文件在phpstudy安装目录下,大致位置为phpstudy_pro\Extensions\php\php5.6.9nts\php.ini。按如下配置添加到文件的末尾。
【代码审计】PHP断点调试配置及代码审计实战插图!

[Xdebug]
;php_xdebug.dll文件的位置,默认直接填文件名即可,也可以填写绝对路径
zend_extension = php_xdebug.dll
;xdebug调试模式
xdebug.mode=debug
;下面就是配置调试的地址和端口,填本地的即可
xdebug.remote_enable = On
xdebug.remote_host = localhost
xdebug.remote_port = 9100

2、接下来开始在phpstorm配置进行配置,这里过程比较多,一步一步来。首先随便打卡一个已经运行起来的web项目,然后点击左上角 文件->设置。
【代码审计】PHP断点调试配置及代码审计实战插图1
3、然后按如下步骤进行php的配置。
① 点击左上角的PHP
② 设置php语言级别,注意这里要设置为phpstudy运行站点所使用的php版本。
③ 点击CLI解释器右边的三个点
④ 然后进行添加新的解释器
⑤ 在名称处为新的解释器设置一个名称
⑥ 然后选择php可执行文件,就是php目录下的exe文件
⑦ 再选择php.ini的位置
⑧ 最后直接应用即可
【代码审计】PHP断点调试配置及代码审计实战插图2
4、接下来来到第三步,配置服务器
① 直接点击PHP选项下的服务器选项
② 然后点击“+”号添加一个新的服务器
③ 为这个服务器设置一个名称,这里直接设置为xdebug了
④ 最后填写ip和端口,可以直接填写127.0.0.1,为了后面方便使用burp抓包我这里 直接填了虚拟机的局域网IP了,端口填写网站的运行端口即可。
【代码审计】PHP断点调试配置及代码审计实战插图3
5、填写xdebug的调试端口,注意这里端口必须要与在php.ini文件中配置的一致,否则会调试不成功的。
【代码审计】PHP断点调试配置及代码审计实战插图4
6、配置完上述过程后,直接回到主页,点击右上角编辑调试器
【代码审计】PHP断点调试配置及代码审计实战插图5
7、接下来添加一个新配置,找到下面的这个PHP网页。
【代码审计】PHP断点调试配置及代码审计实战插图6
8、为配置设置一个名字,这里直接设置为xdebug了,然后选择一个服务器,就选择上面配置好的即可。
【代码审计】PHP断点调试配置及代码审计实战插图7
9、回到主页,打开index.php文件,在上面添加一个断点。然后依次点击右上角提示的地方即可。
【代码审计】PHP断点调试配置及代码审计实战插图8
10、当看到下面出现如下信息,就说明调试成功了。如果还是无法调试,可以尝试重新启动一下web服务,可能是没有重新加载修改后的php.ini的原因。
【代码审计】PHP断点调试配置及代码审计实战插图9

【2】xdebug3.x配置

接下来开始介绍xdebug3.x如何进行配置,这个与2.x的差不多,只是配置文件不同罢了,这里使用到的php版本为php7.3.4。
1、这里我们先下载一个xdebug3.x,首先先访问一下phpinfo页面。
【代码审计】PHP断点调试配置及代码审计实战插图10
2、将phpinfo的信息进行复制,然后来到下面这个网页,将信息填入框中,然后进行分析即可。
https://xdebug.org/wizard
【代码审计】PHP断点调试配置及代码审计实战插图11
3、然后会出下如下信息,将php_xdebug文件下载下来
【代码审计】PHP断点调试配置及代码审计实战插图12
5、然后将下载下来的文件移动到php7.3.4nts\ext目录下并重命名为php_xdebug.dll。ext目录位于phpstudy的phpstudy_pro\Extensions\php\php7.3.4nts\ext下。
【代码审计】PHP断点调试配置及代码审计实战插图13
6、然后按如下要求修改好php.ini配置文件即可,与xdebug2.x的配置差不多,只是remote修改成了client罢了。
【代码审计】PHP断点调试配置及代码审计实战插图14

[Xdebug]
zend_extension = php_xdebug.dll
xdebug.mode=debug
xdebug.remote_enable = On
xdebug.client_host = localhost
xdebug.client_port = 9100

到这里也差不多了,剩下的配置按照xdebug2.x的即可。

0x03 代码审计

【1】debug基础介绍

这次采用百家CMS进行教学,但在进行代码审计之前,先介绍一点调试的基础知识。
首先是下断点,只需要在断点处点击一下那个行数即可
【代码审计】PHP断点调试配置及代码审计实战插图15


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

苹果试图保护你的隐私,OpenAI可能做不到
Shuffle:一款完全自动化的安全栈增强平台
如何使用CODASM编码Payload并降低熵值
SessionExec:一款针对会话安全的安全命令测试工具
Arkime:一款大规模数据包捕获和索引数据库系统
从蓝队流量角度分析Shiro-550反序列化漏洞

发布评论