首先说明这个东西价值不大,测试通杀2.x-3.x,以下的版本没看,具体的利用方法本人也没去研究,顶多mysql有file权限的时候可以getshell,当然discuz还是有不少地方有问题的,这个不能说。。。
作者:Seay
博客:http://www.cnseay.com/
团队:SafeKey Team
http://www.safekeyer.com/

问题出在文件uc_clientmodelbase.php 的function note_exists函数

function note_exists() {
		$noteexists = $this->db->fetch_first("SELECT value FROM ".UC_DBTABLEPRE."vars WHERE name='noteexists".UC_APPID."'");
		if(empty($noteexists)) {
			return FALSE;
		} else {
			return TRUE;
		}
	}

标红的UC_DBTABLEPRE 常量是从configconfig_ucenter.php 文件读取出来的

20130420125557_29322
而这个东西是可控的。在后台站长->UCenter设置

20130420125529_60471

更新一次,表前缀成功写入文件后,下一次更新的时候会调用note_exists函数,于是就触发了漏洞。

20130420125637_36526