文件上传--解析漏洞和编辑器

本文主要知识点

解析漏洞

IIS6/7.X、 Apache、 Nginx
CMS漏洞

某CMS上传1、某CMS上传2、某CMS上传3

其他漏洞

编辑器漏洞

fckeditor、ewebeditor、ckeditor、kindeditor...

CVE等漏洞

CVE-2015-5254、CVE-2017-12615、CVE-2019-2618

-- #该倒数第二个视频有讲整体思路

环境资源:

phpStudy 2013B php5.2 珍藏版(apache 2.2.25+php 5.2.17) 下载-脚本之家https://www.jb51.net/softs/75619.html

[1]解析漏洞

IIS6/7 简要说明-本地搭建

常见web中间件漏洞(一)IIS漏洞 - anoldcat - 博客园https://www.cnblogs.com/lcxblogs/p/13539558.html

Apache配置安全--vulhub
Apache解析漏洞-低版本

X.php. xxx. yyy

识别最后的yyy如果不识别的向前解析 直到识别

利用场景:

如果对方中间件apache属于低版本,我们可以利用文件上传,上传一个不识别的文件后缀,利用解析漏洞规则成功解析文件,其中后门代码被触发。

Apache换行解析-vulhub

在1.php后面插入一个\x0A(注意,不能是\x0D\x0A,只能是一个\x0A),不再拦截,同时修改Hex属性成0a

Nginx解析漏洞-vulhub

Nginx文件名逻辑-vulhub

[2]编辑器漏洞

直接参考手册,知道对方使用的编辑器之后进行漏洞利用

编辑器漏洞手册 - 代码先锋网https://www.codeleading.com/article/27886084008/

在Web开发和内容管理系统(CMS)中,编辑器(通常指富文本编辑器)是一个非常重要的组件,它允许用户以直观的方式创建和编辑内容,而无需直接编写HTML代码。编辑器的主要作用包括以下几个方面:

1. 内容创建与编辑

编辑器提供了一个用户友好的界面,使用户能够轻松地创建和编辑内容。用户可以通过点击按钮、使用快捷键或拖放操作来插入文本、图片、链接、表格等元素,而无需手动编写HTML代码。

例子

  • WordPress:WordPress的编辑器(如Gutenberg)允许用户通过拖放模块来创建复杂的页面布局,插入图片、视频、文本块等。

  • UEditor:UEditor是一个流行的富文本编辑器,广泛用于各种CMS系统,支持多种格式化选项,如加粗、斜体、下划线、颜色选择等。

2. 内容格式化

编辑器提供了丰富的格式化选项,帮助用户创建美观且结构化的文档。这些格式化选项包括字体选择、段落对齐、列表、标题等。

例子

  • CKEditor:CKEditor支持多种格式化选项,用户可以轻松地将文本设置为标题、段落、引用等,并且可以插入图片、链接、表格等元素。

  • TinyMCE:TinyMCE是一个轻量级的富文本编辑器,提供了简洁的用户界面和丰富的格式化功能,适合嵌入到各种Web应用程序中。

3. 内容预览

编辑器通常提供了一个"所见即所得"(WYSIWYG)的预览功能,用户可以在编辑时实时看到内容的最终效果。这使得用户能够更直观地调整内容的格式和布局。

例子

  • WordPress:在编辑文章时,用户可以切换到"预览"模式,查看文章在前端页面上的实际效果。

  • UEditor:UEditor提供了即时预览功能,用户在编辑过程中可以随时查看内容的最终效果。

4. 内容存储与管理

编辑器不仅负责内容的创建和编辑,还负责将内容存储到数据库或文件系统中。编辑器通常会将用户输入的内容转换为HTML格式,并将其保存到相应的存储介质中。

例子

  • Joomla:Joomla的编辑器将用户创建的内容保存到数据库中,以便在网站的前端页面中显示。

  • Drupal:Drupal的编辑器支持多种内容类型和字段,用户可以创建和管理不同类型的内容,如文章、页面、媒体等。

5. 多媒体支持

编辑器支持插入和管理多媒体内容,如图片、视频、音频等。用户可以通过编辑器上传和插入这些多媒体文件,丰富内容的表现形式。

例子

  • WordPress:WordPress的编辑器支持上传图片和视频,并提供了丰富的插入选项,用户可以轻松地将多媒体内容嵌入到文章或页面中。

  • CKEditor:CKEditor支持插入图片、视频、音频等多媒体内容,并提供了丰富的配置选项,如图片的对齐方式、大小调整等。

6. 插件与扩展

许多编辑器支持插件和扩展,用户可以根据需要添加额外的功能。这些插件可以扩展编辑器的功能,如支持代码高亮、表格编辑、拼写检查等。

例子

  • TinyMCE:TinyMCE提供了丰富的插件生态系统,用户可以根据需要添加各种功能,如代码高亮、表格编辑、拼写检查等。

  • UEditor:UEditor也支持插件扩展,用户可以通过插件添加自定义的功能,如自定义工具栏按钮、自定义格式化选项等。

形象的例子:Word文档编辑器

想象一下,你正在使用Microsoft Word创建一个文档。Word提供了丰富的编辑功能,如文本格式化、图片插入、表格创建等。这些功能使得你可以轻松地创建一个美观且结构化的文档,而无需手动编写HTML代码。Word还提供了"所见即所得"的预览功能,你可以实时看到文档的最终效果。此外,Word还支持保存文档到本地或云端,方便管理和共享。

[3]CMS漏洞

知道对方使用的CMS系统,用网上方法

【春秋云镜】Subrion CMS 4.2.1 文件上传漏洞实战全过程CVE-2018-19422 - FreeBuf网络安全行业门户https://www.freebuf.com/vuls/369761.html

名词解释补充

解析漏洞

解析漏洞是什么

解析漏洞是指Web服务器在解析文件名或目录名时,由于配置不当或自身缺陷,错误地将某些文件解析为脚本文件并执行,从而导致安全问题。这种漏洞通常与Web服务器(如Apache、IIS、Nginx)的配置或版本有关。

解析漏洞的常见类型及例子

1. Apache解析漏洞

Apache服务器会从右到左解析文件扩展名,直到遇到一个它认识的扩展名为止。例如:

  • 文件名test.php.owf.rar,由于.owf.rar是不可识别的扩展名,Apache会将其解析为test.php

  • 配置问题:如果配置了AddHandlerAddType,可能导致即使文件扩展名不是.php,文件也会被当作PHP脚本执行。

2. IIS解析漏洞

IIS服务器会忽略分号;后面的扩展名。例如:

  • 文件名test.asp;.jpg,IIS会忽略;jpg,将其解析为test.asp

  • 目录解析漏洞:以.asp命名的文件夹里的文件都将会被当成ASP文件执行。

3. Nginx解析漏洞

Nginx在某些配置下可能会错误地解析文件。例如:

  • cgi.fix_pathinfo开启时,Nginx可能会将test.jpg/test.php解析为test.jpg并尝试执行。

  • 特殊字符绕过:如使用%20%00等非法字符组合,可能导致Nginx解析错误。

解析漏洞的危害

攻击者可以利用解析漏洞上传恶意文件,绕过应用程序的安全限制,执行恶意代码或访问敏感数据。例如,攻击者可以上传一个看似无害的图片文件,但服务器错误地将其解析为PHP脚本并执行,从而获取WebShell。

CMS漏洞

如何理解CMS

形象的例子:图书馆管理员与CMS

  • 图书馆管理员:负责管理图书馆中的书籍,确保书籍信息准确,方便读者查找和借阅。

  • CMS:就像一个智能的图书馆管理系统,帮助管理员完成上述任务,提高工作效率。

CMS漏洞是什么

CMS漏洞是指内容管理系统(Content Management System,简称CMS)中存在的安全缺陷,这些缺陷可能导致未经授权的访问、数据泄露、代码执行等安全问题。

常见的CMS漏洞类型

  1. SQL注入(SQL Injection)

    • 攻击者通过向数据库查询中插入恶意SQL代码来获取或操纵数据。如果CMS对用户输入的数据缺乏适当的验证和过滤,攻击者可以利用此漏洞获取敏感信息或绕过身份验证。
  2. 跨站脚本(XSS)

    • 攻击者将恶意脚本插入到网页中,当其他用户访问该网页时,这些脚本会在他们的浏览器中执行。XSS攻击通常分为存储型、反射型和基于DOM的三种类型。
  3. 文件上传漏洞

    • 如果CMS对上传文件的类型和内容缺乏严格的验证和过滤,攻击者可以上传恶意文件(如可执行脚本或WebShell),从而控制服务器或窃取数据。
  4. 跨站请求伪造(CSRF)

    • 攻击者利用用户在已登录状态下的授权,通过伪造请求来执行未授权操作。这种攻击通常依赖于社会工程手段,诱骗用户点击恶意链接。
  5. 远程代码执行(Remote Code Execution, RCE)

    • 某些CMS漏洞允许攻击者在服务器上执行任意代码,从而完全控制服务器。

具体CMS漏洞案例

  1. WordPress

    • Heartbleed漏洞:WordPress使用的OpenSSL库存在漏洞,可以泄露网站的私钥和SSL证书。

    • TimThumb插件远程代码执行漏洞:攻击者可以利用此漏洞获得网站控制权。

  2. Joomla

    • SQL注入漏洞:攻击者可以通过提交恶意SQL查询获取网站数据。

    • CSRF攻击:攻击者可以通过提交恶意表单获取网站数据。

  3. Drupal

    • SQL注入漏洞:攻击者可以通过提交恶意SQL查询获取网站数据。

    • 文件包含漏洞:攻击者可以上传恶意文件,从而获取网站数据。

  4. Magento

    • SQL注入漏洞:攻击者可以通过提交恶意SQL查询获取网站数据。

    • XSS攻击:攻击者可以注入恶意JavaScript或HTML代码,从而更改网站内容。

编辑器漏洞

编辑器漏洞是什么

编辑器漏洞是指在Web内容管理系统(CMS)或Web应用程序中使用的富文本编辑器(如UEditor、CKEditor、KindEditor等)中存在的安全缺陷。这些漏洞可能被攻击者利用,导致未经授权的文件上传、代码执行、跨站脚本攻击(XSS)等问题。

常见的编辑器漏洞类型

  1. 任意文件上传漏洞

    • 攻击者可以绕过文件类型检查,上传恶意文件(如PHP脚本、WebShell等),从而在服务器上执行任意代码。

    • 例子 :UEditor的.NET版本存在任意文件上传漏洞,攻击者可以通过构造恶意请求上传.aspx文件。

  2. 跨站脚本攻击(XSS)

    • 编辑器未对用户输入进行充分过滤,导致攻击者可以注入恶意脚本,影响其他用户。
  3. 未授权访问漏洞

    • 编辑器的某些功能(如文件管理器)未进行适当的权限验证,攻击者可以访问或操作敏感文件。
  4. 列目录漏洞

    • 编辑器的文件管理功能可能泄露服务器上的文件结构,攻击者可以利用此信息进一步攻击。
  5. 绕过文件格式限制

    • 编辑器在处理文件上传时,可能未严格检查文件扩展名或内容类型,导致攻击者可以上传非预期的文件。

影响范围

这些漏洞可能影响多种流行的编辑器,如UEditor、CKEditor、KindEditor、FCKeditor等。不同版本的编辑器可能存在不同的漏洞,攻击者可以利用这些漏洞上传恶意文件、执行代码或窃取数据。

CVE漏洞

CVE漏洞是什么?

CVE(Common Vulnerabilities and Exposures,通用漏洞和暴露)是一个公开的网络安全漏洞列表,由MITRE公司维护。它为每个已知的安全漏洞和暴露分配了一个唯一的标识符(CVE ID),以便安全研究人员、供应商和组织能够一致地讨论、分析和修复这些漏洞。

CVE漏洞的分类

CVE漏洞主要分为两类:

  1. 漏洞(Vulnerability):软件或硬件中的缺陷,攻击者可以利用这些缺陷直接访问系统或网络,执行未经授权的操作。

  2. 暴露(Exposure):软件或配置中的错误,使攻击者能够间接访问系统或网络,通常用于收集敏感信息。

CVE漏洞的具体例子

  1. CVE-2017-5638(Struts2 S2-045)

    • 描述 :Apache Struts2框架的远程代码执行漏洞。攻击者可以通过构造恶意的Content-Type头来触发该漏洞,执行任意Java代码。

    • 影响:攻击者可以完全控制服务器,安装恶意软件、窃取敏感信息等。

  2. CVE-2018-15473(OpenSSH User Enumeration)

    • 描述:OpenSSH服务器中的一个用户枚举漏洞。攻击者可以通过发送特定请求并观察服务器响应,确定服务器上是否存在特定用户。

    • 影响:攻击者可以为后续攻击做准备,如暴力破解密码或进行社交工程攻击。

CVE漏洞的特点与作用

  • 唯一性:每个CVE漏洞都有一个唯一的标识符,便于跟踪和管理。

  • 标准化描述:CVE为每个漏洞提供标准化的描述,便于安全团队理解和修复。

  • 漏洞评分:通过CVSS(Common Vulnerability Scoring System)对漏洞的严重性进行评分,帮助组织确定修复优先级。

相关推荐
BingoGo19 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack19 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
cipher1 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
一次旅行4 天前
网络安全总结
安全·web安全