apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)
文章目录
一、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)相关推荐
- java xxe漏洞利用_XXE漏洞攻防原理
方便永远是安全的敌人 你的知识面,决定你的攻击面 1简述 XXE(XML External Entity)是指xml外部实体攻击漏洞.XML外部实体攻击是针对解析XML输入的应用程序的一种攻击.当包含 ...
- 6-1漏洞利用-FTP漏洞利用
FTP协议介绍 文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式.它属于网络传输协议的应用层.FTP使用2 ...
- poc weblogic 漏洞利用_weblogic漏洞利用汇总
漏洞列表弱口令 ssrf CVE-2014-4210 WLS 组件远程代码执行 CVE-2017-10271 任意上传 CVE-2018-2894 weak passwd&&CVE-2 ...
- poc weblogic 漏洞利用_Weblogic 漏洞利用总结
整理的一些利用方式,后续会更新到15年至今的洞 后台爆破拿shell 后台爆破: 部署-安装-上载文件 制作war包,一直下一步,最好保存 jar -cvf shell.war ./shll/* 上传 ...
- web漏洞(CSRF-SSRF-文件包含-文件解释-文件下载-目录遍历-sql注入-文件上传-反序列化-XSS-XXE-RCE-逻辑越权)
1.CSRF(跨站请求伪造)(需要对方是在登录的情况下)--主要用于骗转账等等 原理:A在已经登录了银行的网站,并且此时去访问了B所构造的网页添加了特殊代码,A点击了B,由于A已经登录了,就造成了A直 ...
- php Wrapper LFI,LFI漏洞利用总结(转载)
主要涉及到的函数 include(),require().include_once(),require_once() magic_quotes_gpc().allow_url_fopen().allo ...
- Kali Linux 秘籍 第六章 漏洞利用
第六章 漏洞利用 作者:Willie L. Pritchett, David De Smet 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 一旦我们完成了漏洞扫描步骤,我们就了解了必要的知识 ...
- 永恒之蓝ms17_010漏洞利用攻击
文章目录 前言 一:基础知识介绍 二.实验环境 三.实验步骤 总结 前言 学习Metasploit的时候就听说了经典的永恒之蓝漏洞,所以自己试验了一次,借此作个记录. 一:基础知识介绍 1.何为永恒之 ...
- 渗透测试漏洞利用入门总结
渗透测试漏洞利用入门总结 漏洞利用 利用medusa获得远程服务的访问权限. 这些服务包括ssh.telnet.ftp.pc anywhere .vnc 对这些服务进行爆破的工具分别是medusa 和 ...
最新文章
- Spring_总结_02_依赖注入
- 基于Visual Studio2010讲解C#4.0语法(5)--使用CollectionClasses
- node简单实现一个更改头像功能
- arcball 鼠标 相机转动
- linux启动脚本添加命令,Linux添加shell(.sh)脚本并添加定时任务
- MapReduce-多个Mapper
- SparkSQL案例-图书信息分析
- 【Object C】从Java 一步步走向Object C
- FreePiano下载与使用
- 单片机万年历阴阳历c语言,自己制作的单片机万年历 程序+原理图
- MFC 资源脚本问题:fatal error CVT1100: 资源重复。类型: AFX DIALOG LAYOUT
- dismiss和remove_Android中dismissDialog(int id)和removeDialog(int id)两个接口有什么区别
- WPA3功能开发及验证
- 表单form中的submit事件
- xlsx发现不可读取的内容,是否恢复此工作簿的内容?
- 关于DOTS的个人总结
- 类库探源——System.String
- Linux中的current与rq->curr浅析
- Camera:高斯模糊
- 全网最火的5款免费脑图软件,最后一款亮了!
热门文章
- 旋转数组 java_数组中左旋转的Java程序
- python单词首字母大写_在Python中将每个单词的首字母大写
- python字符串转浮点数_Python | 打印不同的值(整数,浮点数,字符串,布尔值)...
- 16位的数字高字节和低字节_掩盖8位数字的较低和较高半字节| 8085微处理器
- 怎么查看我的php版本,怎样查看php版本
- 功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了
- python—高阶函数
- android webview 监听js,Android webview与js的数据交互
- java enummap_Java EnumMap containsValue()方法与示例
- 程序设计爬楼梯问题_楼梯案例:解决楼梯问题的C ++程序