0x01哥斯拉混淆代码分析 通过burp代理流量会发现哥斯拉在测试连接时会发送两个包 第一个包用于服务器上创建Session,将哥斯拉的模块函数存储在Session中(混淆流量行为首先发生在第一个包发送之前) 第二个包的作用就是检查木马是否能连接 通过全局搜索测试连接的unicode编码字符串(\u6d4b\u8bd5\u8fde\u63a5)定位逻辑代码位置,定位在\core\ui\compon
0x00 前言 本文的诞生是因为刚打的rctf nosandbox,打的非预期解法,本文主要讨论的在表达式过滤了new(、get、forName的情况下如何进行利用。 0x01 Jexl 基础介绍 Jexl 简介 Apache Commons JEXL(Java Expression Language)是一个开源的表达式语言引擎,允许在Java应用程序中执行动态和灵活的表达式。JEXL旨在提供一种
XML External Entity Injection,全称为 XML 外部实体注入。在一篇文章中看到可以通过上传xlsx来实现xxe攻击,一搜发现是一个非常老套的攻击方式了。在搜到的文章中有一个令人在意的点,作者提到“由于是java的站,所以利用ftp协议读取文件”,java站和ftp协议有什么关系?此时也才发现之前对于xxe攻击几乎是只了解原理,完全不清楚实际利用的一些情况。于是决定学习
这两个方法为 PHP 中的方法, 参见 serialize 和 unserialize 的官方文档. 入门 我们先看看方法的序列化之后的字符串的格式是怎么样的: 首先每一个序列化后的小段都由; 隔开, 使用{}表示层级关系 数据类型 提示符 格式 字符串 s s:长度:"内容" 已转义字符串 S s:长度:"转义后的内容" 整数 i i:数值 布尔值 b b:1 =>
Python反序列化-pyyaml模块 反序列化问题又为对象注入问题,python中反序列化问题,除了pyyaml之外,还有一个pickle也存在反序列化问题,本文只涉及pyyaml包 YAML是一种直观的能够被电脑识别的的数据序列化格式,相当于pickle php反序列化容易被人类阅读,类似于XML,但是语法比XML简单得多,开发过程中易当作解析配置文件使用,但同样也存在一定的安
栅栏加密免杀木马 0x01思路 以栅栏加密的方式拼接出assert敏感函数,与$_POST['ming']连接,形成assert($_POST['ming'])这种木马。 在phpstudy中测试发现拼接assert函数这种姿势只能在php版本<=7.0.9使用 0x02栅栏加密算法 栅栏加密是一种普通的置换加密算法,仅仅改变位置而不做替换,加密过程是将N个明文按M个字符进行分组(M&l
前提概要 前段时间看到了1ue师傅的poc:https://github.com/luelueking/RuoYi-v4.7.8-RCE-POC 恰好最近在学习codeql,拿来练手了 下载最新版本的https://github.com/yangzongzhuan/RuoYi/releases/tag/v4.7.8,并安装依赖 官方文档:https://doc.ruoyi.vip/ruoyi/
什么是随机 在通常的说法中,随机性是指事件中明显实际缺乏可预测性。事件、符号或步骤通常没有顺序 举个例子,比如我们在抛硬币,硬币的结果取决于很多因素,比如说我们施加的力,空气阻力,引力等,但是如果我们知道影响硬币的所有因素,并且知道这些因素准确的值,我们就能预测硬币落下时,是正面还是反面 伪随机 假如我们有一个算法,我们给他设置一个初始值,然后用这个算法生成下一个数字,然后再用生成的这个数字继续
前言 论文名称:tabby:Automated Gadget Chain Detection for Java Deserialization Vulnerabilities 发表期刊:IEEE DSN(CCF B) Tabby的源码分析和实际应用已经有很多师傅分析过了,本文通过阅读Tabby作者发表的论文,简单分析一下Tabby解决了什么问题、主要算法思想、工具的优势和不足等等。如有错误,还请斧
本次分析使用的java版本为jdk_8u191 JNDI(Java Naming and Directory Interface)是一个应用程序设计的 API,一种标准的 Java 命名系统接口, 其中rmi(远程方法调用)和ldap(轻量级目录访问协议)在低版本存在远程加载类导致命令执行, RMI:6u132, 7u122, 8u113,LDAP:11.0.1, 8u191, 7u201, 6u
引言 “离地攻击”(Out-of-Band (OOB) Attack)是一种网络攻击技术,它利用网络协议的一些特定特性或漏洞,将攻击数据(通常是恶意指令或数据)传输到一个受害系统上,并从受害系统上以某种形式获取响应。与传统的攻击方式不同,离地攻击通常不直接依赖于与目标系统之间的直接交互,而是利用系统与其他网络实体进行通信的能力。 离地攻击可以利用各种不同的网络协议和服务,包括但不限于HTTP、DN
前言 该题是2023春秋杯冬季赛web的一道题,我们拿到pickle反序列化漏洞时的一般思路是通过重写reduce方法达到rce,当过滤多且对字符数量有限制,似乎手写opcode不能破局,笔者通过做了该题,认识到渲染模板的危害和精妙,故将此文件分享给大家,如有不对,大家多多指教。 考点 披着php皮的python加任意文件读取加格式化字符串泄露key加session伪造加文件上传加Python原生
0x01 前言 相信大家在刚开始学习java反序列化漏洞时都会听到过以下的说法: 自定义序列化过程: 在反序列化时重写一个类的readObject方法,在反序列化的过程中调用到的就是我们重写的这个readObiect方法. 今天就这个问题深入的讨论一下! 故事的起因 下午群里有个朋友问了一个问题:java反序列化时重写的readObject()为什么要写成私有的才会执行,改成public就不行了
引言 在人工智能迅速发展的今天,聊天机器人和语言模型在各个领域的应用越来越广泛。然而,要充分发挥这些模型的潜力,关键在于如何设计有效的提示词。一个精心设计的提示词不仅可以得到更准确、更有用的回答,还能节省时间和提高工作效率。本文将详细探讨如何设计高质量的提示词,以确保从AI中获得最佳的回答,特别是在网络安全领域。 第一部分:理解AI语言模型 1.1 什么是AI语言模型? AI语言模型是一种通过大量
RCE回显主要两个步骤: exec执行后获取InputStream InputStream转换成String EL表达式注入回显的关键点 1. 获取对象 EL表达式注入比SpEL表达式注入复杂一点,例如不能通过new创建对象 也就是说,要创建一个对象,只能通过无需new对象就能调用的方法,例如static修饰的方法 或者,直接用反射就能够获取对象了 这里又有些限制,不过问题不大:获取类必