【渗透测试】——Upload靶场实战(1-5关)

📖 前言:upload-labs是一个使用 php 语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共21关,每一关都包含着不同上传方式。


目录

  • [🕒 0. 安装phpstudy](#🕒 0. 安装phpstudy)
  • [🕒 1. Pass-01](#🕒 1. Pass-01)
  • [🕒 2. Pass-02](#🕒 2. Pass-02)
  • [🕒 3. Pass-03](#🕒 3. Pass-03)
  • [🕒 4. Pass-04](#🕒 4. Pass-04)
  • [🕒 5. Pass-05](#🕒 5. Pass-05)

🕒 0. 安装phpstudy

🔎 phpstudy官网

注意:需下载旧版本,推荐v5.2.17,其他版本可能会导致部分Pass无法突破。

🔎 upload-labs靶场

下载后放置在WWW文件夹下

对站点域名进行设置,并保存

注意:这里提示./upload文件夹不存在,需要手工创建。

如果环境配置有困难,这里也提供一些已经配置好的网站开箱即用:

http://175.178.67.176:8084

http://39.101.164.187:90/

如果链接被Ban,可以自行去检索:

🔎 FOFA网络安全信息搜集

🕒 1. Pass-01

首先上传一句话木马

php 复制代码
<?php @eval($_POST['csb']);
echo "vulnerable";
?>

发现弹窗给出了白名单文件类型,利用Burp抓包发现无法获取数据包,猜测是前端验证,禁用前端JavaScript,尝试上传


禁用JS后发现上传成功且返回图片,右键图片并选择"在新标签页中打开图片"

复制地址添加到中国蚁剑,即可连接。

我们也可以通过查看phpinfo的方式确认是否连接成功:

php 复制代码
<?php phpinfo();?>

🕒 2. Pass-02

直接上传webshell.php,发现会提示文件类型不正确。

用Burp抓包拦截并分析数据包,猜测可能是对Content-Type类型有限制

我们尝试修改Content-Type: image/jpeg、image/png、image/gif(三种任选其一),重新发包

可以看到成功上传

法二:将.php改成.jpg先上传,开启拦截后修改为.php

🕒 3. Pass-03

直接上传webshell.php,发现会提示黑名单,即扩展名检测机制。

这里需要引入一些扩展知识,由于是黑名单限制且名单不完整,其实可以采用一些方法绕过。比如在某些特定环境中某些特殊后缀仍会被当作php文件解析的扩展名有:php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml

这里用.ptml试一下,直接上传一个名为webshell.phtml的文件,可以发现直接上传成功。

这里需要注意一下,由于phpstudy版本问题,有可能会导致无法解析,如上图。但是解题思路是正确的。

🕒 4. Pass-04

直接上传webshell.phtml,发现直接禁止上传,查看提示可知几乎所有php的扩展名都被禁止了。同时查看源码,大小写扩展名也有所判断。

其实这里有一种类型没有过滤,即上传中常用到的 .htaccess文件

.htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令。

.htaccess主要的作用有:URL重写、自定义错误页面、MIME类型配置以及访问权限控制等。主要体现在伪静态的应用、图片防盗链、自定义404错误页面、阻止/允许特定IP/IP段、目录浏览与主页、禁止访问指定文件类型、文件密码保护等。

.htaccess的用途范围主要针对当前目录。

创建.htaccess文件,代码如下:

html 复制代码
<FilesMatch ".png">
SetHandler application/x-httpd-php
</FilesMatch>

这个代码的作用是,如果当前目录下有.png的文件,就会被解析为.php,成功上传。

🕒 5. Pass-05

查看源代码,发现少了个转换大小写的语句,我们将文件改为webshell.PHP即可绕过。

大小写绕过原理:

Windows系统下,对于文件名中的大小写不敏感。例如:test.php和test.PHP是一样的。

Linux系统下,对于文件名中的大小写敏感。例如:test.php和 test.PHP就是不一样的。


OK,以上就是本期知识点"Upload靶场实战(1-5关)"的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~

💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀

🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处

作者:HinsCoder

博客链接:🔎 作者博客主页

相关推荐
亿坊电商2 分钟前
24H-无人共享KTV:如何实现安全的自助服务?
大数据·物联网·安全
飞行增长手记3 分钟前
什么是高匿代理IP?安全吗?怎么选?
网络协议·tcp/ip·安全
bkspiderx5 分钟前
安全扫描问题:目标主机支持RSA密钥交换(风险分析与解决方案)
安全·rsa·交换·密钥交换·目标主机支持rsa密钥交换·rsa密钥交换·rsa密钥
J***Q2927 分钟前
DevOps金融服务安全要求
运维·安全·devops
charlie11451419113 分钟前
深入理解C/C++的编译链接技术6——A2:动态库设计基础之ABI设计接口
c语言·开发语言·c++·学习·动态库·函数
white-persist19 分钟前
【攻防世界】reverse | Reversing-x64Elf-100 详细题解 WP
c语言·开发语言·网络·python·学习·安全·php
love530love21 分钟前
【保姆级教程】Windows + Podman 从零部署 Duix-Avatar 数字人项目
人工智能·windows·笔记·python·数字人·podman·duix-avatar
HKT_China23 分钟前
香港电讯与Fortinet推出100G高效加密网络托管服务,迈进量子安全新时代
网络·安全
草莓熊Lotso2 小时前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
AI绘画哇哒哒4 小时前
【收藏必看】大模型智能体六大设计模式详解:从ReAct到Agentic RAG,构建可靠AI系统
人工智能·学习·ai·语言模型·程序员·产品经理·转行