day2.Web架构-前后端分离站&Docker容器站&集成软件站&建站分配

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 更友好,但本质仍是动态网站,安全性和性能仍取决于后台程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值