1.前后端分离
原理:前端JS框架,API传输数据
影响:
前端界面大部分不存在漏洞(由语言特性决定)
后端管理大部分不在同域名
获得的权限可能不影响后端
前端演示站点
RXThinkCMF - 基于 PHP 语言的敏捷开发框架
https://www.rxthink.cn/
后端演示站点
站点管理 - ThinkPhp6+EleVue版
http://manage.thinkphp6.elevue.rxthink.cn/content/item


2.宝塔+Phpstudy
原理:打包类集成化环境,权限配置或受控制
影响:攻击者权限对比区别
(1)宝塔
从官网下载宝塔面板
宝塔面板(bt.cn) 简单好用的Linux/Windows服务器运维管理面板
完成安装后,登入所给的网址进行登录,如果无法访问,在实例的安全组中开放8888端口。

进入后使用提供的账号密码登录(没有宝塔账号先注册)
在软件商店中安装Apache、MySQL、PHP_5.4


点击一键部署,以部署Z-BlogPHP为例

按要求填写信息后提交完成部署(数据库账号为自动生成,如果太长可能会创建失败)

意外:这里笔者一键部署完成后,显示MYSQL数据库无法连接

解决方案:找到目录C:/wwwroot/你的网站域名(或者你在一键部署时根目录自动创建的其他名字)/zb_users下的c_option.php文件,把他删掉,刷新你的网站页面后会出现安装程序,按照上面所需要的信息填写就行,页面中数据库用户名默认为root,修改成你创建的名字。(这一块忘记截图了😑)

成果


测试宝塔安装与手动安装的不同
打开WebShell工具进行测试

生成1.php文件,将其上传

将1.php的地址添加到软件中

右键进入
执行命令whoami 获取用户权限

返回的结果是无法执行,这是宝塔做出的权限限制,以及无法查看上级目录(当前网站目录可以)

如果是常规类搭建的话,不进行设置,一般是可以命令执行和文件查看
(2)Phpstudy
安装Phpstudy
启动Apache

配置网站(第二域名随意,根目录填写之前用宝塔配好的就行)

配置完成后还是原来那个网站

我们之前已经上传了1.php,现在来测试一下有什么不同

命令执行成功,获取权限
(3)对比
拿到权限后
宝塔:
文件管理 锁定目录
命令执行 无法执行
Phpstudy
文件管理 锁定目录
命令执行 可以执行
获取用户权限 - administor
自己搭建的iis:
文件管理 可查看上级
命令执行 部分可以执行
获取用户权限 - defaultapppool
3.Docker容器
原理:虚拟化技术独立磁盘空间,非真实物理环境
影响:攻击者攻击虚拟空间磁盘
(1)安装
本文使用的是CentOS 7.3的系统
如果是新系统记得安装 git以及下载 vulhub 的源码仓库
安装docker教程:CentOS Docker 安装_w3cschool
根据教程安装后,验证时产生了如下错误

这种情况常见于 旧版本 Docker(特别是 CentOS / RHEL 自带的 docker 或 docker-latest),它的镜像签名校验有 bug,导致无法正常拉取。这个版本的 Docker 会在拉取镜像时启用 GPG 签名校验,但 Docker Hub 已经不再提供这种签名。
解决办法
卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
添加官方仓库并安装最新 Docker CE
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动并测试
sudo systemctl enable --now docker
docker run hello-world
测试结果(安装完成)

部署一个tomcat

下载vulhub

这里选取8.0版本,点击复制

使用docker images,查看当前的docker镜像
docker images
可以看到之前拉取的hello-world

使用刚刚复制的docker pull vulhub/tomcat:8.0命令拉取tomact镜像,并再次查看当前的镜像
docker pull vulhub/tomcat:8.0

可以看到已经成功拉取tomcat镜像
执行命令启动tomcat docker run -it -d -p 8080:8080 vulhub/tomcat:8.0
docker run -it -d -p 8080:8080 vulhub/tomcat:8.0
![]()
搭建已完成,在浏览器用 你的IP:8080 进行查看

点击Manager APP访问后台

可通过命令查看保存在 root/vulhub/tomcat/tomcat8/下的tomcat-users.xml,得知账号密码都为tomcat
vi vulhub/tomcat/tomcat8/tomcat-users.xml

使用账号密码登录后台
如果无法登录,请先停止tomcat
使用docker ps查看查看正在运行的容器
docker ps
用查到的ID(第一列),执行停止命令
docker stop 138a512fd7dd(替换为查到的ID)

修改文件context.xml
vi vulhub/tomcat/tomcat8/context.xml
将下面这段话删除或注释掉
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
变成

保存后进入目录并启动容器
cd /vulhub/tomcat/tomcat8/
docker-compose up -d
完成启动,在网站重新登陆就行

(2)测试
像前面一样进行获取权限测试
生成1.jsp文件

压缩后修改为1.war,并上传

在测试工具中添加,URL填http://你的IP:8080/1/1.jsp

完成添加后进入,执行命令whoami
whoami
获得root权限

虽然获得了root权限,但是进行文件查看时发现两个相同目录下的内容不一致

这里拿到的不是真正的权限,而是虚拟空间的权限,获取真正的权限的技术成为docker逃逸
4.建站分配站
1.托管
托管就是指将网站部署在服务器上,由第三方提供服务器资源和运行环境。
2.申请
原理:利用别人域名模板建立
影响:实质安全测试非目标资产
5.静态web
静态网站是指 网页内容固定、不依赖服务器端程序生成 的网站
例子:大学学的html设计的网站
原理:数据没有传输性(js传输不算,它只是 在前端执行,不涉及后端数据传输,所以不算“数据传输性”)
影响:无漏洞,因为没有后台逻辑和数据库,常见的 Web 攻击(SQL 注入、RCE、权限绕过等)基本不存在。
攻击者最多只能尝试:
XSS(跨站脚本):如果你在 HTML/JS 中直接拼接不可信输入,可能被利用。
恶意 JS 引入:如果引用外部的 JS 库(CDN),而该库被篡改,就可能产生安全问题。
“无漏洞”是相对的,指的是 没有动态程序漏洞。
6.伪静态
动态转为静态技术,伪装的静态
伪静态是“动态页面的静态化外观”,通过 URL 重写让网站更美观、SEO 更友好,但本质仍是动态网站,安全性和性能仍取决于后台程序。

965

被折叠的 条评论
为什么被折叠?



