专栏首页FreeBufWordPress Plugin AutoSuggest插件SQL注入复现与分析

WordPress Plugin AutoSuggest插件SQL注入复现与分析

前言

由于笔者有个习惯,每天都会去exploit-db网站上去逛逛。最近就看到了一个WordPress插件问题导致的SQL注入漏洞,抱着好奇的心,我就开始这个漏洞的复现与分析。

WP AutoSuggest简介

WP AutoSuggest 这款插件在访问者输入关键字时,插件会在提交搜索查询之前通过AJAX请求在网页中显示一些建议。访问者可以通过按Enter继续搜索,或者访问者可以使用键盘箭头直接访问建议的帖子。

漏洞复现

首先我们得进入exploit-db网站上下载这个存在漏洞的版本的插件源码和本地搭建WordPress网站(本地搭建WordPress这里就不说了)。下载源码,如下图所示:

下载完成之后,把wp-autosuggest目录直接拖到Wordpress目录的\wp-content\plugins\下。

接着,登录后台,启用这款插件,如下图所示:

启用后,退出后台,如下图所示:

然后根据exploit-db网站上给出的漏洞详情,我们访问下面的URL:

http://www.yourwebsite.com/wp-content/plugins/wp-autosuggest/autosuggest.php?wpas_action=query&wpas_keys=1

访问后,网页内容如下图所示:

根据exploit-db网站上给出的漏洞详情,我们也知道了wpas_keys参数存在注入,于是我们可以使用SQLMAP注入神器,对网站进行注入。SQLMAP命令如下:

sqlmap.py -u "http://www.yourwebsite.com/wp-content/plugins/wp-autosuggest/autosuggest.php?wpas_action=query&wpas_keys=1*" --technique BT --dbms MYSQL --risk 3 --level 5 --tamper space2comment

一开始,笔者使用的时php5.2.17+Apache的环境,结果复现不了,头疼了半天,如下图:

后来笔者换了一个php-5.4.45+Apache的环境,就解决了。

通过SQLMAP,成功获取到服务器的一些信息,如下图所示:

下图也成功跑出了当前数据库的名称。

漏洞分析

分析WordPress插件的话还是挺容易的。文件和代码也不是很多,用Notepad++就够用啦。进入插件根目录下面就看到了autosuggest_functions.php、autosuggest.php这两个php文件。

下面是autosuggest.php文件的部分代码:

<?php
include 'autosuggest_functions.php';

$wpas_action = '';
$wpas_keys = '';
if(isset($_GET['wpas_action'])) {
    $wpas_action = $_GET['wpas_action'];
}
if (isset($_GET['wpas_keys'])) {
    $wpas_keys = $_GET['wpas_keys'];
}

相信大家没看几行就看出了问题的所在,变量wpas_keys是直接获取GET中的wpas_keys。一点都没过滤,并且在之后的代码中(由于篇幅所限,后面的代码未全部贴出),变量wpas_keys也带入数据库中查询了(wpdb是wordpress操作数据库方法),于是SQL注入就产生了。

修复建议

1、写过滤函数,如使用正则表达式过滤传入的参数。

2、对PHP进行安全配置。等等。

*本文作者:看不尽的尘埃,转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-25

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android浏览器跨域数据窃取和Intent Scheme攻击

    我们接下来要介绍的这个漏洞,其影响了Android版本4.4以下的自带浏览器和一些其他特定的Android浏览器,它允许黑客读取sqlite格式的cookie数...

    FB客服
  • 2016 黑客必备的Android应用都有哪些?

    免责声明:本人所发布的此份清单仅供学习之用。我们不支持读者利用其中的任何工具进行任何不道德的恶意攻击行为。 ? 根据业界的一系列评测以及亲身经验,我们整理出了...

    FB客服
  • 分析 WordPress 3.8.2 修復的cookie偽造漏洞

    4月8日,wordpress發布了一個重要更新,在該次更新中,修復了一系列安全漏洞。其中最顯眼的就是cookie伪造漏洞(CVE -2014- 0166)。 我...

    FB客服
  • md5 caculator Writeup[pwnable.kr]

    下载下来直接运行,提示缺libcrypto库,但是我却安装过了openssl。于是在lib下看,确实是没有这个库。因为我的环境是ubuntu x86_64装的o...

    WeaponX
  • Bifrost微前端框架及其在美团闪购中的实践

    美团闪购研发团队开发了一套微前端框架——Bifrost,可以更好的帮助研发团队解决单一业务向多元化业务发展的管理问题。该方案已在美团闪购实践过,希望我们的思路能...

    美团技术团队
  • python 命令行抓取分析北上广深房价数据

    昨天在老家,发布了一篇《python 自动抓取分析房价数据——安居客版》。在文末,第6小节提供了完整代码,可以在 python3 环境,通过命令行传入参数 co...

    我是一条小青蛇
  • 腾讯云学生机-腾讯云学生服务器

    腾讯云学生机是腾讯云针对在校学生的一个优惠,每个月只需10元就可购买腾讯云学生机。

    用户1361591
  • 浅谈jpa以及增加缓存

    jpa即java persistence api,一个封装比较轻量级的orm框架,底层用了hibernate来实现。jpa诞生的缘由是为了整合第三方ORM框架,...

    隋政文
  • HDU-6000-Wash

    ACM模版 描述 ? 题解 给定 LL 件衣服让你去洗,洗衣房有 nn 个洗衣机和 mm 个烘干机,每个设备都给定你完成工作所需时间,但是由于设备比较烂,每个设...

    f_zyj
  • HDU-2476-String painter

    ACM模版 描述 ? 题解 image.png 代码 #include <iostream> #include <algorithm> #include <cs...

    f_zyj

扫码关注云+社区

领取腾讯云代金券