SSTI
Server Side Template Injection(服务端模板注入)
1 | from flask import Flask, request |
跑起来:

测试payload:
1 | <http://127.0.0.1:5000/?name=guest.{{(9999-1111)}}> |

1 | http://127.0.0.1:5000/?name=guest.{{'aaa'.upper()}} |

问题代码:
1 | t = Template("Hello " + name) |
我们把断点打在return

第一个跟进到的是asyncsupport.py
在self变量中我们看到其实注入poc已经解析完成了{{9999-1111}}

因此我们跟进前面的

问题出在t = Template("Hello " + guest):
其将"Hello " + guest传入jinja2.Template并解析输出Hello guest.8888再使用render方法渲染