WEB安全之Python

WEB安全之python

python-pyc反编译

python类似java一样,存在编译过程,先将源码文件*.py编译成

*.pyc文件,然后通过python解释器执行

  • 生成pyc文件

    创建一个py文件随便输入几句代码(1.py)

    image-20231122212024225

    通过python交互终端

    >>>import py_compile
    >>>py_compile.compile("1.py")
    

    image-20231122212201574

    image-20231122212244806

    文件对应的目录会生成一个文件夹,里面就是pyc文件

    image-20231122212403745

    或者使用python -m py_compile 1.py

    python -m compileall 存放py文件目录

  • 反编译pyc,将pyc文件转换为py文件

    安装uncompyle库

    命令行

    uncompyle6  1.pyc > 2.py
    

    此方法尝试没有成功

    或者使用在线工具

    python反编译 - 在线工具 (tool.lu)

ssti漏洞

本质上属于一种注入类型漏洞

出现原因:没有对用户输入的参数做校验,代码不够严谨,存在可控参数被用户调用

出现场景:使用模板引擎开发的web应用,使得攻击者可以利用原生模板的语法进行攻击,php中tp,java中spring,python中Flask框架等均可能出现此漏洞,多见于插件,页面模板,包括404页面

判断漏洞:将payload载入可传参的地方,通过页面渲染的结果进行判断payload是否被编译

搭建测试环境:python3.11.5 + vscode + flask

from flask import Flask, render_template_string, requestapp = Flask(__name__)@app.route('/')
def index():char = request.args.get('key')html = '<h1>Welcome, %s !</h1>' % charreturn render_template_string(html)if __name__ == '__main__':app.run(debug=True)

image-20231125143316289

相关利用的魔术方法

通过

_class_查看当前对象的当前类
_base_查找当前类的父类
_mro_查找当前类的所有继承类
_subclasses_查找父类下的所以子类
_init_查看类是否重载,出现wrapper表示没有重载
_globals_以字典的形式返回当前对象的全部全局变量
_builtins_提供对python的所以内置标识符的直接访问

可以构造一些危害较大的payload

ls__ | 以字典的形式返回当前对象的全部全局变量 |
| _builtins_ | 提供对python的所以内置标识符的直接访问 |

可以构造一些危害较大的payload

image-20231125145354010

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/231930.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

堆在排序中的应用

堆排序 1、堆排序原理 堆排序是利用到了堆这种数据结构&#xff0c;我们首先回顾一下二叉堆的特性&#xff1a; 最大堆的堆顶是整个堆中的最大元素。最小堆的堆顶是整个堆中的最小元素。 以最大堆为例&#xff0c;如果删除一个最大堆的堆顶&#xff08;并不是完全删除&…

网络安全—小白自学

一、网络安全应该怎么学&#xff1f; 1.计算机基础需要过关 这一步跟网安关系暂时不大&#xff0c;是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通&#xff0c;可以与学习其他课程同步进行。 2.渗透技…

unity学习笔记12

一、物理系统 如何让一个球体受到重力的影响&#xff1f; 只要给物体添加刚体组件&#xff08;Rigidbody&#xff09;&#xff0c;就可以使其受到重力影响 1.刚体&#xff08;Rigidbody&#xff09;&#xff1a; 刚体是一个组件&#xff0c;用于使游戏对象受到物理引擎的控制。…

什么是大数据测试?有哪些类型?应该怎么测?

随着目前世界上各个国家使用大数据应用程序或应用大数据技术场景的数量呈指数增长&#xff0c;相应的&#xff0c;对于测试大数据应用时所需的知识与大数据测试工程师的需求也在同步增加。 针对大数据测试的相关技术已慢慢成为当下软件测试人员需要了解和掌握的一门通用技术。…

怎么添加留言功能_为公众号增添互动魅力

一、了解留言功能的重要性 在当今的互联网时代&#xff0c;互动和沟通变得尤为重要。留言功能作为网站或应用的重要组件之一&#xff0c;能够让用户与网站或应用进行实时的互动和交流&#xff0c;从而提高用户参与度和活跃度。通过留言功能&#xff0c;用户可以随时随地发表自…

Pandas进阶:20个实用的Pandas函数的基本使用

1. ExcelWriter 很多时候dataframe里面有中文&#xff0c;如果直接输出到csv里&#xff0c;中文将显示乱码。而Excel就不一样了&#xff0c;ExcelWriter是pandas的一个类&#xff0c;可以使dataframe数据框直接输出到excel文件&#xff0c;并可以指定sheets名称。 df1 pd.Da…

Motion Plan之带动力学约束路径搜索

Motion Plan之搜索算法笔记 Motion Plan之基于采样的路径规划算法笔记 为什么要动力学规划&#xff1a; 前面几章介绍的路径规划&#xff0c;我们只是认为机器人是质点&#xff0c;这节课要说的就是&#xff0c;如何在考虑机器人的运动学模型下再去找一个安全可行的路径。考虑…

网络协议系列:TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手

TCP三次握手&#xff0c;四次挥手的全过程&#xff0c;为什么需要三次握手&#xff0c;四次挥手 一. TCP三次握手&#xff0c;四次挥手的全过程&#xff0c;为什么需要三次握手&#xff0c;四次挥手前言TCP协议的介绍三次握手三次握手流程&#xff1a;1. A 的 TCP 向 B 发送 连…

「Verilog学习笔记」状态机-非重叠的序列检测

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 根据题意 定义一个五位的中间变量lock 每次始终上升沿来临时 判断当前寄存器的低四位新数据是否等于10111 如果等于 则下一时刻lock应被清空 否则lock等于当前的lock的低四…

从0开始学习JavaScript--JavaScript 工厂模式

JavaScript 工厂模式是一种强大的设计模式&#xff0c;它提供了一种灵活的方式来创建对象。本文将深入讨论工厂模式的基本概念、多种实现方式以及在实际应用中的各种场景。 工厂模式的基本概念 工厂模式旨在通过一个函数或方法来创建对象&#xff0c;而不是通过类直接实例化。…

Ubuntu16.04.4系统本地提权实验

目录 1.介绍&#xff1a; 2.实验&#xff1a; 3.总结&#xff1a; 1.介绍&#xff1a; 1.1&#xff1a;eBPF简介&#xff1a;eBPF(extendedBerkeleyPacketFilter)是内核源自于BPF的一套包过滤机制&#xff0c;BPF可以理解成用户与内核之间的一条通道&#xff0c;有非常强大的…

RK3568平台开发系列讲解(Linux系统篇)通过OF函数获取设备树节点实验

** 🚀返回专栏总目录 文章目录 一、获取获取设备树节点二、驱动程序沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过OF函数获取设备树节点实验 一、获取获取设备树节点 在 Linux 内核源码中提供了一系列的 of 操作函数来帮助我们获取到设备树中编写的…