文件上传知识汇总

前提:无文件解析的安全问题上,格式解析是一对一的(没有解析漏洞,上传的是图片,解析的也是图片;除非有漏洞可以将图片解析城php)

换句话说只有解析错误配置或后缀解析漏洞时才能实现格式差异解析。

原生态:在未知目标源码情况下,只知道有漏洞,然后进行测试(漏洞与源码无关)

检测方向:前端验证、后端验证(前端js、后端php)

通过文件头判断文件后缀,通过文件类型判断文件后缀

拓展类:中间件

直接上传一个.htaccess文件,文件内容如下:

AppType application/x-httpd-php .png

 .htaccess借助这个配置让.png的命名文件当作php的类型执行。

安全架构类:

1.黑名单

没有做递归处理,值过滤了一次,没有多次过滤。

00截断(条件:魔术开关、php版本5.34以下),现在很难遇到

/var/www/html/upload/x.php%00

 逻辑权限--条件竞争(错误:先上传,后判断;正确:先判断,后上传):只需要在删除文件之前访问到这个文件,然后这个文件就会重新创建一个其他文件,我们只需要连接这个新创建的文件。

函数缺陷:如果上传名字攻击者自身可控

shell.php/

 文件上传漏洞目前出现的地方哦都是比较隐秘的网站,如果时代码问题就是逻辑漏洞,与代码无关就是通用漏洞。

中间件:apache、aginx

编辑器:ueditor

由于编辑器漏洞较少,实战碰到机会不大,主要理解漏洞产生的思路

参考:https://cloud.tencent.com/developer/article/2200036

参考:https://blog.csdn.net/qq_45813980/article/details/126866682

cms 

常见的防御措施

解析方案:

1.执行权限

就是类似在目录禁止执行(就算是上传了也没有任何用处,所以上不上都无所谓)

2.解码还原

将上传的文件先把图片进行base64编码,把文件当作字节流进行编码,再把文件进行还原(取出来)
        上传图片->一串base64数据
        显示图片->解码数据还原
        好处就是能够将图片更好的打开。如果上传的是一个后门代码不是图片代码,解析的时候就会解析错误
        只要用到这个技术,不管文件是否上传成功,都没办法进行成功连接后门

存储方案:

1.分站存储

类似站库分离,上传的图片直接放到其他地方去了

2.oss对象

类似开了个网盘,如果打开这个文件,只能提供下载,不提供执行

只有目录权限可以绕过,其他都是无解。目录权限绕过只有换个目录上传试试,其余直接跑路
上传之后需要可以代码执行,如果不能执行就等于没用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CKEditor 4 是一个非常流行的富文本编辑器,它允许用户在网页上进行文本编辑,并支持上文件。 要在 CKEditor 4 中实现文件功能,需要通过相关的插件来实现。以下是一个基本的步骤指南: 1. 首先,确保你正确地将 CKEditor 4 集成到你的网页中,详细的集成方法可以在官方文档中找到。 2. 为了实现文件功能,你需要一个文件插件。常用的插件有 "Upload Image" 和 "Upload File"。你可以在 CKEditor 官方网站的插件页面上找到这些插件,并按照指南进行下载和安装。 3. 安装完成后,需要在 CKEditor 的配置中启用相应的插件。可以通过配置文件或者 JavaScript 代码来进行配置。具体的配置方法可以在插件的文档中找到。 4. 配置插件后,你需要配置文件的目标路径。通常,服务器端会有一个接口来接收上文件并保存它们。在插件的配置中,你可以指定接口的 URL,并设置其他相关的配置参数,如文件类型限制、最大文件大小等。 5. 最后,通过设置 CKEditor 的 toolbar,将文件按钮添加到编辑器的工具栏中,以便用户能够使用该功能。 总结一下,要在 CKEditor 4 中实现文件功能,首先需要安装相应的文件插件,然后配置插件和服务器接口,并将上按钮添加到编辑器的工具栏中。这样,用户就可以通过点击上按钮,选择并上文件到指定的服务器路径上了。 ### 回答2: CKEditor 4 是一种常用的富文本编辑器,用于在网页中编辑和排版文本。要实现在 CKEditor 4 中上文件,可按照以下步骤进行操作: 1. 配置服务器端的文件功能:首先,需要在服务器上设置一个用于接收和处理文件的脚本。该脚本必须具备处理文件的功能,并将文件保存到服务器指定的目录中。 2. 配置前端页面中的上按钮:在 CKEditor 4 的工具栏中,可以添加一个自定义的按钮,作为文件的入口。可以使用 CKEditor 提供的工具栏配置选项,选择合适的图标和按钮样式。 3. 编写 JavaScript 代码:在页面加载 CKEditor 4 时,需要编写一些 JavaScript 代码来处理上按钮的点击事件。可以使用 CKEditor 提供的 API 方法来调用文件脚本,并指定文件后的回调函数。 4. 文件:当用户点击上按钮时,会触发 JavaScript 代码中的上事件。该事件会将用户选择的文件发送到服务器端的上脚本进行处理。上脚本会将文件保存到指定的目录,并返回一个文件的存储路径或唯一的文件标识符。 5. 在编辑器中插入文件链接:当上脚本处理完文件后,可以通过 JavaScript 将文件的链接插入到 CKEditor 4 的编辑区域。可以使用 CKEditor 提供的 API 方法来实现这一功能。 需要注意的是,文件涉及到服务器端和客户端的交互,故需要一定的后端开发经验和前端技术知识。同时,还需要对文件的上与安全性有一定的了解,以确保上操作的安全和有效性。 ### 回答3: CKEditor是一个流行的富文本编辑器,可以用来方便地上和编辑文本内容。要在CKEditor中实现文件功能,我们可以按照以下步骤进行操作。 首先,我们需要在HTML页面中引入CKEditor的相关文件,包括主要的编辑器代码、上插件和相应的样式表。 其次,我们需要在页面中定义一个用于展示CKEditor的textarea元素,并为其指定一个id,以便之后的操作。 接下来,我们可以通过JavaScript代码来初始化CKEditor编辑器。通过CKEDITOR.replace()方法,我们可以将之前定义的textarea元素与CKEditor绑定起来,并指定一些编辑器的配置选项。 当CKEditor初始化完成后,我们可以在代码中添加一个上文件的按钮,通过JavaScript代码为其添加点击事件处理函数。 在点击上按钮时,我们可以调用CKEditor提供的文件方法。通过CKEDITOR.uploadUrl()方法,我们可以设置上文件的URL路径,以及回调函数来处理上成功后的操作。 在上文件成功后,我们可以通过回调函数来处理返回的数据。可以通过CKEditor提供的接口来获取上文件的URL,在编辑器中插入图片或链接等操作。 总的来说,要在CKEditor4中实现文件功能,我们需要引入相关的文件和插件,定义编辑器的相关设置,通过按钮和上方法来触发文件操作,并在成功后进行相关操作。这样就可以实现在CKEditor中方便地上文件了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值