EmpireCMS 渗透测试及靶场搭建(漏洞复现)

一、搭建CMS

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

第一步:上传
将安装包的. /upload目录中的全部文件和目录结构上传到服务器的网站根目录(注意是上传upload 目录中的文件和目录,而不是上传upload目录本身。
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第1张图片
第二步:运行脚本
在浏览器中运行/e/install/index. php,即访问http:// 你的网址/e/ install/index. php
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第2张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第3张图片
第三步:删除安装程序目录
安装成功后,请通过FTP删除安装程序目录(/e/install),以避免被再次安装。
第四步:初始化:

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

第五步:进入搭建好的测试站点主页面,至此帝国CMS搭建完毕
http://192.168.200.14/EmpirECMS/upload/
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第4张图片

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

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

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

通过开放的端口,可以获取端口的说明信息以及攻击方向
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第5张图片

ip查询

通过站长之家,进行ip地址查询具体信息,可以看到这是私人的ip地址,并且是自己集成的靶场环境。
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第6张图片

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

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

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

浏览器语法使用

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

备案信息查询

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

指纹识别

whatweb时kali当中的一款工具,可以更清楚的知道网站中可以为自己所用的信息
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第18张图片

更改参数信息

参数设置页面,限制了很多可以文件上传的后缀名,很多可以上传文件的位置都做了严格的过滤,倘若更改限制后缀名那么相信木马文件也可以轻松上传
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","");?>
#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 是一套可以修改流的行为的选项。

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第19张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第20张图片
Snipaste_2023-05-28_15-11-48.jpg
尝试访问文件所在路径,用hackbar访问,可以看到出现PHP版本信息,那么证明此文件是被上传到服务器的了,最后可以进行蚁剑连接,拿取shell
image.png
蚁剑连接成功
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第21张图片
此时可以遍历目录
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第22张图片

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

获取shell

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

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

代码注入获取shell

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

select '' into outfile 'C:/phpStudy/PHPTutorial/WWW/EmpireCMS/e/admin/1.php'

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

后台拿SHELL

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

在此位置插入一句话木马,最终
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第36张图片
源码当中的一句话木马已经被写入,证明肯定时写入到文件里面了
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第37张图片
链接蚁剑,拿取shell
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第38张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第39张图片
遍历目录

获取shell

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第40张图片
成功在网站根目录写入webshell
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第41张图片
连接蚁剑

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第42张图片
目录遍历
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第43张图片

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

1.在会员中心页面点击修改密码时抓包
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第44张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第45张图片
image.png
将上述的html代码,编写成脚本放到phpstudy下的www目录
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第46张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第47张图片

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

A、反射型:

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

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

可以先创建栏目信息
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第48张图片
然后点击图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第49张图片
漏洞页面
image.png
#漏洞原理:url地址经过Request函数处理之后,
把url地址中的参数和值部分直接拼接当作a标签的href属性的值和img标签的src标签的值
代码分析

if(Request("url")!=0){
	document.write(
"+Request("url")+"\" target=\"_blank\">
+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)

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第50张图片
点击图片可以触发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)

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第51张图片

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第52张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第53张图片
图片内的栏目信息全部都含有如上图的xss漏洞
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第54张图片

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第55张图片
image.png
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第56张图片

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第57张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第58张图片

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第59张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第60张图片

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第61张图片

B、存储型

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

源码:
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第62张图片
访问显示页面非法来源
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第63张图片
构造发现依然无效

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')

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第64张图片
mainfile参数:获取cookie

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第65张图片
leftfile参数

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第66张图片
而title参数,是无法显示出来页面信息的

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第67张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第68张图片

2.栏目–》管理栏目

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第69张图片
每次点进页面会自动触发

<script>alert(111)</script>

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第70张图片
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第71张图片

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

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

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

EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第72张图片
sqlmap执行语句
执行时间过长,判断为延时注入
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第73张图片
2.另外此页面下也含有SQL注入,并且判断为延时注入
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第74张图片
在此,SQLmap构造的payload在url框中执行没有效果
EmpireCMS 渗透测试及靶场搭建(漏洞复现)_第75张图片

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

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

你可能感兴趣的:(#,搭建靶场,web安全,笔记)