代码审计之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

原文发布于微信公众号 - 中国白客联盟(China_Baiker)

原文发表时间:2018-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏艾斯博客www.vpsss.net

WordPress 手动升级更新方法

43440
来自专栏L宝宝聊IT

MySQL主从复制与读写分离

17060
来自专栏杂烩

一个综合的分布式项目之项目部署 原

    项目打包有很多种方式,不管是eclipse的export还是mvn的package,最终目的就是把编译后的项目丢到服务器的tomcat下。我们要部署代码...

8520
来自专栏漫漫深度学习路

ubuntu 文件目录结构

Ubuntu(linux)文件目录结构 主目录 /bin : 包含系统应用的地方,常用的命令,ls ,rm 等等都在这。 /sbin : 包含一些只能被超级用户...

24090
来自专栏小怪聊职场

爬虫|利用Anyproxy爬取微信公众号文章及临时链接转永久链接

1.9K80
来自专栏懒人开发

用WebStorm在微信小程序中使用LESS

自己前端不熟悉,很多都需要练习 网上找了一个css的demo, 放到微信小程序后,可以运行

57960
来自专栏HTML5学堂

Git与通过Git添加提交文件

HTML5学堂-利利:前面几个礼拜,我们比较全面的介绍讲解了关于AJAX中相对比较高级的知识 - 跨域。本周周三的文章,想为大家介绍一款工具——Git。如果开发...

44170
来自专栏破晓之歌

前端页面可视化开发-livestyle,livereload,browser-sync

本质是监控文件修改,实时刷新浏览器,需要安装livereload插件和node.js插件,全局刷新

16720
来自专栏kevin-blog

ubuntu下安装node版本管理工具NVM

nvm是nodejs的版本管理工具,因为nodejs编译非常麻烦,然后编译上有些又需要不同的版本,nvm就应运而生了,nvm是一个可以让你在同一台机器上安装和切...

23500
来自专栏张泽旭的专栏

Applet小应用程序之间的通讯

1、 首先解压:如何运行applet.zip文件,解压后如图

8630

扫码关注云+社区

领取腾讯云代金券