0
点赞
收藏
分享

微信扫一扫

代码审计—espcmsv5注入测试复现

天使魔鬼 2022-03-12 阅读 116

一,复现环境准备

所需文件安装包资源
phpstudyv8下载安装 https://www.xp.cn/download.html
espcmsv5百度网盘下载链接:https://pan.baidu.com/s/1vRYpoQiqbrSPQYPVVJbYRQ
提取码:espc
php版本5.3.x,mysql版本5.3.x espcmsv5版本不支持更高版本的php和mysql。
seay源代码审计系统:网页直接搜索就可以直接安装

二,复现环境搭建


1,phpstudy配置
打开首页的apche,mysql,(MySQL版本为5.x.x)
在这里插入图片描述

phpstudy网站搭建
在这里插入图片描述

将cms源码.zip–>cms源码–>espcms.rar–>espcms中的文件全部直接复制到www.espcmstest.com文件下如图所示
在这里插入图片描述

总之cms源码.zip–>cms源码–>espcms.rar–>espcms中的文件要直接在www.testespcms.com的子目录下。
2,espcms安装
在浏览器输入地址栏 www.testespcms.com(如果为第一次安装)就可以按照手册步骤安装
若以前安装过就会直接到网站首页。
espcms在线安装手册 https://www.ecisp.cn/html/cn/v5_faq/
(若安装数据库是页面无响应大概率是php版本过高,或者mysql版本过高)MySQL数据库默认密码一般为root,安装完成后 www.testespcms.com\adminsoft为网页后台地址

三,seay源代码审计系统自动审计

新建项目找到文件并且打开espcms文件点击自动审计开始即可
在这里插入图片描述

选中,双击进行查看:
在这里插入图片描述

这里是带入参数进入数据库查询,下一步对$parentid右键全局搜索,查看参数传递过程

在这里插入图片描述

右键定位accept函数
在这里插入图片描述

通读代码可知,传入的参数是R,所以此处传递参数的方法既可以是get也可以是post。然后使用daddslashes进行过滤,其实质就是addslashes。

在回顾前文代码{$sql = “select * from d b t a b l e w h e r e p a r e n t i d = db_table where parentid= dbtablewhereparentid=parentid”;},sql查询语句并没用单引号进行分隔,因此,此处存在sql注入漏洞
回到sql代码处看到class important extends connector右键全局搜索查看important在哪里实例化得到下图
在这里插入图片描述

大致的流程就是获取url中的archive参数作为寻找php文件的参数,并包含获取url中的action参数,作为函数名,并调用在具体的函数中获取parentid的值,组成sql语句。
因此可以构建exp:
http://www.testespcms.com/adminsoft/index.php?archive=citylist&action=citylist&parentid=-1 union select 1,2,user(),4,5
注入结果
在这里插入图片描述

四,结果

成功获得用户名

举报

相关推荐

0 条评论