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

文章目录

  • Pass-01-js检查
  • Pass-02-MIME验证(content-type验证)
  • Pass-03-黑名单绕过
  • Pass-04-htaccess绕过
  • Pass-05-.user.ini绕过
  • Pss-06-大小写绕过
  • Pass-07-空格绕过
  • Pass-08-点绕过
  • Pass-09-::$DATA绕过
  • Pass-10-构建文件后缀绕过
  • Pass-11-双写绕过
    • 方法1
    • 方法2
  • 总结

Pass-01-js检查

  1. 查看题目源码,发现三种后缀的文件可以上传。upload-labs通关攻略教程【1-11关】(持续更新中)_第1张图片
  2. 上传一个后缀为.jpg的文件,文件内容为一句话木马使用burp抓包并修改文件后缀为php,即可上传成功
  3. 上传成功使用一句话木马连接即可。
  4. 或者直接修改源码删去JS检查的代码,即可将php木马文件直接上传。

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

  1. 查看题目源码upload-labs通关攻略教程【1-11关】(持续更新中)_第2张图片
  2. 查看题目提示为MIME验证,分析源码,可以通过burp抓包修改数据包的第二个content-type,并查看响应。upload-labs通关攻略教程【1-11关】(持续更新中)_第3张图片

upload-labs通关攻略教程【1-11关】(持续更新中)_第4张图片
3. 拖拽点击上传成功的图片木马,看到php配置页面即可说明上传成功。upload-labs通关攻略教程【1-11关】(持续更新中)_第5张图片
4. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-03-黑名单绕过

  1. 查看题目源码upload-labs通关攻略教程【1-11关】(持续更新中)_第6张图片用黑名单不允许上传.asp,.aspx,.php,.jsp后缀的文件

  2. 尝试直接上传一个文件后缀为jpg的一句话木马文件,拖拽点击图片,发现提示错误显示。upload-labs通关攻略教程【1-11关】(持续更新中)_第7张图片

  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(记得去掉“#”)upload-labs通关攻略教程【1-11关】(持续更新中)_第8张图片

  4. 上传文件后缀为php3的内容为的文件,出现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绕过。upload-labs通关攻略教程【1-11关】(持续更新中)_第9张图片
  2. 在该目录..\PhpStudy2018\PHPTutorial\Apache\conf下httpd.conf文件中mod_rewrite模块开启,配置文件中LoadMoudle rewrite_module module modules/mod_rewrite.so AllowOverride All

upload-labs通关攻略教程【1-11关】(持续更新中)_第10张图片
通过命令行修改文件名,将1.htaccess修改为.htaccess

ren 1.htaccess .htaccess
  1. 先上传一个后缀为htaccess的文件,其中文件内容为SetHandler application/x-httpd-php,意思是把所有文件都解析为php文件来执行。上传时使用burp抓包修改文件名只有后缀。upload-labs通关攻略教程【1-11关】(持续更新中)_第11张图片
  2. 再次上传一个png的内容为文件,上传成功后拖拽点击图片,看到php配置页面即可说明上传成功,不必修改文件后缀为phpupload-labs通关攻略教程【1-11关】(持续更新中)_第12张图片
    upload-labs通关攻略教程【1-11关】(持续更新中)_第13张图片
  3. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-05-.user.ini绕过

  1. 查看题目源码,与第四关基本相同,但相比第四关,这关过滤了htaccess,还可以利用ini配置文件 upload-labs通关攻略教程【1-11关】(持续更新中)_第14张图片
  2. 先上传一个以auto_propend_file=1.gif为内容的.user.ini文件【用户自定义的配置文件】。.user.ini文件里的意思是:所有的php文件都自动包含1.gif文件,.user.ini相当于一个用户自定义的php.ini。然后再上传一个内容为一句话木马的命名为1.gif的文件。upload-labs通关攻略教程【1-11关】(持续更新中)_第15张图片
  3. 复制图片地址,利用蚁剑连接一句话木马,url地址为图片地址,但需要把图片文件名改为readme.php,密码为一句话木马的密码,即可连接成功。upload-labs通关攻略教程【1-11关】(持续更新中)_第16张图片

Pss-06-大小写绕过

  1. 查看源码,相比上一关,.ini也被禁用,但是转换为小写的一行源码被删掉,因此可以考虑大小写绕过的方法
    upload-labs通关攻略教程【1-11关】(持续更新中)_第17张图片
  2. 查看提示,一部分大小写被禁用upload-labs通关攻略教程【1-11关】(持续更新中)_第18张图片
  3. 上传一个1.PHP的内容为的文件,上传成功后拖拽点击图片,看到php配置的页面,说明文件上传成功。
    upload-labs通关攻略教程【1-11关】(持续更新中)_第19张图片
  4. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-07-空格绕过

  1. 相比上一关的源码,转换为小写源码的未被删去,而是删去了首位去空的源码。upload-labs通关攻略教程【1-11关】(持续更新中)_第20张图片
  2. 上传一个1. php的内容为内容为的文件,上传后拖拽点击图片,出现php配置页面即可说明上传成功。upload-labs通关攻略教程【1-11关】(持续更新中)_第21张图片
    upload-labs通关攻略教程【1-11关】(持续更新中)_第22张图片
  3. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-08-点绕过

  1. 查看源码,发现前几关所有的绕过方式都被禁用,但没有对后缀名末尾的点进行处理。因此可以考虑使用windows特性,自动去掉后缀名中最后的点,且源码中相比上一关缺少了删除文件名末尾的点。upload-labs通关攻略教程【1-11关】(持续更新中)_第23张图片2. 使用burp抓包修改文件后缀为php.,上传一个后缀为php.的内容为文件,上传后拖拽点击图片,发现php配置页面,即可说明上传成功。upload-labs通关攻略教程【1-11关】(持续更新中)_第24张图片

Pass-09-::$DATA绕过

  1. 查看源码,与上一关相比,同样所有可以解析的后缀都被过滤,但缺少了过滤后缀名::$DATA的源码。upload-labs通关攻略教程【1-11关】(持续更新中)_第25张图片

  2. 常用1.txt:a.txt来隐藏a.txt文件,除非使用dir/r才可以找到。
    upload-labs通关攻略教程【1-11关】(持续更新中)_第26张图片
    upload-labs通关攻略教程【1-11关】(持续更新中)_第27张图片

  3. php+windows的情况下:如果文件名+::$DATA会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名。利用windows特性,可在后缀名中加”::$DATA绕过,它的作用就是不检查后缀名,例如:“phpinfo.php::$DATA”,Windows会自动去掉末尾的::$DATA变成"phpinfo.php"。使用brup抓包修改文件后缀为::$DATA,且文件内容为,点击上传。upload-labs通关攻略教程【1-11关】(持续更新中)_第28张图片

  4. 放包之后,推拽点击上传的图片,可能会出现如下403页面upload-labs通关攻略教程【1-11关】(持续更新中)_第29张图片

  5. 这时删去url里添加的后缀::$DATA,则跳转到php配置的页面,说明文件上传成功。upload-labs通关攻略教程【1-11关】(持续更新中)_第30张图片

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

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

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

upload-labs通关攻略教程【1-11关】(持续更新中)_第34张图片
3. 拖拽点击图片,看到php配置的页面说明上传成功。upload-labs通关攻略教程【1-11关】(持续更新中)_第35张图片
4. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

Pass-11-双写绕过

方法1

  1. 查看源码,发现后缀为png的文件未被限制upload-labs通关攻略教程【1-11关】(持续更新中)_第36张图片
  2. 直接上传一个后缀为png内容为的文件,点击上传,推拽点击图片,可以看到php配置页面,说明上传成功。upload-labs通关攻略教程【1-11关】(持续更新中)_第37张图片
  3. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

方法2

  1. 查看源码,黑名单过滤,将黑名单里的后缀名替换为空且只替换一次,因此可以用双写绕过
  2. 使用burp抓包修改文件后缀为phpphpupload-labs通关攻略教程【1-11关】(持续更新中)_第38张图片
  3. 拖拽点击图片,打开后看到php配置页面,说明文件上传成功。upload-labs通关攻略教程【1-11关】(持续更新中)_第39张图片
  4. 使用上述同样方法上传一句话木马,使用蚁剑连接即可。

总结

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

你可能感兴趣的:(upload-labs靶场通关,文件上传,网络安全)