渗透测试-文件上传漏洞

声明:文中出现的ip为练习靶场,本文仅供学习,旨在学习web安全,不允许任何侵权行为

  1. WebShell与WebShell管理工具
  2. 文件上传漏洞概述
  3. 文件上传漏洞绕过
  4. 文件上传漏洞防御

一、WebShell与WebShell管理工具

什么是WebShell

webshell,简称网页后门,简单的来说它是运行在web应用之上的远程控制程序
webshell其实就是一张网页,由php、jsp、asp、asp.net等这类web应用程序语言开发,但webshell并不具备常见网页的功能,例如登录、注册、信息展示功能,一般会具备文件管理、端口扫描、提权、获取系统信息等功能。拥有较完整功能的webshell,我们一般称为大马。功能简易的webshell称为小马。除此之外还存在一句话木马、菜刀马、脱裤马等等的名词,是对于webshell功能或者特性的简称。

webshell之php一句话木马
<?php @eval($_POST[x]); ?>
  1. 获取POST请求参数中x的值,例如POST请求中传递x=phpinfo(); 那么 $_POST[x] 就等同于 phpinfo();
  2. @是错误控制运算符,当将 @ 放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
  3. eval() 将字符串当做PHP代码去执行。例如eval(‘phpinfo();’) 其中 phpinfo(); 会被当做PHP代码去执行。

我们通过该webshell,传递任意PHP代码,让其去执行,从而达到任意代码执行

webshell管理工具

中国蚁剑 是一款开源的跨平台网站管理工具,也是一款webshell管理工具,它主要面向与合法授权的渗透测试安全人员以及进行常规操作的网站管理员。中国蚁剑的核心代码模板均改自于伟大的中国菜刀

二、文件上传漏洞概述

什么是文件上传漏洞

文件上传漏洞是指文件上传功能没有对上传的文件做合理严谨的过滤,导致用户可以利用此功能,上传能被服务端解析执行的文件,并通过此文件获得执行服务端命令的能力

三、文件上传漏洞绕过

1. 前端js限制绕过

(1)开启插件noscript
(2)改webshell文件后缀名上传,利用burpsuite抓包改回文件后缀名

2. 服务端MIME 类型验证绕过

利用burpsuite抓包,将报文中的Content-Type改成允许的类型

  • Content-Type: image/gif
  • Content-Type: image/jpg
  • Content-Type: image/png

在这里插入图片描述
在这里插入图片描述

3. 服务器文件内容验证-文件头

图片格式往往不是根据文件后缀名去做判断的。文件头是文件开头的一段二进制,不同的图片类型,文件头是不同的。文件头又称文件幻数。
常见文件幻数:

  • JPG:FF D8 FF E0 00 10 4A 46 49 46
  • GIF :47 49 46 38 39 61 (GIF89a)
  • PNG:89 50 4E 47

(1)第一种方法:文件前缀加GIF89a
上传一张将后缀名为png改成gif出现如下结果
在这里插入图片描述
这说明服务端对文件内容文件头进行了检测
在这里插入图片描述
(2)第二种方法:找一个gif图片,在最后把木马加上
在这里插入图片描述
访问上传成功之后的文件名
在这里插入图片描述
使用 antSword 连接
在这里插入图片描述

4. 服务端文件扩展名验证-黑名单绕过

后缀名大小写绕过服务端没有将后缀名转换为统一格式进行对比,导致可以上传后缀为pHp的文件,又因为windows操作系统大小写不敏感,所以 .pHp 扔回被当成PHP文件解析。

重写绕过:服务端将黑名单的后缀名替换为空,但仅进行一次。上传.phphpp后缀,替换php一次为空,则后缀为.php。

特殊可解析后缀绕过黑名单规则不严谨,在某些待定环境中某些特殊后缀名仍会被当做PHP文件解析。php|php2|php3|php4|php5|php6|php7|pht|phtm|phtml基于debian和ubuntu的apt-get安装apache,默认对于文件解析如下。在这里插入图片描述

.htaccess 绕过

在 apache里,这个文件作为一个配置文件,可以用来控制所在目录的访问权限以及解析设置。即是,可以通过设置可以将该目录下的所有文件作为php文件来解析

.htaccess可以写入apache配置信息,改变当前目录以及子目录的Apache配置信息。

配置上允许.htaccess生效

  • Apache开启rewrite模块
  • Apache配置文件为AllowOverride All(默认为None)

< FilesMatch ''sec.jpg" >
SetHandler application/x-httpd-php
< /FilesMatch >
sec.jpg 即可以php脚本解析

5. 利用windows特性

在这里插入图片描述

在这里插入图片描述
warning :未经授权,不得转载
声明:本文旨在为学习网络信息安全的同学提供指引帮助,维护网络空间的安全
有问题的小伙伴请在下方留言,喜欢就点个赞吧;关注我,带你一起写bug
知乎:叄贰壹
简书:带只拖鞋去流浪

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值