代码审计之PhpStorm环境搭建

大家做代码审计时,如果流程太复杂时,总有一些不便,那我们就可以利用如PhpStorm进行debug,根据代码的运作顺序来更加方便的审计相关漏洞。

首先在php.ini添加debug参数,默认监听本地9000端口,记得修改其中的so路径,windows需要在https://xdebug.org/download.php上面下载dll

[xdebug]

zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so

xdebug.remote_autostart=on

xdebug.remote_enable=on

xdebug.remote_enable=1

xdebug.remote_mode="req"

xdebug.remote_log="/var/log/xdebug.log"

xdebug.remote_host="127.0.0.1"

xdebug.remote_port=9000

xdebug.remote_handler="dbgp"

xdebug.idekey="PHPSTORM"

安装Phpstorm并且配置debug环境

这里的ide key和上面的配置文件里面写的要一样

新增php web page

chrome/firefox都行安装debug扩展,记得安装完以后扩展里面的key要和上面的一致

开启debug

这里我以dvwa为例

先断点

在我们进行文件上传时停在了断点处

很清晰看到文件上传到哪了

PS:

接下来我们再看个有趣的点,这里我们的文件在还没到uploads目录的时候先出现在了缓存目录

但是上传到uploads目录以后缓存文件就不存在了

也就是说我们可以在上传的时候进行条件竞争,包含缓存文件达到getshell的目的。

首先我们来看怎么获取到缓存目录的路径,我们只要进行文件上传操作时,都会生成缓存文件,然后路径实际上会在phpinfo上显示出来

也就是说我们可以想到一个场景,一个phpinfo泄漏+文件包含=getshell

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180908G10G7100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券