前言

近日发现了一款有意思的PHP静态代码审计工具——Wpbullet。与其他PHP代码审计工具不同的是,Wpbullet是一款针对WordPress插件/主题开发的静态代码分析工具。

Wordpress自身代码尚且可以说很安全,但是其插件的安全却参差不齐,这款工具可以对WordPress、插件、主题进行静态代码初步的审计,方便后续的漏洞挖掘工作。

由于该工具的说明文档较少,我对其工作原理以及其检测能力比较好奇,因此这篇文章除了简单介绍一下这个工具如何使用之外,更重要的是分析Wpbuttle这块工具的源码,介绍一下它的检测思路。

工具安装

Wpbulle的github地址如下:

https://github.com/webarx-security/wpbullet

安装过程很简单,只需克隆项目、安装依赖并运行脚本即可

python2.x python3.x环境皆可使用。笔者这里测试使用的是python3.7环境

工具使用

可用选项:

值得注意的是Wpbulle这款工具除了支持对本地源代码的审计之外,还支持根据传入的插件/主题
URL
自动下载源码来审计。如上图使用说明可见,--path除了可以传入本地插件目录以外,还支持传入wordpress官网中插件下载路径,工具将对插件下载解压并进行审计操作。

在了解了Wpbulle工具如何安装与使用后,我们来看一下Wpbulle代码,了解一下这个工具是如何实现的,以及其是否能很好的帮助我们挖出漏洞

首先我们来到扫描入口处wpbullet-dev/core/scanner.py

在scan中,首先可以看到其根据需要,从提供的wordpress官网插件地址进行下载的操作,如下图:

上图分别对非zip与zip文件进行下载处理。当然,如果我们用Wpbulle扫描本地插件,是不需要进行上图下载操作。

Scan方法中随后遍历插件目录,对后缀为php的文件调用check_file对文件进行分析,见下图红框出:

我们跟进一下check_file方法

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖