upload-labs通关攻略教程【1-11关】(持续更新中)

Pass-01-js检查

  1. 查看题目源码,发现三种后缀的文件可以上传。在这里插入图片描述
  2. 上传一个后缀为.jpg的文件,文件内容为一句话木马<?php @eval($_POST[123]);?>使用burp抓包并修改文件后缀为php,即可上传成功
  3. 上传成功使用一句话木马连接即可。
  4. 或者直接修改源码删去JS检查的代码,即可将php木马文件直接上传。

Pass-02-MIME验证(content-type验证)

  1. 查看题目源码在这里插入图片描述
  2. 查看题目提示为MIME验证,分析源码,可以通过burp抓包修改数据包的第二个content-type,并查看响应。在这里插入图片描述

在这里插入图片描述
3. 拖拽点击上传成功的图片木马,看到php配置页面即可说明上传成功。在这里插入图片描述
4. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-03-黑名单绕过

  1. 查看题目源码在这里插入图片描述用黑名单不允许上传.asp,.aspx,.php,.jsp后缀的文件

  2. 尝试直接上传一个文件后缀为jpg的一句话木马文件,拖拽点击图片,发现提示错误显示。在这里插入图片描述

  3. 基于文件后缀验证名验证方式的分类:
    ①基于白名单验证:只针对白名单中有的后缀名,文件才能上传成功。
    ②基于黑名单验证:只针对黑名单中没有的后缀名,文件才能上传成功。
    用黑名单不允许上传.asp,.aspx,.php,.jsp后缀的文件,但可以上传.phtml、 .php3 .php5、php4、 .pht、php1、php2、phps【这些后缀会被当成php文件解析】等等。
    由于环境是phpstudy搭建,其中限制了后缀,需要在目录D:\PhpStudy2018\PHPTutorial\Apache\conf下将#AddType application/x-httpd-php.php.phtml改为AddType application/x-httpd-php.php.phtml.php3.php4.php5(记得去掉“#”)在这里插入图片描述

  4. 上传文件后缀为php3的内容为<?php phpinfo();?>的文件,出现php配置页面即可说明上传成功。

  5. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-04-htaccess绕过

.htaccess是什么:
全称是Hypertext Access(超文本入口) .htaccess文件也被成为分布式配置文件,提供了针对目录改变配置的方法,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

.htaccess功能:
文件夹密码保护、用户自定义重定向、自定义404页面、扩展名伪静态化、禁止特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表
很可惜,这么一个强大的功能默认是不开启的 Apache (有伪静态的都可以试试)

用法:
AddType application/x-httpd-php .jpg 这个指令代表着.jpg文件会当做php来解析
SetHandler application/x-httpd-php,意思是把所有文件都解析为php文件来执行。

  1. 查看源码,发现常见的文件后缀都被禁用除了htaccess,可以考虑使用htaccess绕过。在这里插入图片描述
  2. 在该目录..\PhpStudy2018\PHPTutorial\Apache\conf下httpd.conf文件中mod_rewrite模块开启,配置文件中LoadMoudle rewrite_module module modules/mod_rewrite.so AllowOverride All

在这里插入图片描述
通过命令行修改文件名,将1.htaccess修改为.htaccess

ren 1.htaccess .htaccess
  1. 先上传一个后缀为htaccess的文件,其中文件内容为SetHandler application/x-httpd-php,意思是把所有文件都解析为php文件来执行。上传时使用burp抓包修改文件名只有后缀。在这里插入图片描述
  2. 再次上传一个png的内容为<?php phpinfo();?>文件,上传成功后拖拽点击图片,看到php配置页面即可说明上传成功,不必修改文件后缀为php在这里插入图片描述
    在这里插入图片描述
  3. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-05-.user.ini绕过

  1. 查看题目源码,与第四关基本相同,但相比第四关,这关过滤了htaccess,还可以利用ini配置文件在这里插入图片描述
  2. 先上传一个以auto_propend_file=1.gif为内容的.user.ini文件【用户自定义的配置文件】。.user.ini文件里的意思是:所有的php文件都自动包含1.gif文件,.user.ini相当于一个用户自定义的php.ini。然后再上传一个内容为一句话木马的命名为1.gif的文件。在这里插入图片描述
  3. 复制图片地址,利用蚁剑连接一句话木马,url地址为图片地址,但需要把图片文件名改为readme.php,密码为一句话木马的密码,即可连接成功。在这里插入图片描述

Pss-06-大小写绕过

  1. 查看源码,相比上一关,.ini也被禁用,但是转换为小写的一行源码被删掉,因此可以考虑大小写绕过的方法
    在这里插入图片描述
  2. 查看提示,一部分大小写被禁用在这里插入图片描述
  3. 上传一个1.PHP的内容为<?php phpinfo();?>的文件,上传成功后拖拽点击图片,看到php配置的页面,说明文件上传成功。
    在这里插入图片描述
  4. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-07-空格绕过

  1. 相比上一关的源码,转换为小写源码的未被删去,而是删去了首位去空的源码。在这里插入图片描述
  2. 上传一个1. php的内容为内容为<?php phpinfo();?>的文件,上传后拖拽点击图片,出现php配置页面即可说明上传成功。在这里插入图片描述
    在这里插入图片描述
  3. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-08-点绕过

  1. 查看源码,发现前几关所有的绕过方式都被禁用,但没有对后缀名末尾的点进行处理。因此可以考虑使用windows特性,自动去掉后缀名中最后的点,且源码中相比上一关缺少了删除文件名末尾的点。在这里插入图片描述2. 使用burp抓包修改文件后缀为php.,上传一个后缀为php.的内容为<?php phpinfo();?>文件,上传后拖拽点击图片,发现php配置页面,即可说明上传成功。在这里插入图片描述

Pass-09-::$DATA绕过

  1. 查看源码,与上一关相比,同样所有可以解析的后缀都被过滤,但缺少了过滤后缀名::$DATA的源码。在这里插入图片描述

  2. 常用1.txt:a.txt来隐藏a.txt文件,除非使用dir/r才可以找到。
    在这里插入图片描述
    在这里插入图片描述

  3. php+windows的情况下:如果文件名+::$DATA会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名。利用windows特性,可在后缀名中加”::$DATA绕过,它的作用就是不检查后缀名,例如:“phpinfo.php::$DATA”,Windows会自动去掉末尾的::$DATA变成"phpinfo.php"。使用brup抓包修改文件后缀为::$DATA,且文件内容为<?php phpinfo();?>,点击上传。在这里插入图片描述

  4. 放包之后,推拽点击上传的图片,可能会出现如下403页面在这里插入图片描述

  5. 这时删去url里添加的后缀::$DATA,则跳转到php配置的页面,说明文件上传成功。在这里插入图片描述

  6. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-10-构建文件后缀绕过

  1. 点击查看题目源码,再查看提示,发现可以上传jpg|、png|、gif为后缀的文件。
    在这里插入图片描述
    在这里插入图片描述
  2. 分析代码,先是去除文件名前后的空格,再去除文件名最后所有的.,再通过strrchar函数来寻找.来确认文件名的后缀,但是最后保存文件的时候没有重命名而使用的原始的文件名,导致可以利用1.php. .(点+空格+点)来绕过。因此使用burp抓包来修改文件后缀上传文件。
    在这里插入图片描述
    第一个,获取文件名,第二个删除点,所以第二个点没了,第三个,获取后缀,这时候获取到的是 .php.空格,第四个,转换小写,第五个,去掉::$DATA,第六个,首尾去空格,最后变成 .php.,最后一个点并没有去掉,只不过Windows后缀名最后不让出现点,所以传上去以后Windows默认给你去掉了。

在这里插入图片描述
3. 拖拽点击图片,看到php配置的页面说明上传成功。在这里插入图片描述
4. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-11-双写绕过

方法1

  1. 查看源码,发现后缀为png的文件未被限制在这里插入图片描述
  2. 直接上传一个后缀为png内容为<?php phpinfo();?>的文件,点击上传,推拽点击图片,可以看到php配置页面,说明上传成功。在这里插入图片描述
  3. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

方法2

  1. 查看源码,黑名单过滤,将黑名单里的后缀名替换为空且只替换一次,因此可以用双写绕过
  2. 使用burp抓包修改文件后缀为phpphp在这里插入图片描述
  3. 拖拽点击图片,打开后看到php配置页面,说明文件上传成功。在这里插入图片描述
  4. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

总结

上传图片木马时,使用蚁剑连接时需配合文件包含漏洞中的file协议使用。例如:http://127.0.0.1/upload-labs-master/include.php/?file=./upload/1.jpg


版权声明:本文为m0_55854679原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。