01文件上传漏洞(黑名单检测篇)

本篇文章将会从文件上传漏洞的基本概念讲起,然后去了解在文件上传中我们的网站都有哪些检测机制,如何去绕过这些检测机制,最后是如何去修复文件上传漏洞。

参考靶场:upload在github上搜索即可在本地搭建。

一、什么是文件上传?

    大家duck不必把文件上传漏洞看的高深莫测,因为我们经常做一些文件上传的操作,就比如你发一个qq空间,发个朋友圈,在上面上传的图片就属于文件上传,只不过可能没有漏洞罢了。

比如这就是一个上传文件的窗口

二、知道了什么是文件上传,那么文件上传漏洞又是什么?

    上传文件时服务器后端语言没有对上传的文件进行严格的验证和过滤,容易造成上传任意文件的情况,从而使得攻击者绕过上传机制上传恶意代码并执行控制服务器。

恶意代码文件就是php asp aspx jsp等,也被称为webshell。

本篇文章主要以php语言中的一句话木马进行介绍,比如

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

三、可以利用这个文件上传漏洞有哪些前提条件嘞?

  1. 首先这个包含一句话木马的文件可以上传

  2. 上传之后我知道这个文件的位置,也就是他的文件路径

  3. 然后这个文件路径可以正常访问

  4. 最后这个文件可以被解析,就是里面的内容。

四、服务器去检测我们上传的文件有哪些机制?

    网络中的攻防,也要做到知己知彼,只有知道对方有哪些武器,我们才能更好的去应对。

   

为了各位更好的理解层次之间的关系,采用了脑图的呈现方式,主要就是包括客户端检测和服务端检测,在服务端检测中有文件后缀检测(黑名单检测,白名单检测),内容检测,MIME类型检测。下面将会围绕这些检测机制逐步展开讲解。

五、客户端检测是?

    这是最容易绕过的一种检测机制,可能在现实生活中没有公司会用吧。主要来讲就是根本不会上传到服务端,在客户前端就完成了检测。

    想要绕过也很简单,如果你是edge浏览器在设置里面把JavaScript检测关闭就好,在火狐中我是没找到关闭的地方,下了一个插件,也是可以关闭的。关闭之后相当于没有了检测机制,现在就可以上传任意文件了。

六、文件后缀检测是?

    首先我们介绍比较容易绕过的黑名单检测机制。

    黑名单也是比较容易理解,整个的流程用一个真实的例子就可以理解,比如说你和你女朋友分手了,女朋友很伤心,再也不想联系到你,所以她把你的手机号拉黑了,现在你再给你女朋友打电话还能接通吗?想都别想,根本不可能嘛,但是如果你真的渴望女朋友还能再给自己一次机会,你会怎么做?如果你想到了办法,那么恭喜你,你已经掌握了黑名单绕过的基本原理。肯定是去借一个别人的手机号,不管女朋友答不答应,起码手机号是可以接通了对吧。

    基于这种情况,你打给女朋友不接通,别人打过去就可以接通,证明确实存在着黑名单这种情况,在我们网络世界那便是,你上传一个.php后缀的文件人家服务器拒绝你,但是你随便上传一个.lalala,哎,服务器竟然通过了,这就是黑名单检测。

    下面我们要做的就是怎么挽回女朋友了哈哈(开个玩笑, 还是得想办法绕过这个黑名单的控制。

    1.双写绕过

    我上传了testconnect.php文件后在burpsuite中竟然给我把php抹了

    好吧,你也暴露了嘿嘿,这个时候我们改成testconnect.pphphp就可以成功上传了。

2.大小写绕过,仅限Windows

    改成testconnect.Php就OK,因为服务器会把php替换为空,但是Php有个大写嘛,就把他骗了呗,但是解析执行的时候,我们的Windows又不区分大小写,嘿嘿,搞定。

这是替换为空的代码原理,可以参考一下哈。

3.其他可解析绕过

    这个比较容易理解,还是拿女朋友来讲(虽然没有女朋友,现在发现女朋友真的发挥了好大作用hahaha~),现在尽管女朋友把你的手机号拉黑了,但是,万一我有两个手机号嘞,她只拉黑的一个,我的其他的是不是可以打通,正是这种道理我们的php也有挺多别的手机号喔。

4.最后一个方法我们是浅浅打一套组合拳了,图片加配置文件绕过

    绕过思路,先上传一个解析器,再把代上传的一句话木马按照指定的png方式进行上传,但是,我们提前上传的解析器会把这个png的文件解析。

    关于解析器的操作:就是写一个.htaccess文件,女朋友应该不知道还有这种陌生号码吧,如果真知道,那么兄弟还是放弃吧,我黑名单检测绕过只能到这了哈哈。

    在这个.htaccess文件中需要有以下内容

            <FilesMatch "target.png">

            setHandler application/x-httpd-php //自动转化为php文件

            </FilesMatch>

现在把含有一句话木马的文件名,一字不差的改成target.png,上传成功,就可以成功上传webshell啦!

    以上就是黑名单检测我所学的全部内容了,如有不当之处,欢迎大佬师傅们的指正,后续检测机制的介绍敬请期待!

我是哈皮,祝您每天嗨皮,我们下期再会!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件上传中的黑名单过滤是一种常见的安全措施,用于防止恶意文件的上传。然而,黑名单过滤并不是绝对可靠的,存在一些绕过方式。以下是一些可能的绕过方式: 1. 修改文件扩展名:黑名单过滤通常是通过检查文件的扩展名来判断文件类型的。攻击者可以尝试修改文件的扩展名,使其绕过黑名单过滤。例如,将恶意的可执行文件的扩展名修改为图片文件的扩展名。 2. 使用特殊字符:攻击者可以使用特殊字符或编码来混淆文件内容,使其看起来不符合黑名单规则。例如,使用URL编码或Unicode编码来绕过黑名单过滤。 3. 压缩文件:攻击者可以将恶意文件压缩成压缩包,然后上传。由于黑名单过滤通常只检查文件的扩展名,而不会解压缩文件进行检查,因此可以绕过黑名单过滤。 4. 使用其他协议:如果黑名单过滤只针对特定协议(如HTTP)进行检查,攻击者可以尝试使用其他协议来上传文件,如FTP或SFTP。 5. 绕过客户端验证:黑名单过滤通常是在服务器端进行的,但客户端也可能进行一些验证。攻击者可以通过修改客户端代码或使用自定义的上传工具来绕过客户端验证,直接上传恶意文件。 需要注意的是,以上方法仅供了解和学习,不鼓励或支持任何非法活动。为了确保文件上传的安全性,建议采取以下措施: - 使用白名单过滤:与黑名单过滤相反,白名单过滤只允许特定的文件类型上传,其他类型的文件将被拒绝。 - 检查文件内容:除了检查文件扩展名外,还可以对文件内容进行检查,例如通过文件头部信息判断文件类型。 - 设置合适的文件权限:限制上传文件的访问权限,确保只有授权用户可以访问上传的文件。 - 定期更新安全规则:及时更新黑名单或白名单规则,以应对新的安全威胁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值