渗透技术学习之二--docker搭建vulhub靶场进行nginx服务漏洞分析

这个是合天网安实验室的免费课程,按照指导书做了一遍,对于没用过docker和Nginx的我来说,有了些感性认识。这里记录一下过程和关键点。
合天的课程:
docker搭建vulhub靶场进行nginx服务漏洞分析

实验目的:

本实验通过熟悉Docker的使用,搭建一个本地的模拟环境去测试漏洞。在搭建的靶场环境中模拟不同的漏洞环境,可以进行漏洞复现以及安全知识的学习,这极大方便了网安学习者。

实验环境:

服务器:MacBook
辅助工具:
(1)Docker(version 20.10.5, build 55c4c88)
(2)用来做图片和合成文件的Windows电脑

安装Docker,并运行一个PythonFlask应用来运行一个web应用。

(1)安装Docker:

brew cask install docker

可以从Applications中启动“小鲸鱼”Docker。
(2)载入镜像:

docker pull training/webapp

(3)启动应用:

docker run -d -P training/webapp python app.py

Docker中看到的:
在这里插入图片描述
可以访问的应用:
在这里插入图片描述

使用docker搭建vulhub靶场环境并复现nginx解析漏洞

(1)克隆项目

git clone https://github.com/vulhub/vulhub.git

(2)进入环境目录

cd flask/ssti

(3)编译环境

docker-compose build

(4)启动容器

docker-compose up -d

(5)用WIndows的mspaint画一张小png图片1.png 因为要让php解析,所以图片越小,成功的可能越大
(6)创建1.php

<?php
  phpinfo();
?>

(7)在Windows的cmd中执行文件合成命令

copy 1.png/b + 1.php/a 1.jpg

(8)通过index.php上传1.jpg,竟然返回了文件路径
在这里插入图片描述
(9)访问图片
在这里插入图片描述
(10)执行php
在这里插入图片描述
看到我们隐藏在图片最后的代码phpinfo()得以执行, 如果换成其他的代码,会有什么效果?

该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞
漏洞原理:Nginx+PHP的服务器中,如果PHP的配置里 cgi.fix_pathinfo=1那么就会产生一个漏洞。这个配置默认是1的,设为0会导致很多MVC框架(如Thinkphp)都无法运行。这个漏洞就是比如localhost/img/1.jpg 是正常地访问一张图片,而 localhost/img/1.jpg/1.php 却会把这张图片作为PHP文件来执行!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值