baby_flask
Jinja2 模板的 SSTI , 过滤的东西有点多.
1 | Hi young boy!</br> |
拼凑数字
参考: https://xz.aliyun.com/t/9271
过滤了宽字符,count和length, 找了很多过滤器没找到什么可以用的. 最后发现可以用Unicode绕过
别的思路:
参考: https://blog.csdn.net/rfrder/article/details/113866139
可以使用 (xxx).index(x)来取到数字. .
被过滤, 可以使用 (xxx)|attr(index)(x)
来绕过
chr和eval
参考: https://blog.csdn.net/rfrder/article/details/113866139
1 | {%set%20pp=(dict(p=a,op=b)|join)|join()%} |
坑点是 x.chr
和x.eval
, 需要写成 x|attr('__getitem__')('chr')
的形式绕过.
, chr
和eval
也都需要分别获得.
命令
用chr配合Unicode转换为需要字母, 残次脚本,还需要手动调整输出
1 | def trans2u(payload): |