文件上传之upload-labs

文件上传之upload-labs

本文为在学习文件上传后所整理的笔记 。
upload-labs项目地址:https://github.com/c0ny1/upload-labs

@pass-01 前端js验证
在这里插入图片描述 方法1:将文件后缀改为白名单中的后缀然后利用bp抓包修改为php

方法2:f12查看源代码选择其中和上传文件有关的代码复制到本地生成html格式点击进行上传。要注意生成本地html时需要加上发送地址
在这里插入图片描述
即action=‘http://192.168.43.232/upload-labs-master/Pass-01/index.php’
在这里插入图片描述
所以最终生成的代码为:

<form enctype="multipart/form-data" method="post" action='http://192.168.43.232/upload-labs-master/Pass-01/index.php' onsubmit="return checkFile()">
<p>请选择要上传的图片:</p>
<p>
<input class="input_file" type="file" name="upload_file">
<input class="button" type="submit" name="submit" value="上传">
</p>
</form>

​ 接着双击上传一句话木马即可

但是很尴尬的是用蚁剑连接时竟然显示失败,百度了很久才发现
在这里插入图片描述原来是编码问题。。。。关于这个知识点后续会深入研究

@pass-02 MIME验证

mime-type介绍

上传一句话抓包分析:
在这里插入图片描述

将content-type内容改为image/jpeg即可成功绕过,蚁剑连接成功

@pass-03 php3,phtml等后缀考察

***若使用phpstudy搭建环境,则前提是配置文件httpd.conf中允许将php3,php4,phtml默认为php文件
在这里插入图片描述
将一句话木马php后缀改为.phtml等即可

@pass-04 .htaccess 考察

htaccess是apache服务器中的分布式配置文件,可以覆盖apache的配置

例如:将apache中将.png文件当作php文件解析方法:

​ 在cmd中输入copy con .htaccess回车后输入AddType application/x-httpd-php .png

​ 按下ctrl+z即可结束编辑,创建.htaccess文件成功 。在第四关中先上传写好的.htaccess文件,再上传一句话木马将后缀改为.png即可。蚁剑正常连接

@pass-06 大小写转换

在这里插入图片描述
查看源代码发现并没有限制大小写验证,所以将后缀php改为Php即可

@pass-07 变异解析

在这里插入图片描述
分析源代码看见并没有限制首位去空,则在php后面加上空格即可上传成功

pass-08 变异解析

查看提示:本pass禁止上传所有可以解析的后缀!

查看源码:在这里插入图片描述可以看到没有对文件最后的点进行过滤,则在上传时抓包在.php末尾加上一个点即可成功绕过。

@pass-09 ::$DATA

上传一句话时直接抓包在文件名最后加上::$DATA 即可,蚁剑连接成功。

@pass-10

分析源代码:
在这里插入图片描述
分析知道过滤基本完整,但是却出现了一个问题,每种过滤只有一次,没有采用递归的方法过滤,所以我们可以使用点空格点的形式绕过

strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。

即上传时抓包将文件名改为“1.php. .”,即可绕过

@pass-11

在这里插入图片描述

trim() 函数移除字符串两侧的空白字符或其他预定义字符

str_ireplace 函数将文件名中出现上述黑名单中的后缀替换为空,所以便可以采用双写绕过的方法,改后缀为phphpp。蚁剑可成功连接

@pass-12

环境条件:php版本小于5.3.4,php的magic_quotes_gpc为OFF状态
00截断原理:在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束

在这里插入图片描述
首先把php.php的后缀改为jpg等白名单中的格式,这样才能上传,接着可以看到最上方为上传地址,如果在upload/后面加上1.php%00则不会生成新的文件名,上传路径在upload/1.php处便被截断。

@passs-13 00截断

同样是00截断,只不过这次从get请求变成了post请求
在这里插入图片描述

同12关一样,在路径upload处做修改,但是post不会像get对%00进行自动解码,所以需要在bp的2进制文件中进行修改。
在这里插入图片描述
在这里插入图片描述将25换成00即可上传成功

@passs-14 图片马解析

制作图片马方法 :copy a.jpg /b +1.php /a 123.jpg
上传123.jpg后输入http://192.168.73.146/upload-labs-master/include.php?file=upload/9720210327150133.jpg查看图片马是否正常,如要利用,需要结合文件包含漏洞

@pass-15

和14关方法完全一样

@pass-16

也是利用图片马,只不过判断图片的函数变了

@passs-17

对图片进行二次渲染,方法类似,具体可以参考这篇文章https://xz.aliyun.com/t/2657#toc-13

未完待续
如有错误,请多指出。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值