• 中文
    • English
  • 注册
  • 查看作者
  • 2 :Web其他、前后端、软件、Docker、分配站等

    一、前后端分离

    传统的网站前后端是由一个人项目组成,服务器上直接部署一个项目即可,随着技术的发展和业务的复杂性提高,越来越多的项目倾向于前后端分离的方式,即前端代码和后端代码分开编写,作为两个不同的项目的分开部署,前后端仅通过API交互和传输数据。目前比较成熟的前端框架有VUE、React、Angular等,后端一般采用Java、C++等。前后端分离的项目在安全测试中存在以下影响

    • 前端页面大部分不存在漏洞,或漏洞较少

    • 后端项目和前端项目大部分不在同域名

    • 获得前端权限有可能不影响后端,后端权限需要单独获取

    判断一个网站是否是前后端分离有多种方法,详细教程请查看怎样判断一个网站是不是前后端分离的?_怎么看项目是不是前后端分离_gblfy的博客-CSDN博客

    在第1天的教程中,我们通过自己安装IIS搭建了Zblog,除此之外,我们还可以通过一些集成环境或者脚本一键可视化安装,虽然最后实现的功能是一样的,但是不同的搭建方式却对安全测试的结果有着不同的影响,接下来我们分别通过宝塔、phpstudy等几种搭建网站等方式,来查看其区别

    二、宝塔

    宝塔面板是一款服务器管理软件,支持windows和Linux系统,可以通过Web端轻松管理服务器,提升运维效率。通过宝塔可以直接一键安装各种环境和软件,特别是Linux系统,省去了手工输入命令的步骤。我们来通过宝塔部署一个网站测试一下。

    1. 打开宝塔官网,下载window面板上传至我们的个人服务器(个人服务器需配置安全组打开所有端口),下载链接:https://download.bt.cn/win/panel/BtSoft.zip

    2. 解压安装文件并安装,安装完成后,会显示我们的账号和密码及面板的登录地址,登录成功后,需要我们先绑定宝塔账号才能使用更多功能

    3. 绑定成功后,会给我们推荐一键安装套件,我们选择Apache套件即可(点击面板左上角可查看安装进度)

    2 :Web其他、前后端、软件、Docker、分配站等

    4. 安装完成后,我们点击软件商店-一键部署-zblog

    2 :Web其他、前后端、软件、Docker、分配站等

    5. 输入网站域名,这里我直接用了第一节课中配置好的域名,如果你没有配置过,则需要先去域名控制台设置解析记录

    2 :Web其他、前后端、软件、Docker、分配站等

    6. 安装成功后,即可直接访问刚刚搭建好的网站

    2 :Web其他、前后端、软件、Docker、分配站等

    7. 我们打开ONE-FOX集成工具-webshell管理-哥斯拉v4.0.1-管理-生成-有效载荷选择Php,点击生成

    2 :Web其他、前后端、软件、Docker、分配站等

    8. 生成完成后,打开宝塔面板,点击网站-根目录-上传,将后门文件上传到网站的根目录,并访问

    2 :Web其他、前后端、软件、Docker、分配站等

    9. 打开ONE-FOX集成工具-目标-添加,URL即为该后门文件的地址,有效载荷选择Php-测试链接-添加(注意,如果你的命令行乱码,这里的编码需要改成GBK)

    2 :Web其他、前后端、软件、Docker、分配站等

    10. 点击命令执行,输入whoim,可以看到报错了,无法获取到权限

    2 :Web其他、前后端、软件、Docker、分配站等

    11. 点击文件管理,也无法访问上级目录

    2 :Web其他、前后端、软件、Docker、分配站等

    三、phpStudy

    phpStudy是一个老牌的服务器集成环境工具,和宝塔类似,我们通过在phpstudy中安装部署一个网站来测试 一下

    1. 下载phpstudy上传至我们的服务器并安装,下载链接:https://public.xp.cn/upgrades/phpStudy_64.zip

    2. 打开宝塔面板-网站-状态改为停止,防止端口号等冲突,接下来打开安装好的phpstudy,启动Apache

    2 :Web其他、前后端、软件、Docker、分配站等

    3. 点击网站-创建网站,配置相关信息,目录直接用宝塔创建好的目录即可

    2 :Web其他、前后端、软件、Docker、分配站等

    4. 此时再次访问study1.zhangjia.pro,访问成功,由于我们直接用的宝塔的网站目录,所以刚刚上传的后门还在,用同样的方法发现phpStudy搭建的网站命令可以执行

    2 :Web其他、前后端、软件、Docker、分配站等

    5. 同时phpstudy在网站的安全设置里,也可以进行一些网络安全配置

    2 :Web其他、前后端、软件、Docker、分配站等

    四、IIS

    1. 打开IIS管理器,新建网站,网站目录依旧选择宝塔创建的网站目录即可2 :Web其他、前后端、软件、Docker、分配站等

    2. 由于80端口被占用,无法启动我们新添加的网站,点击网站-操作-绑定,修改端口号为8080,再次启动即可(如果提示Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,则打开服务,启动Windows Activation Service和 World Wide Web Publishing Service 即可)

    2 :Web其他、前后端、软件、Docker、分配站等

    3. 网站启动成功后,我们再次访问后门,可以看到部分命令可以执行,部分不可以执行,因为IIS和phpstudy的权限不同,phpstudy安装时用的administrator账户,所以phpstudy的命令权限就是administrator,IIS在上一期课程里已经有详细的讲解,这里不再赘述

    五、Docker

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。在学习接下来的内容前,我们先来熟悉docker的几个基本概念:

    · Docker的原理是虚拟化技术独立磁盘空间,并非真实的物理环境

    · Docker只能操作单个容器,而Docker Compose可以通过定义和运行 多个容器Docker应用程序,可同时操作多个容器,详细的区别请查看docker和docker-compose的区别_woowahahahahaha的博客-CSDN博客

    接下来我们来安装Docker,看一下在Docker中,安全测试有哪些影响

    1. 这里我们重新申请一台Linux(CentOS Steam 8 64位)服务器做测试,打开xshell(下载教程:https://zhangjia.pro/506.html),连接我们刚刚购买的服务器

    2 :Web其他、前后端、软件、Docker、分配站等

    2. 输入curl -sSL https://get.daocloud.io/docker | sh命令来一键安装docker,安装成功后可以通过docker-v 查看docker版本号来确认是否安装成功

    3. 安装成功后,通过systemctl start docker命令启动docker

    4. 接下来安装docker compose,通过mirrors / docker / compose 来查看docker compose的最新版本,并替换下面的v2.16.0执行curl -L https://get.daocloud.io/docker/compose/releases/download/v2.16.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

    5. 将可执行权限应用于二进制文件:sudo chmod +x /usr/local/bin/docker-compose

    6. 创建软链接:sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

    7. 通过docker-compose -v查看版本号来确认是否安装成功

    8. 打开docker官网https://hub.docker.com,可以直接下载别人做好的镜像,我们搜索vluhub(需要先注册登录账户,Vulhub是一个基于docker和docker-compose的漏洞环境集合)选择Tomcat8.0版本,复制docker pull vulhub/tomcat:8.0到xshell中拉取镜像

    2 :Web其他、前后端、软件、Docker、分配站等 2 :Web其他、前后端、软件、Docker、分配站等

    9. 通过docker run -it -d -p 8080:8080 vulhub/tomcat:8.0命令启用我们拉取的镜像,启用成功后,访问ip:8080,即可看到Tomcat的启动页

    2 :Web其他、前后端、软件、Docker、分配站等

    10. 通过docker ps 可以列出我们的docker容器,通过docker stop [CONTAINER ID] 可以停止某个容器

    11. 我们先停止掉刚刚创建的容器,打开Vulhub – Docker-Compose file for vulnerability environment,获取vulhub的GitHub地址并下载 git clone https://github.com/vulhub/vulhub.git如果没有安装过Git,则需要先安装Git,安装教程:https://blog.csdn.net/weixin_38568972/article/details/128025074

    12. 打开Tomcat文件夹:cd vulhub/tomcat/tomcat8/,启动容器docker-compose up -d,此时再次访问ip:8080,可以看到Tomcat的启动页,达到了和第9步一样的效果

    13. 点击Manager App,输入用户名和密码(都是tomcat),通过ONE-FOX集成工具生成java的后门,命名为1.jsp,并打包成zip包后,再将后缀修改为war的格式,并通过Manager的WAR file to deploy模块上传

    2 :Web其他、前后端、软件、Docker、分配站等

    14. 接下来我们访问ip:8080/1/1.jsp,并通过ONE-FOX集成工具即可拿到该服务器的权限

    2 :Web其他、前后端、软件、Docker、分配站等

    15. 虽然看似拿到了该网站所有的权限和目录,但因为是通过docker部署,所以即使我们拿到了权限,也只能拿到当前镜像的权限,无法获取整个服务器的权限(可以通过验证docker的目录和服务器的根目录文件来确认),需要后期通过docker 逃逸来完成攻击

    六、建站分配站

    某些网站是通过类似凡科建站的方式申请搭建的,网站所有者没有自己的专属服务器,只有使用权,没有所有权,网站的所有内容都是通过凡科建站的后台去配置的(类似于QQ空间),我们安全测试的真实目标并不是网站本身,而是凡科建站平台,一般此类网站会分配一个免费的二级域名,安全测试难度极大

    七、静态网站

    静态网站就是单个页面,简单来说就是只有单个html页面,不包含程序代码的网站,数据没有传输型,一般以.html结尾,因此访问速度快,但是功能简单,页面单调,此类网站不存在任何安全漏洞,和静态网站对应的是动态网站,像知乎、谷歌等都是动态网站

    八、伪静态

    伪静态是将动态网页伪装成静态网站的技术,即从文件后缀来看和静态页面一样,但是实际上他是个动态页面,只是通过技术手段伪装成静态页面的样子,伪静态页面的内容是通过读取数据库生成的,伪静态对SEO益处较大

    参考资料

    以上内容整理自小迪安全系列课程

    未知
  • 0
  • 0
  • 0
  • 773
  • 请登录之后再进行评论

    登录
    单栏布局 侧栏位置: