记录一次CTF web题目解决过程

张开发
2026/5/23 21:56:51 15 分钟阅读
记录一次CTF web题目解决过程
今天在某CTF网站做练习的时候发现这个web题还蛮经典的涉及的点也不错因此想借此写一篇文章讲解一下。目录审题思路测试过程验证SSTI漏洞利用漏洞总结本题涉及漏洞 SSTI服务端模板注入通用CWE编号CWE-1336审题思路我们先看这个题目于是打开主页面后发现也没啥特别的在搜索结果的页面尝试跑一下sqlmap也是没有找到注入点。有个员工登录页面同样没有弱口令。回看题目有提示告诉我们用dirsearch有惊喜跑了一下后果然有东西这个网站存在git目录泄露对于测试人员来说有了git目录便有了完整的源代码历史配置文件开发者的提交记录可能包含的敏感数据瞄准这个方向我们可以接着进行下去了测试过程第一步我先用git_dumper命令将这个git目录下载下来看到了这几个重要的文件app.py config.py requirements.txt static templates进入app.py中看到这个重要的信息是的我们得到了管理员的账号密码 admin Nexusadmin2025!#同时通过分析此文件中内容我们知道了dashboard是控制室入口但事实是我们直接登录会显示这个错误该账户已启用多因素认证 (MFA)请使用硬件密钥登录。然而在config.py中我们发现了一个旧的Key因此我们可以尝试使用 flask-unsign工具构建一个session进行登录打开burp抓包工具访问dashboard页面添加Cookie: session值可以看到返回了正确登录的结果同时我们发现一个问题这个页面会把访客的名字直接显示出来我们可以大胆猜想以下这个页面会不会存在SSTI漏洞验证SSTI漏洞我们可以进行如下测试当我们访问/dashboard?u{{3*3}}可以看到返回了数值9是的我们输入的被服务器执行了这是服务器端模板注入漏洞利用漏洞因此利用这个漏洞我们接下来可以使用tplmap进行自动化测试(是不是很熟悉sql注入有sqlmapSSTI有tplmap)简单验证一下执行whoami返回了root执行 ls -la /命令可以看到存在flag文件直接使用cat /flag,成功得到flag总结我们的测试主要包含了如下过程使用dirsearch发现了git目录泄露将目录下载下来通过分析源文件发现了dashboard的功能以及发现了key用来构造session使用burp抓包工具验证session的可行性以及SSTI的存在借助tplmap工具进行--os-shell交互性执行命令找到了flag文件

更多文章