TPCTF2025复现(全)
字数 1547 2025-08-30 06:50:28
TPCTF2025 复现技术解析
1. Baby Layout 题目解析
题目特点
- 对
postid参数有限制 - 使用异步请求处理
report路由 - 设置5秒超时
- 将flag注入到Cookie中
- 限制访问频率为每分钟2次
- 使用session保存会话状态
- 字符长度限制为500
漏洞利用
-
XSS绕过:
- 使用DOMPurify进行XSS过滤
- 在生成POST阶段将
{{content}}替换 - 可以拼接绕过过滤
-
POC构造:
- 利用DOMPurify不会消除
img标签的特性 - 注意注入时机是在生成post时进行替换
- 利用DOMPurify不会消除
2. Safe Layout 题目解析
与Baby Layout的区别
- 设置了
ALLOWED_ATTR: []禁用所有HTML属性 - 但自定义属性仍然可以使用
绕过方法
<div custom-attribute="malicious"></div>
3. Safe Layout Revenge 题目解析
新增限制
ALLOW_ARIA_ATTR: false:禁止ARIA属性ALLOW_DATA_ATTR: false:禁止data-*自定义属性
绕过思路
- 利用DOMPurify特定版本漏洞
- 参考文章:https://ensy.zip/posts/dompurify-323-bypass/
- 利用
{{content}}置空特性进行穿插绕过
4. Supersqli 题目解析
环境特点
- 使用SQLite3数据库
- 严格的黑名单过滤
- 需要通过密码更新获取flag
关键文件
go文件:作为代理层进行WAF过滤views.py:实际执行查询
注入技术
-
时间盲注:
- 构造延时数据包验证漏洞存在
-
Quine注入:
- 查询语句和查询结果保持一致的特殊注入手法
- 将MySQL示例适配为SQLite3语法
示例POC
SELECT REPLACE(REPLACE('SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS "quine"',CHAR(34),CHAR(39)),CHAR(36),'SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS "quine"') AS "quine"
5. Thumbor 1 题目解析
环境分析
- 仅提供Dockerfile
- 需要从GitHub拉取应用源码
- 提示不是0day漏洞
漏洞发现
- 检查README发现"unsafe"相关可疑描述
- 可能存在的漏洞:
- ImageMagick任意文件读取漏洞
- 参考:https://www.freebuf.com/vuls/359193.html
利用方法
- 使用P牛脚本生成特殊PNG文件
- 保存为flag.png进行利用
6. Thumbor 2 题目解析
与Thumbor 1的区别
- 题目描述与Thumbor 1无关
- 同样不是0day漏洞
- 增加了更多文件
漏洞利用
-
官方WP参考:
- https://www.canva.dev/blog/engineering/when-url-parsers-disagree-cve-2023-38633/
-
利用技术:
- 使用libsvg进行XInclude回退实现任意文件读取
-
POC示例:
<xi:include href="file:///etc/passwd" xmlns:xi="http://www.w3.org/2001/XInclude"/>
注意事项
- 外部文件加载后内容无法覆盖更新
- 如使用2.svg,修改内容后仍加载原始内容
7. Are-You-Incognito 题目解析
题目要求
- 必须是一个HTTP服务才能被处理
- 使用visit.js加载指定扩展
- 设置5秒超时
- 每分钟只允许2次请求
关键代码分析
if (browser.extension.inIncognitoContext) {
// 访问/flag路由
}
攻击方法
-
DOM Clobbering攻击:
- 劫持覆盖全局变量
- 绕过
inIncognitoContext检查
-
实现步骤:
- 创建伪造的extension对象
- 设置
inIncognitoContext为true - 提供/flag路由供扩展访问
示例实现
<script>
// 伪造extension对象
window.browser = {
extension: {
inIncognitoContext: true
}
};
</script>
总结
本系列题目涵盖了多种Web安全技术:
- XSS绕过技术(包括DOMPurify绕过)
- SQL注入高级技巧(Quine注入)
- 文件读取漏洞利用
- DOM Clobbering攻击
- 各种安全限制的绕过方法
每道题目都考察了不同的安全知识点,需要结合具体环境特点进行分析和利用。