当前位置: 首页 > news >正文

Apache文件解析漏洞详解

今天继续给大家介绍渗透测试相关知识,本文主要内容是Apache文件解析漏洞详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、漏洞简介

在使用Apache服务器配合PHP来架构网站时,经常会面临Apache与PHP配合的问题,此时如果我们配置不当,就会使得Apache服务器在解析某些含有php的文件时出现错误,将其当作PHP文件来进行处理,从而使得文件中的恶意代码被执行。
对该漏洞的利用,我们通常是上传一个名为xxx.php.jpg的文件,如果Apache中关于PHP的部分是如下配置的:

AddHandler application/x-httpd-php .php

那么该文件就被被Apache认为是一个PHP类型的文件,从而交给PHP来进行处理,尽管该文件的后缀名是JPG。

二、Vulhub漏洞环境启动

接下来,我们就利用Vulhub靶场,来快速搭建Apache文件解析漏洞的环境。Vulhub靶场搭建和使用可以参考如下文章:Vulhub漏洞靶场搭建和使用
安装完成Vulhub靶场后,找到Apache文件解析漏洞的目录,并进入到该目录下,之后执行命令:

docker-compose build

即可构建该漏洞的环境,该命令执行结果如下所示:
在这里插入图片描述
之后,执行命令:

docker-compose up -d

即可远程拉取该漏洞的镜像,并创建漏洞环境,该命令执行过程中页面如下所示:
在这里插入图片描述
最后,执行命令:

docker-compose config

即可查看当前Docker虚拟机的配置,结果如下:
在这里插入图片描述
从以上过程可以看出,我们的Vulhub靶场已经成功启动运行,开放80端口并与Docker虚拟机的80端口对应。

三、漏洞实战

在使用Vulhub平台搭建后漏洞环境后,我们就可以进行漏洞的实战了,我们访问搭建好后的平台页面结果如下所示:
在这里插入图片描述
之后,我们按照之前的思路,上传一个名为exp.php.jpg的文件,该文件中含有PHP的phpinfo()函数,上传页面如下所示:
在这里插入图片描述
点击提交后,发现文件能够成功上传,如下所示:
在这里插入图片描述
而此时如果我们访问该页面,则会发现该页面能够被当作PHP文件解析,如下所示:
在这里插入图片描述
这也就说明了我们的漏洞利用成功了!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

相关文章:

  • JavaScript 类继承讲解
  • MySQL增删改查【进阶篇】万字图文超详细讲解
  • 湖北省高新技术企业应提前准备,申报条件、流程、材料梳理
  • HTML网页设计制作 dreamweaver网页源代码 垃圾分类环保主题网站制作
  • (附源码)计算机毕业设计ssm电影分享网站
  • 【探花交友】查询通用设置、陌生人问题、黑名单管理
  • 【AUTOSAR-IpduM】-3.1-配置一个发送Tx Dynamic Container PDU(Multiple-PDU)
  • Python编程 pip换源
  • 游戏网页代码 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计
  • JavaScript基础(2)
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • 【MyBatis框架】实现增删改查功能
  • 【算法刷题日记之本手篇】左右最值最大差与顺时针打印矩阵
  • Redis 的安装
  • Netty网络编程实战2,使用Netty开发聊天室功能
  • Apache Spark Streaming 使用实例
  • Centos6.8 使用rpm安装mysql5.7
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • interface和setter,getter
  • markdown编辑器简评
  • oschina
  • rabbitmq延迟消息示例
  • Spring Boot快速入门(一):Hello Spring Boot
  • Yeoman_Bower_Grunt
  • 动态魔术使用DBMS_SQL
  • 计算机在识别图像时“看到”了什么?
  • 简单数学运算程序(不定期更新)
  • 力扣(LeetCode)965
  • 设计模式走一遍---观察者模式
  • 携程小程序初体验
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $GOPATH/go.mod exists but should not goland
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (一)RocketMQ初步认识
  • (一)为什么要选择C++
  • (转)nsfocus-绿盟科技笔试题目
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (轉貼) UML中文FAQ (OO) (UML)
  • **PHP二维数组遍历时同时赋值
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET CORE Aws S3 使用
  • .NET 服务 ServiceController
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .Net7 环境安装配置
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET序列化 serializable,反序列化
  • /etc/fstab 只读无法修改的解决办法
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • /var/spool/postfix/maildrop 下有大量文件
  • @RequestBody的使用