文件上传-导引

1、概述

定义: 文件上传漏洞( Unrestricted File Upload)网站上传功能过滤不严格,导致用户可通过上传文
件对系统造成危害。

上传服务端可解析的脚本文件造成远程代码执行、上传超大文件造成拒绝服务、上传Html文件引发XSS等。

分类: Web通用漏洞

风险等级: 严重/中危

**危害:**上传文件Getshell/上传HTML文件实现XSS攻击、上传超大文件引发拒绝服务等

**常见功能点:**编辑器、头像修改、提交文章等。

漏洞示例:

<html>
<form action="http://127.0.0.1/upload.php"
method="POST" enctype="multipart/form-data">
<input name="a" type="file"></input>
<input name="b" ></input>
<input type="submit"></input>
</form>
</html>
<?php
var_dump($_POST['b']);
var_dump($_FILES);
move_uploaded_file($_FILES["a"]["tmp_name"],"
./upload/" . $_FILES["a"]["name"]);
?>

需要在同目录下创建一个upload文件夹

漏洞利用:

上传一个一句话木马,然后用蚁剑远程连接。

<?php eval($_POST['1'])?>
  • 通过上传GetShell。对于服务器直接支持解析的文件格式,只需要上传该后缀的文件即可。这种
    情况下的漏洞也被称作任意文件上传。
  • 通过上传实现XSS攻击。上传HTML文件时,在其中插入XSS代码实现XSS攻击。
  • 通过上传实现服务器拒绝服务。上传超大文件,或当服务器自动执行解压操作时,上传畸形的压
    缩包文件实现拒绝服务。

文件上传+环境解析 = WebShell
文件上传+任意路径控制 = 文件覆盖(WebShell)
文件上传 - 环境解析 - 路径控制 = XSS
文件上传-环境解析+无大小限制=拒绝服务

2、学习内容

**目的:**上传Webshell到网站服务器,获得shell权限。

后门代码需要用特定格式后缀解析,否则无法执行(解析漏洞除外)

  • 检测方式:前端(JS)、后端
  • 检测内容:文件头、完整性、二次渲染等
  • 检测后缀:黑名单、白名单、MIME检测等
  • 绕过技巧:多后缀解析、截断、中间件特性、条件竞争等

MIME:文件类型(Content-Type)

3、分类 && 思路

  • 代码端(网站自己写的)

    常规上传抓包测试

  • 中间件

    根据中间件版本先找对应历史漏洞,后续测试配置不当漏洞

    配置不当测试方法:?????待补充

  • 编辑器

    根据编辑器名称、版本找历史漏洞

4、靶场 / 练习

  • ctfshow(或其他ctf平台)
  • uplab
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值