23、Web攻防——Python考点CTF与CMS-SSTI模板注入PYC反编译

news/2024/7/5 1:55:27

文章目录

  • 一、PYC文件
  • 二、SSTI

在这里插入图片描述

一、PYC文件

pyc文件:python文件编译后生成的字节码文件(byte code),pyc文件经过python解释器最终会生成机器码运行。因此pyc文件是可以跨平台部署的,类似java的.class文件,一般python文件改变后,都会重新生成pyc文件。

pyc文件反编译平台:

  • https://tool.lu/pyc

实战中一般拿不到pyc文件,仅CTF。

二、SSTI

SSTI漏洞资料

在这里插入图片描述
模板引擎:模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,利用模板引擎来生成前端的html代码,模板引擎会提供一套生成html代码的程序,然后只需要获取用户的数据,然后放到渲染函数里,然后生成模板+用户数据的前端html页面,然后反馈给浏览器,呈现在用户面前。

SSTI:服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。
凡是使用模板的地方都可能会出现 SSTI 的问题,SSTI 不属于任何一种语言,沙盒绕过也不是,沙盒绕过只是由于模板引擎发现了很大的安全漏洞,然后模板引擎设计出来的一种防护机制,不允许使用没有定义或者声明的模块,这适用于所有的模板引擎。

再次理解什么是SSTI?
以淘宝为例,随便访问一个不存在的路径,都会有一个报错页面,而且基本上都是一样的。这就是说明存在模板。
在这里插入图片描述

如果报错页面的url或者post数据中,有一个参数你是可以控制,且会显示在报错页面中,那么就有可能存在SSTI模板注入。
python中{{xxx}},xxx可能会被执行。

SSTI安全问题在生产环境中产生?

  • 存在模板引用的地方,如404错误页面显示;
  • 存在数据接收引用的地方,如模板解析获取参数数据。

如何判断存在SSTI漏洞?

  • 查看源代码,是否使用框架包;
  • 是否使用类似flask.render.template.string()函数
  • 在可控参数中输入类似/{{2-2}},看界面是否解析2-2.
    在这里插入图片描述

发现SSTI漏洞之后,思路就是命令执行和文件读取。
黑盒里面基本上找不到SSTI模板注入。

参考资料:
https://blog.csdn.net/houyanhua1/article/details/85470175
BUUCTF
苹果CMS
ctfer 从0到1


http://lihuaxi.xjx100.cn/news/1905581.html

相关文章

Android Studio: 解决Gradle sync failed 错误

文章目录 1. 前言2. 错误情况3. 解决办法3.1 获取gradle下载地址3.2 获取gradle存放目录3.3 替换并删除临时文件3.4 触发Try Again 4. 执行成功 1. 前言 今天调试项目,发现新装的AS,在下载gradle的过程中,一直显示连接失败,Gradl…

ElasticSeach--springboot中使用

目录 一.引入依赖 二.配置链接信息 三.索引库测试 1.创建索引库 2.查询索引库 3.删除索引库 四.文档测试 1.添加文档 2.修改文档 3.删除文档 4.查询具体文档 5.批量添加文档 五.查询测试 1.查询所有 2.根据属性term匹配查询 3.分页查询 4.排序 5.过滤属性 6.boo…

Java--包,访问修饰符,多态数组,==和equals,hashcode,toString

包 同一个包里面不能有重复的类,不同的包可以有相同的类,包和包之间互不干涉。一个包下面有很多的类。 包的命名规则: 只能包含数字,字母,下划线,小圆点,但不能用数字开头,不能是关…

C语言—每日选择题—Day57

指针相关博客 打响指针的第一枪:指针家族-CSDN博客 深入理解:指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 下面程序段() char *str[] {"ABC", "DEF", "GHI"}; puts(str[1]); A:A…

掌握pip的基本命令和高级用法:轻松管理Python包

掌握pip的基本命令和高级用法 一、简介二、安装和配置pip三、基本命令和用法3.1、安装和卸载包3.2、包管理3.3、包依赖管理3.4、虚拟环境管理 四、高级用法4.1、自定义pip的配置4.2、使用requirements.txt文件管理项目依赖4.3、创建和发布自己的Python包4.4、使用pip下载非Pyth…

开展人事档案数字化需要注意什么

人事档案数字化是指将传统的纸质人事档案转化为数字形式,并通过信息技术进行管理和存储的过程。这种方式可以提高人事档案的管理效率、减少文件存储空间,方便查询和检索信息,同时减少人为错误和损毁风险。 专久智能认为开展人事档案数字化需要…

C#文件操作(一)

一、前言 学习心得:C# 入门经典第8版书中的第20章《文件》 二、操作文件的相关类 在C#应用程序中Syste.IO名称空间包含用于在文件中读写数据的类。在此我列举一下File、Directory、Path、FileInfo、DirectoryInfo、FileSystemInfo、FileSystemWatcher。其中在Syste…

CTF-PWN-堆-【use after free-2】

文章目录 fheap libc 2.23 64位检查maincreatedelete 思路覆盖目标函数的指针printf内部调用覆盖的函数前调用 printf时的栈实际去的函数的地方查找当前版本对应的libc_start_main和system计算出system的libc基地址exp fheap libc 2.23 64位 检查 main 多层while,…