手拿乾坤圈,脚踩缝纫机——文件上传漏洞篇(七)

用户在使用本文信息时,应自行承担风险。本文不对用户因使用本文信息而导致的任何直接或间接损失承担责任。——鲁迅

知识补给库

学习内容:大小写绕过
对于文件后缀来说,大小写并不影响其使用。如:txtTXT等价
对于php文件同样有效,恒等变形:pHpPhP‘、PHp等,均与php等价

代码审计

打开第6节靶场的源代码
在这里插入图片描述

$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
$file_name = trim($_FILES['upload_file']['name']);
$file_name = deldot($file_name);//删除文件名末尾的点
$file_ext = strrchr($file_name, '.');
$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
$file_ext = trim($file_ext); //首尾去空
  • $deny_ext变量是一个黑名单数组,基本过滤了所有的内容
  • 后面5行代码也进行了各类验证

这些代码中没有进行大小写的验证

  • 如第五关中的:$file_ext = strtolower($file_ext); //转换为小写,在本节并没有出现,说明存在大小写漏洞

靶场测试

muma.php改为muma.png,且在BP中打开监听
在这里插入图片描述

在网页中上传muam.png文件
在这里插入图片描述

在数据包中,将muma.png改为muma.Php(只要php不是全部为小写即可)
在这里插入图片描述

回到网页,看到木马文件上传成功,右击获取木马文件的保存位置
在这里插入图片描述

使用蚁剑连接木马文件,进而获取服务器的控制权
在这里插入图片描述

远程登录,获取服务器的操作权限。
在这里插入图片描述

漏洞利用原理

大家可以新建一个文本文件,如:a.TXT(修改文件后缀为大写),当确认以后,你会发现系统自动改为小写,即自动变为a.txt
上传muma.Php后,在if条件判断处.Php不存在于黑名单中,因此被允许上传;当系统保存木马文件时,Php自动变为php
在这里插入图片描述

无情的广告时间

哈哈哈哈,又到了大家喜欢的广告时间了,公众号:编码魔坊,喜欢的话给个关注呗,点击下方小卡片,扫码即可关注,谢谢您的关注!!!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

道人禅(armey)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值