文件上传之靶场upload-labs(11-20)

pass-11

strrpos() 函数查找字符串在另一字符串中最后一次出现的位置,substr() 函数返回字符串的一部分,文件保存的方式是上传路径+随机时间+截取的文件后缀,其中上传路径可控,可以利用这一点
绕过方法:
利用00截断进行绕过,即move_uploaded_file函数的底层实现类似于C语言,遇到0x00会截断
截断条件:
1、php版本小于5.3.4
2、php.ini的magic_quotes_gpc为OFF状态
在这里插入图片描述
访问:
在这里插入图片描述

pass-12

和上一个关一样不过路径上传方式由GET变成POST
绕过方法
00截断 post方式中需要修改成二进制的00而不是直接在请求数据中修改00
在这里插入图片描述
在hex视图中找到+的十六进制2b改为00,然后放行
在这里插入图片描述
访问:
在这里插入图片描述

pass-13

读取上传文件中的两个字节
将读取的内容解包(unpack() 函数从二进制字符串对数据进行解包返回数组一个字节为一个值)
返回解包后的整数值(intval() 函数通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值)
绕过方法:
我们在一句话木马前面加上GIF89A(gif图片特征码)
在这里插入图片描述
上传了马后缀为gif想要利用需要配合另一种漏洞文件包含,靶场专门有一个文件让我们测试文件内容为
在这里插入图片描述

访问:
在这里插入图片描述
在这里插入图片描述
由于只检查前两个字节
方式2:
码前面加上11然后找到对应hex值3131 改为ffd8
在这里插入图片描述
在这里插入图片描述

访问:
在这里插入图片描述
方法三:
使用png的特征吗前两个字节8950
在这里插入图片描述
访问:
在这里插入图片描述

pass-14

利用图片马,将一张正常的图片jpg,和一句话php合成一张新的jpg文件(window下 cmd , copy /b 1.jpg + 1.php 3.jpg)
也可以直接在图片里写入
在这里插入图片描述
访问:
在这里插入图片描述

pass-15

绕过方法

一样使用图片马

pass-16

上传图片马,但是经过二次渲染,马已经消失,通过对比两个图片相同的部分,然后一样的地方写上一句话木马;
在这里插入图片描述
经过比较发现蓝色部分是一样的,在此处写上木马上传成功后比较
在这里插入图片描述
木马并没有消失

pass-17

通过move_uploaded_file保存文件在判断是否后缀是否是图片,如果是则重命名保存,如果不是删除这里存在着一个漏洞,叫条件竞争
当我发送大量的包时,文件就会先进行保存,而判断可能会存在一定的延迟此时上传一个php文件里面代码在创建一个包含一句话的php这样就算把上传的文件删除也会存在一个木马文件
上传一个php文件内容如下

<?PHP fputs(fopen('she.php','w'),'<?php phpinfo() ?>');?>

在这里插入图片描述
上传使用bp抓取然后发送到intruter模块设置如下
在这里插入图片描述
在这里插入图片描述
点击两个位置都可以开始攻击
在这里插入图片描述
攻击的时候在另一浏览器访问

http://127.0.0.1/upload-labs/upload/u.php

它会在删除之前执行代码生成一个she.php的文件
在这里插入图片描述

pass-18

本关对文件后缀名做了白名单判断,然后会 一步一步检查文件大小、文件是否存在等等,将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。可以不断利用burp发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功
解题方法与17题类似

pass-19

文件名可控,
pathinfo() 返回一个关联数组包含有 path 的信息。
包括以下的数组元素:
[dirname]
[basename]
[extension]
在这里插入图片描述
访问:
在这里插入图片描述

pass-20

先检查文件类型,后检查是否上传了文件名没有则为文件的名字,判断是否为数组,若不是则以点分割返回一个数组,取数组最后一位数为后缀,文件保存为reset输出数组第一个数,和最后一位数保存

绕过方法:
php修改后缀jpg上传捉包
文件类型已经为image/jpeg
修改上传路径为一个数组,当获取文件后缀时为jpg,合成文件名为数组第一个,和最后一个,当我们修改jpg为数组的2时,1此时是空的数组一共有三位数,但是实际只有两位,所有获取到的值为空
此时上传后的文件为in.php.
在这里插入图片描述

在这里插入图片描述
访问:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值