大家做代码审计时,如果流程太复杂时,总有一些不便,那我们就可以利用如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
原文始发于微信公众号(中国白客联盟):代码审计之PhpStorm环境搭建
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论