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. uniapp 封装 request 并 配置跨域,( 本地 + 线上 + 封装 )

    找到上面这个 文件,不管是用 命令创建 还是 用 HBX 创建,都一样会有这个文件的,然后跟着截图复制粘贴就好了. // 这是配置本地能跨域的,或者你可以直接让后端给你设置请求头,避免了跨域. &qu ...

  2. zset类型数据的操作指令

    1. 也可以追加数据 2. 3. 4. 5. 6. 7. 8. 9.

  3. go语言调用everything的SDK接口

    介绍 官方SDK地址 本项目会将官方dll编译到可执行程序中,运行时无需考虑dll问题. 根据官方介绍,使用SDK前需要运行everything程序. 执行go build -tag ASCII时编译 ...

  4. jq 追加元素的几种方法

    jQuery添加插入元素技巧: jquery添加分为在指定元素的里面添加和外面添加两种: 里面添加使用(append 和prepend) 里面添加又分为在里面的前面添加和后面添加 里面的前面添加使用 ...

  5. 剑指offer计划20( 搜索与回溯算法中等)---java

    1.1.题目1 剑指 Offer 07. 重建二叉树 1.2.解法 注释解法. 1.3.代码 class Solution { int[] preorder; HashMap<Integer, ...

  6. disruptor笔记之一:快速入门

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. jmeter旅程第二站:jmeter登录接口测试

    因为上一篇已经讲了jmeter抓包,那么接下来会将讲解jmeter接口测试. 这里以浏览器为例. 从简到繁,那么首先先以比较常见的登录做实例. 目前登录操作有这几种:账户是否存在.账户密码登录.验证码 ...

  8. 配置Nginx和php-fpm用Sock套接字连接时,找不到php-fpm.sock的原因

    php5.3之后的版本,php-fpm.conf里的listen的默认配置是127.0.0.1:9000,就不会生成php-fpm.sock,因此如果需要Nginx里的配置有链接tmp/php-fpm ...

  9. C# 在PPT中添加数学公式

    本次内容介绍在C#程序中给PPT幻灯片添加Latex数学公式,添加公式前,首先需要在幻灯片中插入一个Shape形状,在形状的段落中通过方法Paragraphs.AddParagraphFromLate ...

  10. 定要过python二级 第三套

    第一模块   基础操作(共三道题) 1. 安装python 包  我在c  盘打开  但是它给我安装到了d盘得  anaconda3 下面  关键是  我在c盘  打开python .exe   创建 ...