本文主要介绍了,由于心情墙插件变量初始化和过滤不严所导致的SQL注入式攻击及跨站脚本漏洞。虽然心情墙插件所导致的SQL注入攻击在现在来看比较鸡肋,因为SQL注入攻击所要求的GPC为off的情况已经很少出现了,但是由于xss是持久型的,只要管理员打开此应用就会立即出发。
成都创新互联公司2013年成立,先为勉县等服务建站,勉县等地企业,进行企业商务咨询服务。为勉县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
详细说明:
由Discuz!认证的(http://addons.discuz.com/workroom.php)第三方开发团队“潮流少年工作室 Teen Studio”出品的心情墙插件(http://www.discuz.net/forum.php?mod=viewthread&tid=1632898),因变量未初始化及过滤不严导致SQL注入及跨站脚本漏洞。
moodwall.inc.php
SQL注入,除下面代码这一处外,本文件还有很多处这样的或是$_POST得到后直接用的情况。惨不忍睹。
elseif($action == 'edit_mood' && moodid) {
//moodid未初始化,直接代入sql查询
$check = $db->result_first("SELECT * FROM {$tablepre}moodwall WHERE id='$moodid' AND uid='$discuz_uid'");
if(!$check || !$moodid) {
showmessage('moodwall:moodwall_inc_php_2', 'plugin.php?id=moodwall&action=user_mood');
}
$sql = "SELECT * FROM {$tablepre}moodwall WHERE id='$moodid'";
$query = $db->query($sql);
$moodlist_edit = array();
while($mood_edit = $db->fetch_array($query)) {
$moodlist_edit[] = $mood_edit;
}
XSS
$uid=$_POST[uid];
$username=$_POST[username];
$bgpic=$_POST[bgpic];
$mood=$_POST[mood];
$message=$_POST[message];
$dateline=time();
//$_POST得到数据直接入库,前端出库代码也没有做过滤,这里就不贴了。
$db->query("INSERT INTO {$tablepre}moodwall (uid,username, bgpic, mood, message, dateline) VALUES ('$uid', '$username', '$bgpic', '$mood', '$message', '$dateline')");
漏洞证明:
随意找一个安装心情墙插件应用的网站:
/plugin.php?id=moodwall&action=edit_mood&moodid=2'
发表心情处直接插入html代码
">
修复方案:
只能够反复的过滤和初始化,没有什么好的修复方案。
强烈建议Discuz!团队对第三方的应用做严格的审查后再在自己的官方论坛上发布。Discuz!败在插件上也不是一次两次了
分享文章:心情墙插件SQL注入及XSS漏洞分析和修复
本文地址:http://www.shufengxianlan.com/qtweb/news42/52192.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联