freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

代码审计 | PHP断点调试配置及代码审计实战
小白来啦 2024-05-16 16:49:04 174989

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。按如下配置添加到文件的末尾。
image.png!

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

【2】xdebug3.x配置

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

[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进行教学,但在进行代码审计之前,先介绍一点调试的基础知识。
首先是下断点,只需要在断点处点击一下那个行数即可

可试读前30%内容
¥ 9.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 漏洞 # web安全 # 漏洞分析
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 小白来啦 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
小白来啦 LV.1
这家伙太懒了,还未填写个人描述!
  • 2 文章数
  • 3 关注者
关于thinkphp框架的代码审计
2024-05-17
文章目录