文件上传:从概念到实践的全方位解析

在现代互联网的web应用程序中,上传文件是一种常见的功能,因为它有助于提高业务效率,比如社交网站中,允许用户上传图片、视频、头像和许多其他类型的文件。然而向用户提供的功能越多,web应用受到攻击的风险就越大,如果web应用存在文件上传漏洞,那么恶意用户就可以利用文件上传漏洞将可执行脚本程序上传到服务器中,获取网站的权限,或者进一步危害服务器。

上传文件时,如果服务器代码未对客户端上传的文件进行严格的验证和过滤,就容易造成可以上传任意文件的情况,包括上传脚本文件(aspaspxphpjsp等格式的文件)

非法用户可以利用上传的恶意脚本文件控制整个网站,甚至控制服务器。这个恶意的脚本文件,又称之为webshell,也可将webshell脚本称为一种网页后门,webshell脚本具有强大的功能,比如查看服务器目录,服务器中的文件,执行系统命令等。

文件上传漏洞原理和代码分析主要借助upload-labs进行讲解

我们在这里可以看到这个地方限制了后缀。

查看源码

分析页面

记住一句话: 前端校验,等于没有校验。
这个时候我们只需要将这个 onsubmit 事件删除就可以了。
再次提交即可。
需要注意的是,有些浏览器,直接像上面那样修改之后还是会有校验的作用,怎么办呢?
可以利用burp抓响应包,然后修改响应包。
再次提交即可拿到 shell
黑名单-.htaccess-Pass-04
应该是后端做了校验。
直接看源码:
也是一个典型的黑名单机制,那么就要找黑名单里面不存在的来进行绕过。
这里我们想到了 .htaccess 文件。
.htaccess 文件是 Apache 服务器中的一个配置文件,用于实现:网页 301 重定向、自定义 404 错误页面、
改变文件扩展名、允许 / 阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
.htaccess 可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩
展名、封禁特定 IP 地址的用户、只允许特定 IP 地址的用户、禁止目录列表,以及使用其他文件作为 index
文件等一些功能。
准备一个 .htaccess 文件 ,内容为:
AddType application/x-httpd-php .png
或者
<FilesMatch " 文件名 " >
SetHandler application/x-httpd-php
</FilesMatch>
将这个文件上传:
接下来随意写个一句话木马,然后将后缀修改为 .png ,上传即可。
这个地方还是得需要 apache 打开重写规则才可以。
大小写:
直接上传PHP文件
后端肯定做了校验,和上一关的提示有点像,查看源码:
仔细看红框内没有对大小写进行限制
所以进行大小写绕过。
结合黑名单:
这里创建一个 shell.Php 进行上传。
成功拿到 shell
  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值