文章目录

一、Apache httpd 多后缀解析漏洞

漏洞原理

漏洞复现

漏洞修复

二、Apache httpd 换行解析漏洞(CVE-2017-15715)

漏洞原理

漏洞复现

漏洞修复

三、Apache 目录遍历

漏洞原理

漏洞修复

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

一、Apache httpd 多后缀解析漏洞

httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。

漏洞原理

apache httpd支持一个文件有多个后缀,如:test1.php.pdf 。在windows下,会直接根据最后的.来进行分隔,将其判定为pdf文件,但在apache中可不是这样的,apache会从后往前依次进行判别,遇到不认识的后缀,便会往前读,如果还是不认识再往前,若是到最后一个都不认识,则会将该文件当成默认类型文件读取。

那么有人要问了,我怎么知道它认识哪些不认识哪些呢?在/etc下有个mime.types文件定义了apache可以识别的文件后缀。以下是该文件部分内容:

该解析漏洞产生的原因一部分是基于apache的这种特性,还有一大部分原因都是由于开发人员的配置不当构成的,当运维人员在配置文件给.php添加了处理器时:

AddHandler application/x-httpd-php .php

多后缀的文件名中只要存在.php后缀,则就会将该文件当做php文件解析。

漏洞复现

运行环境:vulhub中的apache_parsing_vulnerblity

使用docker-compose up -d 命令运行容器,在本地的80端口运行,发现是文件上传,于是我们查看源代码:

查看源代码发现,这里是对文件的后缀名设置了白名单,只能上传这几种类型的文件。接下来我们去查看配置文件:

配置文件中有这么一句,也就是对.php添加了处理器,当多后缀名中有.php时,将其当做php文件解析。所以我们接下来构造payload来绕过过滤:

payload:

http://127.0.0.1:80/test1.php.jpg

其响应如下:

文件上传成功,而且没有重命名,于是我们直接去该路径下运行该文件即可:

phpinfo执行成功,利用该漏洞即可get shell。

漏洞修复

将AddHandler application/x-httpd-php.php的配置文件删除。

二、Apache httpd 换行解析漏洞(CVE-2017-15715)

影响版本:

2.4.0~2.4.29

漏洞原理

此漏洞的出现是由于apache在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析php时xxx.php\x0A将被按照php后缀进行解析,导致绕过一些服务器的安全策略。

漏洞复现

运行vulhub中CVE-2017-15715(该环境中需要自己添加前端代码),然后查看代码:

这里在上传文件时,对文件名进行了黑名单限制,我们利用该漏洞上传一个1.php文件,使用burpsuit抓包。

在1.php后插入一个\x0A,绕过黑名单过滤。

访问1.php%0A,即可看到文件被当做php解析。

漏洞修复

1、该漏洞仅针对于apache的2.4.0~2.4.29版本,升级apache版本即可避过该漏洞。

2、获取文件名时使用$_FILES[‘file’][‘name’]会自动把换行符去掉,防止出现该解析漏洞。(参考离别歌:https://www.colabug.com/2579930.html)

三、Apache 目录遍历

漏洞原理

Apahce中httpd.conf配置错误导致

漏洞修复

1、phpstudy中

在httpd.conf文件中找到

Options +Indexes +FollowSymLinks +ExecCGI

将其修改并重启phpstudy

Options -Indexes+FollowSymLinks +ExecCGI

参考文章:https://blog.csdn.net/skystephens/article/details/86611796

2、kali中:

找到apache2的apache2.conf文件,将配置文件修改为(一般默认配置是不允许目录遍历的):

apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)相关推荐

  1. java xxe漏洞利用_XXE漏洞攻防原理

    方便永远是安全的敌人 你的知识面,决定你的攻击面 1简述 XXE(XML External Entity)是指xml外部实体攻击漏洞.XML外部实体攻击是针对解析XML输入的应用程序的一种攻击.当包含 ...

  2. 6-1漏洞利用-FTP漏洞利用

    FTP协议介绍 文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式.它属于网络传输协议的应用层.FTP使用2 ...

  3. poc weblogic 漏洞利用_weblogic漏洞利用汇总

    漏洞列表弱口令 ssrf CVE-2014-4210 WLS 组件远程代码执行 CVE-2017-10271 任意上传 CVE-2018-2894 weak passwd&&CVE-2 ...

  4. poc weblogic 漏洞利用_Weblogic 漏洞利用总结

    整理的一些利用方式,后续会更新到15年至今的洞 后台爆破拿shell 后台爆破: 部署-安装-上载文件 制作war包,一直下一步,最好保存 jar -cvf shell.war ./shll/* 上传 ...

  5. web漏洞(CSRF-SSRF-文件包含-文件解释-文件下载-目录遍历-sql注入-文件上传-反序列化-XSS-XXE-RCE-逻辑越权)

    1.CSRF(跨站请求伪造)(需要对方是在登录的情况下)--主要用于骗转账等等 原理:A在已经登录了银行的网站,并且此时去访问了B所构造的网页添加了特殊代码,A点击了B,由于A已经登录了,就造成了A直 ...

  6. php Wrapper LFI,LFI漏洞利用总结(转载)

    主要涉及到的函数 include(),require().include_once(),require_once() magic_quotes_gpc().allow_url_fopen().allo ...

  7. Kali Linux 秘籍 第六章 漏洞利用

    第六章 漏洞利用 作者:Willie L. Pritchett, David De Smet 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 一旦我们完成了漏洞扫描步骤,我们就了解了必要的知识 ...

  8. 永恒之蓝ms17_010漏洞利用攻击

    文章目录 前言 一:基础知识介绍 二.实验环境 三.实验步骤 总结 前言 学习Metasploit的时候就听说了经典的永恒之蓝漏洞,所以自己试验了一次,借此作个记录. 一:基础知识介绍 1.何为永恒之 ...

  9. 渗透测试漏洞利用入门总结

    渗透测试漏洞利用入门总结 漏洞利用 利用medusa获得远程服务的访问权限. 这些服务包括ssh.telnet.ftp.pc anywhere .vnc 对这些服务进行爆破的工具分别是medusa 和 ...

最新文章

  1. Spring_总结_02_依赖注入
  2. 基于Visual Studio2010讲解C#4.0语法(5)--使用CollectionClasses
  3. node简单实现一个更改头像功能
  4. arcball 鼠标 相机转动
  5. linux启动脚本添加命令,Linux添加shell(.sh)脚本并添加定时任务
  6. MapReduce-多个Mapper
  7. SparkSQL案例-图书信息分析
  8. 【Object C】从Java 一步步走向Object C
  9. FreePiano下载与使用
  10. 单片机万年历阴阳历c语言,自己制作的单片机万年历 程序+原理图
  11. MFC 资源脚本问题:fatal error CVT1100: 资源重复。类型: AFX DIALOG LAYOUT
  12. dismiss和remove_Android中dismissDialog(int id)和removeDialog(int id)两个接口有什么区别
  13. WPA3功能开发及验证
  14. 表单form中的submit事件
  15. xlsx发现不可读取的内容,是否恢复此工作簿的内容?
  16. 关于DOTS的个人总结
  17. 类库探源——System.String
  18. Linux中的current与rq->curr浅析
  19. Camera:高斯模糊
  20. 全网最火的5款免费脑图软件,最后一款亮了!

热门文章

  1. 旋转数组 java_数组中左旋转的Java程序
  2. python单词首字母大写_在Python中将每个单词的首字母大写
  3. python字符串转浮点数_Python | 打印不同的值(整数,浮点数,字符串,布尔值)...
  4. 16位的数字高字节和低字节_掩盖8位数字的较低和较高半字节| 8085微处理器
  5. 怎么查看我的php版本,怎样查看php版本
  6. 功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了
  7. python—高阶函数
  8. android webview 监听js,Android webview与js的数据交互
  9. java enummap_Java EnumMap containsValue()方法与示例
  10. 程序设计爬楼梯问题_楼梯案例:解决楼梯问题的C ++程序