文件上传学习笔记

文件上传

文件上传漏洞是在web渗透中非常关键的一点,通常在类似于头像上传,附件上传等功能点处存在上传验证方式不严谨的安全缺陷

文件上传流程:
一个文件以HTTP协议进行上传,以POST将请求发送至web服务器,web服务器收到请求并同意后,用户与web服务器建立连接,并传输数据

00截断

(1)0x00截断
0x00是十六进制表示法,即为0,部分函数处理时,会将该字符看作结束符
0x00应用在文件名绕过:当系统(以二进制或十六进制读取文件)对文件名进行读取时,读取到0x00就会结束读取。
(2)%00截断
url发送到服务器后被服务器解码,解码成了0x00,%00被服务器解码为0x00发挥了截断作用。

upload-labs

pass-1

:尝试上传一个php文件,得到下图提示信息
在这里插入图片描述
:看提示的信息,我们可以用禁用JavaScript的方法
:在火狐浏览器里,访问about:config,将true改成false
在这里插入图片描述:再次上传php文件,显示上传成功

pass-2

:上传一个包含一句话木马的php文件,显示文件类型不正确
在这里插入图片描述

:查看源码,看到是对mime类型进行判断,采用抓包修改对应的类型名字,绕过上传
在这里插入图片描述
:如图对content-type进行修改,修改为可上传的类型
在这里插入图片描述
:如图成功上传
在这里插入图片描述

pass-3

:还是上传一个php文件,返回以下信息
在这里插入图片描述
:查看源码,发现是黑名单
在这里插入图片描述
:分析源码,限制了大小写等,发现可以通过.php3来绕过,但是出于一种莫名的原因用php3的后缀没有办法查看内容例如phpinfo();就无法查看
在这里插入图片描述

pass-4

:上传php文件,没有明显的提示,查看源码
在这里插入图片描述
:分析源码,.php5 .phtml等方法都不适用了

不太会,网上说可以用上传**.htaccess**来解决
文件内容如下:
SetHandler application/x-httpd-php
作用就是让所有文件都被当成php文件来解析

:那就先上传一个.htaccess文件,然后上传一个内容为一句话木马的图片文件
在这里插入图片描述

pass-5

:查看源码,与上一关不同,这一关禁用了.htaccess

pass-11

:上传一个php文件得到如图信息
在这里插入图片描述
:查看源码,get方式传参并且$img_path使用的是上传的文件名后缀,直接进行拼接,采用修改save_path的方式利用%00截断
在这里插入图片描述
:如图所示成功上传
在这里插入图片描述

pass-12

:查看源码,发现和上一题类似,区别在于POST和GET传参方式,那么%00的截断方法不能用了
在这里插入图片描述
:依然是抓包,如图所示在文件后缀后面加上一个空格
在这里插入图片描述
:将此处的20改为00,即是将空格改成了十六进制的0,达到截断的目的
在这里插入图片描述
:如图成功上传
在这里插入图片描述

pass-19

:与前几关都不同的是,这里给了一个保存名称的设定
在这里插入图片描述
:查看源码,发现img_path连接的是以POST方式传参的$file_name,那我们可以对save_name进行修改和截断,达到上传绕过的目的
在这里插入图片描述
:如图修改,并添加空格,以方便后面的截断
在这里插入图片描述
:同样将20修改为00
在这里插入图片描述
:如图成功上传
在这里插入图片描述
:如图成功通过菜刀连接webshell
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值