Apache HTTPD 换行解析漏洞(CVE-2017-15715)复现及利用

Apache HTTPD 换行解析漏洞(CVE-2017-15715)复现及利用

1.1漏洞介绍

CVE-2017-15715漏洞可能允许攻击者通过构造特定的恶意文件名来绕过服务器对文件上传的安全限制。在Apache HTTP Server的某些版本中,指令用于匹配文件名模式并执行相应的操作。然而,在某些情况下,该指令可能会错误地将"“字符解释为文件名的一部分,而不是将其视为表示文件名结束的特殊字符。这可能导致服务器错误地匹配到包含”“字符的文件名,即使该文件名后面还有更多的字符。
攻击者可以利用这个漏洞在服务器上上传恶意文件。例如,如果服务器阻止了某些文件的上传,但允许上传的文件名以”$“字符结尾,攻击者可以构造一个恶意文件名,使其在匹配指令时仅匹配到文件名的末尾部分。这样,攻击者就可以绕过服务器的安全限制,并成功上传恶意文件。
为了修复该漏洞,Apache HTTP Server的维护者发布了更新版本(2.4.33),其中修复了指令对”“字符的解释方式。现在,”"字符将被正确地解释为表示文件名结束的特殊字符,从而避免了潜在的攻击。
受影响版本:Apache HTTP Server的2.4.0至2.4.29版本。
详细利用方式:Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
利用条件:网站需要提供上传功能,通过burpsuite抓包构建,绕过拦截,然后获取上传的文件地址,通过文件名称+%0a来进行访问。

1.2漏洞环境搭建

这里采用Vulhub(https://vulhub.org/)一键搭建漏洞测试靶场,来进行漏洞复现。本次用到的所有测试环境在httpd目录下,如图1所示。
在这里插入图片描述

图1 所有漏洞测试环境信息
1.启动漏洞docker环境
(1)到漏洞docker所在环境
cd /opt/vulhub/httpd/CVE-2017-15715
(2)构建 Docker Compose 文件中定义的服务的镜像
docker-compose build
(3)启动在docker-compose.yml文件中定义的服务容器
docker-compose up –d
在这里插入图片描述

图2 启动docker
如果前面存在docker,则需要停止前面docker。
docker ps
docker dockerid stop
2.访问漏洞环境
可以通过docker ps命令查看docker开启的端口,在本例中默认开启8080端口,直接访问虚拟机http://192.168.19.134:8080/,如图3所示,显示漏洞存在的页面。
在这里插入图片描述

图3 漏洞存在页面

1.3漏洞复现

1.拦截测试
启动burpsuite2022版本,打开默认的调试浏览器,输入前面地址地址,单击上传,如图4所示,正常上传php文件就会出现上传失败提示“bad file”。
在这里插入图片描述

图4 上传错误提示
2.绕过上传限制
在BurpSuite的历史记录中将该页发送到重放攻击“Send to Repeater”中,如图5所示。
在这里插入图片描述

图5 发送到重放攻击
在重放攻击页面中单击“16进制(hex)”找到上传文件的名称evil.php处,然后单击“insert byte”,如图6所示。
在这里插入图片描述

图6寻找文件上传名称地址
在evil.php后面插入一个\x0A这里只需要选中0d,右击选择insert byte…后,输入0a即可插入至里面,如图7所示,确定然后发送包。对比其值的变化前期值为“70 0d 0a 2d 2d”更改后为“70 0a 0d 0a 2d”。
在这里插入图片描述

图7 构建特殊文件名称
3.访问文件
这里访问地址http://192.168.19.134:8080/evil.php%0a即可。
在这里插入图片描述

图8执行效果
防御措施:升级到最新版本

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是simeon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值