Upload-labs

所有文章和随笔(随笔将不于csdn更新)将于我的个人博客(移动端暂未适配)第一时间更新。

一些网站存在文件上传接口,一旦存在这个接口就有可能存在漏洞。
文件上传漏洞的逻辑是将一个webshell上传到服务器,服务器对它进行本地化存储并解析。
那么我们只要获知上传文件的路径就可以对整个网站甚至是服务器进行控制。

本次实验使用的靶场环境是Upload labs, github项目地址
环境:php 5.2.17

Pass-1

我们直接上传一个phpinfo测试一下,发现立刻就显示如下信息

该文件不允许上传,请上传.jpg|.png|.gif类型的文件,当前文件类型为:.php

怀疑是js拦截。将js禁用后成功上传
成功访问

Pass-2

仍然上传一个.php的webshell提示文件类型不正确,使用burp抓包并修改文件类型

-application/octet-stream
+image/jpeg

Pass-3

waf拦截提示

不允许上传.asp,.aspx,.php,.jsp后缀文件!

抓包尝试修改后缀为php3,php4,php5,pht,phtm,phtml绕过

Pass-4

测试后发现仅提示此文件不允许上传,并且修改后缀、修改文件类型均无效
上传.htaccess文件并写入如下内容

<FilesMatch "haha">
SetHandler application/x-httpd-php
</FilesMatch>

然后在上传一个带有"haha"字样的任意后缀的webshell即可

.htaccess文件是php的解析文件,根据文件写的规则,会把相应的东西当作php来执行
此题中所有文件名中包含“haha”字样(后缀)的文件都当作php来执行

Pass-5

本题旨在让我们使用文件包含配合文件上传进行一个配合攻击
原理图如下:

因此我们可以抓包并修改后缀为jpg,利用文件包含将其以php执行

http://localhost/include.php?file=./upload/haha.jpg

Pass-6

由于此靶场是搭建与windows上,而windows对于后缀大小写不敏感,linux对大小写敏感
可以直接抓包修改后驻为phP绕过

Pass-7

此题提示为“禁止上传所有可解析的后缀”,又根据windows特性,后缀后的空格不解析,因此直接抓包修改后缀加空格绕过。

Pass-8

后缀加.绕过

Pass-9

::$DATA是windows的NTFS文件系统中的默认属性

上传xxx.php::$DATA
意思是让windows请求自己

Pass-10

可以使用burp抓包,第一次上传文件名xxx.php:.jpg
此时会生成一个空的xxx.php文件
第二次上传文件名xxx.>>>
此时会在空文件中写入你的代码

Upload-labs通关指南(上) 1-10的更多相关文章

  1. SUCTF 2019 Upload labs 2 踩坑记录

    SUCTF 2019 Upload labs 2 踩坑记录 题目地址 : https://github.com/team-su/SUCTF-2019/tree/master/Web/Upload La ...

  2. 【原创】高性能网络编程(二):上一个10年,著名的C10K并发连接问题

    1.前言 对于高性能即时通讯技术(或者说互联网编程)比较关注的开发者,对C10K问题(即单机1万个并发连接问题)应该都有所了解."C10K"概念最早由Dan Kegel发布于其个人 ...

  3. python小练习,打出1-100之间的所有偶数,设计一个函数,在桌面上创建10个文件,并以数字命名,复利计算函数

    练习一:打出1-100之间的所有偶数 def even_print(): for i in range(1,101): if i % 2 == 0: print (i) even_print() #列 ...

  4. WordPress NextGEN Gallery ‘upload.php’任意文件上传漏洞

    漏洞名称: WordPress NextGEN Gallery ‘upload.php’任意文件上传漏洞 CNNVD编号: CNNVD-201306-259 发布时间: 2013-06-20 更新时间 ...

  5. python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名。

    python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名. 使用for循环即可实现: for name in range(1,11): desktop_path='C: ...

  6. 编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示。如:ABCABCABC…… 依次递归

    import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.uti ...

  7. RabbitMQ-Java客户端API指南-上

    RabbitMQ-Java客户端API指南-上 客户端API严格按照AMQP 0-9-1协议规范进行建模,并提供了易于使用的附加抽象. RabbitMQ Java客户端使用com.rabbitmq.c ...

  8. 看KubeEdge携手K8S,如何管理中国高速公路上的10万边缘节点

    摘要:为保证高速公路上门架系统的落地项目的成功落地,选择K8s和KubeEdge来进行整体的应用和边缘节点管理. 一.项目背景 本项目是在高速公路ETC联网和推动取消省界收费站的大前提下,门架系统的落 ...

  9. 《Advanced Bash-Scripting Guide》 in Chinese 高级Bash脚本编程指南》Revision 10中文版

    <Advanced Bash-Scripting Guide> in Chinese <高级Bash脚本编程指南>Revision 10中文版 在线阅读链接:http://ww ...

随机推荐

  1. eBPF 安全项目 Tracee 初探

    1. Tracee 介绍 1.1 Tracee 介绍 Tracee 是一个用 于 Linux 的运行时安全和取证工具.它使用 Linux eBPF 技术在运行时跟踪系统和应用程序,并分析收集的事件以检 ...

  2. k8s garbage collector分析(1)-启动分析

    k8s garbage collector分析(1)-启动分析 garbage collector介绍 Kubernetes garbage collector即垃圾收集器,存在于kube-contr ...

  3. Docker(41)- Portainer 可视化面板安装

    Portainer docker run -d -p 8080:9000 \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock ...

  4. 本地jvisualvm通过jstatd远程监控GC

    1.查找jdk路径 [root@xxx ~]# which java /data/soft/jdk1.8.0_221/bin/java 2.进入jdk的bin目录下添加指定安全策略文件,注意jdk路径 ...

  5. 马哈鱼数据血缘分析器分析case-when语句

    马哈鱼数据血缘分析器是一个分析数据血缘关系的平台,可以在线直接递交 SQL 语句进行分析,也可以选择连接指定数据库获取 metadata.从本地上传文件目录.或从指定 git 仓库获取脚本进行分析. ...

  6. Python小技巧:这17个骚操作你都OK吗?

    导读:Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短.本文中带我们回顾了 17 个非常有用的 Python 技巧,例如查找.分割和合并列表等.这 17 个技巧都非常简单,但它们都 ...

  7. Consul+Ocelot+Polly在.NetCore中使用(.NET5)-Consul服务注册,服务发现

    环境 .NET5,Consul_v1.10.2 一.简介 在微服务中利用Consul可以实现服务的注册,服务发现,治理,健康检查等. Web调站点需要调用多个服务,如果没有Consul,可能就是Web ...

  8. Python中with...as...的用法详解

    简介 with是从Python2.5引入的一个新的语法,它是一种上下文管理协议,目的在于从流程图中把 try,except 和finally 关键字和资源分配释放相关代码统统去掉,简化try-.exc ...

  9. 基于swoole框架hyperf开发的纯API接口化的后台RBAC管理工具hyperfly@v1.0.0发布

    hyperfly@v1.0.0发布 本文地址http://yangjianyong.cn/?p=323转载无需经过作者本人授权 github地址:https://github.com/vankour/ ...

  10. MySQL 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。

    第一步 有一部分人成功了在安装根目录创建data文件夹 第二步 有一部分人成功了D:\Program Files\mysql\bin>mysqld initialize 第三步 这步之后我安装成 ...