首页 > 其他分享 >Apache HTTPD 换行解析漏洞(CVE-2017-15715)

Apache HTTPD 换行解析漏洞(CVE-2017-15715)

时间:2023-01-04 00:44:59浏览次数:43  
标签:HTTPD php name 15715 漏洞 file docker CVE array

1.漏洞原理

Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在 一个解析漏洞,在解析PHP时,a.php\x0a将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

可以看到这里获取文件名是需要单独post一个name的,因为如果通过 $FILES'file' 获 取文件名的话,会把\x0a自动去除,所以 $FILES'file' 这种方式获取文件名就不会造成 这个漏洞.

2.影响版本范围

apache :2.4.0~2.4.29版本

3.漏洞复现

在这里我自己搭建了Vulfocus漏洞复现平台

3.1 前提:会使用docker的基本命令(哔站上的教程的挺多的)

3.2 拉取vulfocus镜像:docker pull vulfocus/vulfocus:latest

3.3 运行拉下来的镜像:docker run -d -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=0.0.0.0 8e55f85571c8

 

 

 3.4 访问页面

 

 

 3.5 开启靶场

 

 

 

3.6 设置burp代理,将浏览器的流量代理到burp上,进行拦截(在这里我使用的是SwitchyOmega火狐插件)

 

 

 

 

 

 

 自己写个表单,用来向服务器上传webshell

 

 

 3.7 访问该静态网页,这里上传如下webshell,对流量进行抓包

 

 

 <?php phpinfo();?>

 

 

 

3.8 后台源码进行分析

<?php if(isset($FILES['file'])){ #1.php php $name =basename($POST['name']); $ext = pathinfo($name,PATHINFO_EXTENSION); $array=array('php','php3','php4','php5','phtml','pht'); if(in_array($ext,$array)){ exit('bad file'); } move_uploaded_file($_FILES'file','./'.$name); } ?>

后台是通过黑名单方式过滤了php后缀的文件,根据最开始的知识,什么样的文件算是php文件呢?在 有定义,这句话的意思是以php结尾的文件都算php文件,在正则中表示匹配输入字符串的结尾位置。 如果设置了 RegExp对象的 Multiline属性,则也匹配 \n 或 \r 恰好,我们在文件末尾加了0x0a(n),所以被匹配成功了。

a.0x0d \r CR这三者代表是回车,是同一个东西,回车的作用只是移动光标至该行的起始位置

b.0x0a \n CL这三者代表换行,是同一个东西,换行至下一行行首起始位置;

3.9发送到repeater进行修改重发

 

 

 直接访问:http://192.168.4.157:31071/a.php%0a 上传上去的webshell执行成功

 

 ctrl+F 查找flag

 

 

 

4.修复的建议

1.升级到最新版本

2.或将上传的文件重命名为为时间戳+随机数+.jpg的格式并禁用上传文件目录执行

5.闲谈

2022年已经过去了,在2022年经历了很多事情,虽然过得不算如意,但都挺过来了,一路走来,从没放弃过对安全的追求,安全是我最痴迷的。那段记忆既让我留恋,又使我害怕,不要活在过去,大步向前,没有什么可以难倒我的,大学生涯也快结束了,有时真的感叹时间的飞逝啊,愿你我安好。拿出魄力去做自己热爱的事情,去追求自己的安全,好好安排好2023的计划,2023静心让自己的安全技术再突破,为以后的发展做好准备。时刻准备着,网安人,你绝对不平凡,相信自己,加油!

 

 

 

 

 

 

 

 

 



 

标签:HTTPD,php,name,15715,漏洞,file,docker,CVE,array
From: https://www.cnblogs.com/lzkalislw/p/17023784.html

相关文章

  • 关于httpd的基础说明
    目录安装配置https在Directory中基于用户的访问控制根据不同的FQDN显示不同的web页面安装[root@servera~]#cat/etc/redhat-releaseRedHatEnterpriseLinuxreleas......
  • CVE-2022-26923 Windows域提权漏洞
    前言ActiveDirectory域服务,是一种目录服务,提供了存储目录数据信息以及用户相关的一些密码,电话号码等等一些数据信息,且可让用户和管理员使用这些数据,有利于域管理员对用......
  • 配置httpd虚拟主机
    配置httpd虚拟主机相同ip不同端口设置主机名[root@liu~]#vim/usr/local/apache/conf/httpd.conf...#Ifyourhostdoesn'thavearegisteredDNSname,enteri......
  • 配置httpd虚拟主机
    环境准备编译安装httpd参考虚拟主机虚拟主机有三类:相同IP不同端口不同IP相同端口相同IP相同端口不同域名相同IP不同端口yum安装文件位置:vim/etc/httpd/co......
  • 源码编译安装httpd
     1.基础环境准备1.1创建一个系统用户 [root@node2~]#useradd-r-M-s/sbin/nologinapache [root@node2~]#idapache uid=299(apache)gid=299(apache)gro......
  • httpd编译安装
    httpd编译安装基础环境准备[root@liuquanyu~]#dnf-yinstallgccgcc-c++makewgetLastmetadataexpirationcheck:2:28:48agoonTue13Dec202206:32:26PM......
  • Django之SQL注入漏洞复现(CVE-2021-35042)
    前言SQL注入的原理是对web请求,表单或域名等提交查询的字符串没有进行安全检测过滤,攻击者可以拼接执行恶意SQL命令,导致用户数据泄露漏洞原理Django组件存在SQL注入漏......
  • Apache Log4j 远程代码执行漏洞(CVE-2021-44228、CVE-2021-45046)修复方案
      漏洞概述  漏洞名称:ApacheLog4j远程代码执行漏洞(CVE-2021-44228、CVE-2021-45046)影响范围:ApacheApacheLog4j2>=2.0ApacheApacheLog4j2<=2.15.0-......
  • Aphche 换行解析漏洞(CVE-2017-15715)
    一:原理apache-CVE-2017-15715的出现是由于apache在修复第一个后缀名解析漏洞时,使用正则表达式匹配后缀,在解析php时xxx.php\x0A将被php后缀进行解析,导致绕过一些服务器......
  • i春秋云镜 CVE-2022-32991
     第一种方法第二种延时注入     ......