由 webdav 功能引发的 RCE

VSole2022-01-07 08:44:00

再开始今天的内容之前,首先理解一个东西 WebDav,WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

如果网站服务器启用 WebDav 并且给与所有权限,那么任意用户都可以远程上传、删除和修改服务器上的文件,从而导致服务器被上传 webshell。

大部分网站并非未授权就可以访问,如果未经授权去访问资源会提示 401 Unauthorized ,而验证方式是通过 basic 认证,在 header 中添加如下格式:

Authenticate: Basic YWRtMW46cEBzJHdvcmQ=

其中 amlnc2F3OmppZ3Nhdw== 是 base64 编码,编码前的内容是 adm1n:p@s$word,也就是认证需要的账号密码。

漏洞发现过程

下面就是我发现漏洞的过程:

1、首次访问时,未加任何认证信息,返回信息认证错误的信息,如图:

2、由于是账号密码错误,所以尝试去找找看,webdav 的默认账号密码是什么,说不定目标没有改呢:

3、使用 burp 对默认账号密码的组合,进行 base64 编码,然后尝试认证,发现账号密码还是不对:

4、在一个博客中发现 xampp 的默认 webdav 的账号密码:

5、再次使用 burp 编码之后,进行尝试,发现认证成功了:

尝试 webdav 文件,返回 301 自动跳转 webdav 目录:

尝试 webdav 目录,返回 200 状态码:

6、接下来使用 OPTIONS 方法来看看目标允许那些方法,发现允许 PUT 方法:

7、那么就使用 PUT 方法来上传一个文本文件试试,发现创建成功了:

8、尝试上传一个 html 文件,填入 xss 的 payload,也成功上传:

访问验证一下:

9、由于目标网站是 xampp 搭建的 php 网站,所以尝试上传一个 php 的 webshell:

访问发现 phpinfo 运行结果:

10、当我再次上传 php 文件时,返回 204 状态码,可能是因为文件已存在,没有新创建文件,而是重写了文件:

11、然而,在验证 shell 是否可用时,访问链接:

https://www.mytarget.com/webdav/Jerry.php and added *?JerryCommand=id*

发现命令执行成功:

12、接下来尝试反弹 shell,参考反弹 shell 的备忘录:

https://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet

13、在 vps 上使用 nc 监听一个端口:

14、看看目标系统上是否存在 python:

使用 which python 命令能告诉我们目标系统使用的是 python2 还是 python3。

15、接下来使用 python 的反弹 shell payload 进行尝试,反连我的服务器:

vps 上获得了一个 shell,说明反弹 shell 成功:

到这里整个测试就结束了。

这个漏洞是怎么发现的?

1、首先目标启用了 webdav,并且使用了默认的账号密码,如果不是默认账号密码,那么就需要进行暴力破解,但是爆破的成功率不见得有多高,如果无法获取账号密码,则无法进行后续的测试。

2、webdav 允许所有方法,尤其是比较危险的 PUT、DELETE、COPY 等

安全建议

1、不要使用默认的认证信息

2、在无法禁用 webdav 的情况下,禁止 PUT 等危险方法

shellwebdav
本作品采用《CC 协议》,转载必须注明作者和本文链接
再开始今天的内容之前,首先理解一个东西 WebDavWebDAV 一种基于 HTTP 1.1协议的通信协议。命令能告诉我们目标系统使用的是 python2 还是 python3。
narak靶场实战详解
2022-04-24 07:27:59
靶机:https://download.vulnhub.com/ha/narak.ova 注释:使用vmwarworkstation运行虚拟机 难度:中+ 目标:取得root权限+2Flag 网络配置:这里简单介绍下我的网络配置,靶机和Kali都用的VMware,然后使用nat连接,开启了dhcp。
一个内网安全攻防的知识仓库
都不认识的话默认情况下是plain/text处理。答案是认识的后缀名们都被记录到一个叫mime.types的文件中了。这里要说的是有些情况下的mime.types没有提供对php的解析方法,对php的解析规则放在另一个文件,Windows下在/conf/extra/httpd-php.conf。
信息搜集:开源情报信息收集、创建企业密码字典进入内网:基于企业弱账号漏洞、基于系统漏洞进入、网站应用程序渗透隐匿攻击:Command and Control、代理内网跨边界应用:内网跨边界转发、内网跨边界代理穿透、shell反弹等
作为一个加密货币挖矿软件,StripedFly常年隐藏在一个支持Linux和Windows的复杂模块化框架后面。
F-vuln(全称:Find-Vulnerability)是为了自己工作方便专门编写的一款自动化工具,主要适用于日常安全服务、渗透测试人员和RedTeam红队人员,它集合的功能包括:存活IP探测、开放端口探测、web服务探测、web漏洞扫描、smb爆破、ssh爆破、ftp爆破、mssql爆破等其他数据库爆破工作以及大量web漏洞检测模块。
MSSQL注入和漏洞利用姿势总结
基础介绍Microsoft SQL Server 是微软开发的关系型数据库管理系统。作为数据库服务器,它是一种软件产品,主要功能是根据其他软件应用程序的请求存储和检索数据,这些应用程序可以在同一台计算机上运行,也可以在网络上的另一台计算机上运行。SQL Server 默认开放的端口是 TCP 1433。判断数据库类型/*?数据库中独有的数据表,如果页面返回正常即可表示为?为便于管理数据库中的权限,SQL Server 提供了若干角色,这些角色是用于对其他主体进行分组的安全主体。
VSole
网络安全专家