
upload-labs
upload-labs
FLy_鹏程万里
国内网络安全研究员,专注于Web渗透、移动安全、代码审计、应急响应、内网渗透、区块链安全、云安全等研究方向,擅长渗透测试、红蓝对抗、内网渗透、云安全、区块链安全。
展开
-
【upload-labs】————1、环境搭建
前言 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 环境要求 环境介绍 整个靶机环境包括以下漏洞类型: 如何判断上传漏洞类型? 环境搭建 为了适应于环境的需要,首先需要下载phpstudy中有5.2.17版本的php的环境,这里...原创 2019-08-14 15:31:35 · 2332 阅读 · 0 评论 -
【upload-labs】————13、Pass-12
闯关界面 前端检查还是后端检测判断: 查看源码: 采用白名单检查,而且这里的保存路径直接拼接可以使用%00截断来绕过: 浏览器中访问~ ...原创 2019-08-15 20:43:49 · 347 阅读 · 0 评论 -
【upload-labs】————14、Pass-13
闯关界面 前端检测还是后端检测判断 查看源代码: 从代码层面来看应该是检测的文件的幻数,那么我们在文件内容的开头增加幻数就OK: 该文件的利用还需要结合“文件包含”来利用~ ...原创 2019-08-15 20:55:06 · 769 阅读 · 0 评论 -
【upload-labs】————15、Pass-14
闯关界面: 判断是前端检测还收后端检测 查看源代码: 依旧采用刚才的方式利用即可: 成功上传:原创 2019-08-15 21:02:26 · 609 阅读 · 0 评论 -
【upload-labs】————16、Pass-15
闯关页面 查看源代码: 这里用到php_exif模块来判断文件类型,还是直接就可以利用图片马就可进行绕过: 首先制作木马文件: 之后上传该文件 ...原创 2019-08-15 21:28:05 · 579 阅读 · 0 评论 -
【upload-labs】————17、Pass-16
查看源代码 $is_upload = false; $msg = null; if (isset($_POST['submit'])){ // 获得上传文件的基本信息,文件名,类型,大小,临时文件路径 $filename = $_FILES['upload_file']['name']; $filetype = $_FILES['upload_file']['typ...原创 2019-08-15 21:50:32 · 455 阅读 · 0 评论 -
【upload-labs】————18、Pass-17
查看源代码: 竞争条件:这里先将文件上传到服务器,然后通过rename修改名称,再通过unlink删除文件,因此可以通过条件竞争的方式在unlink之前,访问webshell。 首先在burp中不断发送上传webshell的数据包 之后不断在浏览器中刷新,刷新,在刷新。。。。。,你会看到下面的结果: ...原创 2019-08-15 22:12:35 · 778 阅读 · 1 评论 -
【upload-labs】————19、Pass-18
查看源代码: //index.php $is_upload = false; $msg = null; if (isset($_POST['submit'])) { require_once("./myupload.php"); $imgFileName =time(); $u = new MyUpload($_FILES['upload_file']['name'...原创 2019-08-15 22:25:35 · 728 阅读 · 0 评论 -
【upload-labs】————20、Pass-19
查看源代码: 本关考察CVE-2015-2348 move_uploaded_file() 00截断,上传webshell,同时自定义保存名称,直接保存为php是不行的 %00截断 浏览器中访问: ...原创 2019-08-15 22:32:52 · 393 阅读 · 0 评论 -
【upload-labs】————12、Pass-11
闯关界面 前后端检测判断 查看源代码: 这里采用了白名单判断,但是$img_path直接拼接,所以可以先上传一个符合白名单检测的jpg文件,之后再burpsuite中使用%00截断保存路径即可: 截断保存路径: 浏览器中访问~ ...原创 2019-08-15 20:31:26 · 438 阅读 · 0 评论 -
【upload-labs】————11、Pass-10
闯关界面 前后端检测判断 查看源代码 黑名单检测方式,同时去除了文件名前后的空格、同时将文件中命中出现的黑名单用空格来替换,故这里可以通过双写来绕过: 双写后缀名: 浏览器中访问该文件: ...原创 2019-08-15 17:12:41 · 317 阅读 · 0 评论 -
【upload-labs】————2、Pass-01
Pass-01 闯关界面: 此处提供文件上传功能,首先我们来判断一下此处对于上传的文件的检查是“前端检查”还是“后端检查”,判断方法为上传一个非图片格式的php木马文件,同时使用burpsuite拦截数据包,看结果的显示是否通过burpsuite代理发送到服务器,如果没有通过burpsuite则说明是前端的js校验,如果需要经过burpsuite之后再回想结果,则说明是服务器端校验: ...原创 2019-08-14 16:08:10 · 526 阅读 · 0 评论 -
【upload-labs】————4、Pass-03
Pass-03闯关界面 首先判断是前端检测还是服务器端检测,安装套路上传一个shell.php文件,同时使用burpsuite代理,看是否通过burpsuite代理,以及最后返回的提示信息: 经过burpsuite————后端检测 返回的检测信息: 从上面简易的测试,我们可以了解到本关属于服务器端检测,而且采用了黑名单的检测方法,那么我们只需要将上传的文件名改为不在黑名单且能够...原创 2019-08-15 14:49:18 · 550 阅读 · 0 评论 -
【upload-labs】————5、Pass-04
闯关界面 首先上传一个shell.php文件看看对于上传文件的检测是前端检测还是后端检测: 之后我们来查看一下源代码: 从上面可以看到基本上过滤了所有的常见的后缀名,而且先全部进行小写转换,对文件后缀名进行拆分,之后来进行检测,看起来好像没有戏了,那么这种情况下怎么办呢?不妨试试.htaccess攻击看看: 首先我们上传一个.htaccess文件,文件内容如下: ...原创 2019-08-15 15:24:23 · 455 阅读 · 0 评论 -
【upload-labs】————6、Pass-05
闯关页面 首先判断是前端检测还是后端检测: 确定为后端检查 之后查看一下源代码: 可以从上面看到,这里和之前不同的地方就是增加的.htaccess后缀文件的检测,但是这里却少理一个大小写检测,所以我们可以通大小写来绕过检测: 之后再浏览器中访问看看: 很多人可能会想,你这里演示的都是上传一个php文件,之后输出phpinfo()就完了,真实环境中能否真的ge...原创 2019-08-15 15:37:20 · 355 阅读 · 0 评论 -
【upload-labs】————7、Pass-06
闯关界面 判断是前端检测还是后端检测: 之后查看源代码: 所有的文件后缀、大小写处理后过滤,但是对于后缀名却没有进行去除空格处理,这里可以通过在后缀名中加入空格绕过: 添加空格: 浏览器中访问: ...原创 2019-08-15 15:55:11 · 392 阅读 · 0 评论 -
【upload-labs】————8、Pass-07
闯关界面 前后端检测判断 查看源代码 文件后缀大小写、去除::$DATA、关键词过滤,在这里可以发现所有的都考虑到了,但是却没有考虑后缀为.的情况,在windows中PHP会自动去除后缀名中最后的“.”,我们可以通过这种方式来绕过: 加“.”来绕过: ...原创 2019-08-15 16:04:56 · 528 阅读 · 0 评论 -
【upload-labs】————9、Pass-08
闯关界面 前端检查还是后端检测判断: 查看源代码: 黑名单检测、先转小写后匹配、去除文件后缀名中的空格、点,但是缺少考虑了一个::$DATA,利用windows特性,我们可在后缀名中加” ::$DATA”绕过: 之后再浏览器中访问: ...原创 2019-08-15 16:11:45 · 494 阅读 · 0 评论 -
【upload-labs】————10、Pass-09
闯关界面 前端检测还是后端检测判断 查看源代码: 这里采用黑名单过滤,第15行和之前不太一样,路径拼接的是处理后的文件名,于是构造info.php. . (点+空格+点),经过处理后,文件名变成info.php.,即可绕过: 浏览器中访问: ...原创 2019-08-15 16:39:35 · 404 阅读 · 0 评论 -
【upload-labs】————21、Pass-20
查看源代码: 这里检查了文件的MIME、文件后缀名,但是file这里可以%00截断: 之后需使用文件包含来进行操作~原创 2019-08-15 22:45:56 · 1056 阅读 · 0 评论