『Upload-labs靶场通关』
Upadload-labs文件上传靶场学习
文件上传
客户端和服务端检测
- 服务端检测包括: 1、后缀检测 2、检测内容
- 后缀检测包括:1、黑名单检测 2、白名单检测
PHP一句话木马:<?php @eval($_POST['key']);?>
ASP一句话木马:<%eval request['key']%>
ASPX一句话木马:<%@ Page Language="Jscript"%><%eval(Request.Item["key"],"unsafe");%>
客户端验证 | 本地JS验证,直接通过brup改包绕过 |
---|---|
白名单 | 定义上传文件的符合格式,例如.jpg .phg .gif 等等,只要不符合以上格式一律不让上传 |
黑名单 | 定义上传文件的不符合格式,例如.php .zip .jsp等等,只要符合以上任意格式一律不让上传 |
第一关(JS本地文件名绕过)
1、首先判断是否为客户端还是服务端检验(可以查看网页源码是否有判断的JS代码)
解题:
- 查看网页源码发现验证为本地JS验证(客户端验证)
- 通过网页JS源码可以看出本地JS只允许上传.jpg | .png | .gif后缀的文件
- 绕过客户端验证,使用brup抓包,更改文件后缀
- 将.jpg后缀改为.php绕过客户端验证,上传成功
第二关(文件类型绕过)
1、首先判断为不是客户端JS验证(因为网页源码没有过滤代码)
2、使用burp改包绕过检测机制
解题:
- 首先将写好的webshell后缀改为图片格式和文件类型
- 然后通过burp抓包上传数据包,然后更改其文件后缀和文件类型
- 绕过成功
第三关(特殊后缀名绕过)
1、使用特殊PHP后缀绕过黑名单检测
例如:php3 | php5 | phphtml格式等
只有后台为apcher
解题:
- 尝试特殊后缀名
- 绕过成功
第四关(.htaccess文件绕过)
1、使用.htaccess文件绕过
<FilesMatch “4.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
第五关()
第六关(大小写绕过)
1、尝试大小写修改后缀名
解题:
- 修改后缀名大小写
- 绕过成功
第七关(后缀空格绕过)
1、尝试后缀加上空格绕过
解题:
-
文件后缀添加空格尝试绕过
-
绕过成功
第八关(后缀加点.绕过)
1、尝试后缀加上点.绕过
解题:
- 文件后缀添加点.尝试绕过
- 绕过成功
第九关(::$DATA绕过)
1、::$DATA绕过机制
解题:
- 文件名后缀加上::$DATA
- 绕过成功
第十关(通过无循环机制绕过)
1、
解题:
- 代码没有遍历循环,组合空格和点绕过检测
- 绕过成功
第十一关()
1、
解题:
第十二关(%00绕过)
1、
解题: