Java内存马-基础篇
背景知识Java Web三大件Java Web三大件指的是:Servlet, Filter, Listener。
在 JavaWeb 开发中,Servlet、Filter、Listener 是三个重要的组件,它们可以用 电影院的观影体验 来比喻:
1. Servlet(电影播放)—— 处理请求的核心
Servlet 就像 电影播放系统,用户(浏览器)买票(发送请求),影院(服务器)根据用户的选择播放对应的电影(处理请求并返回数据)。
例如,你在网站上提交了一个登录请求,Servlet 会负责接收你的信息、校验密码,然后返回结果。
2. Filter(检票员)—— 过滤请求和响应
Filter 就像 影院的检票员,在你进入影厅前,检查你是否有票(权限验证)、是否带了违禁品(过滤不合法内容),如果没问题才让你进去。
在 JavaWeb 中,Filter 可以拦截请求或响应,比如:
进行权限验证(检查是否登录)
处理编码(防止乱码)
记录访问日志
3. Listener(电影院的工作人员)—— 监听全局事件
Listener 就像
影院的工作人员
,负责监听电影院内的各种 ...
JNDI注入漏洞
JNDI基础概念JNDI 全称为 Java Naming and Directory Interface,即 Java 名称与目录接口。它是一组应用程序接口,为开发人员查找和访问各种资源提供了统一的通用接口,用来定位用户、网络、机器、对象和服务等各种资源。
我们可以用JNDI来定位数据库服务或一个远程Java对象。
JNDI 在 jdk 里面支持以下四种服务
LDAP:轻量级目录访问协议
通用对象请求代理架构(CORBA);通用对象服务(COS)名称服务
Java 远程方法调用(RMI) 注册表
DNS 服务
这样讲JNDI还是很抽象,下面来看一个比喻:
比喻:电话簿(JNDI)和电话号码(资源)想象一下,JNDI 就像是一个 电话簿,而 电话簿里的电话号码 就是你需要查找的 资源(比如数据库连接、远程服务等)。
电话簿(JNDI):
它是一个 目录服务,用来存储和管理各种资源的“名字”和“地址”。
比如,你可以通过名字(如“数据库连接”)找到对应的资源(如数据库的地址和配置)。
电话号码(资源):
这些是你需要的东西,比如数据库连接、远程服务、配置文件等。
你不需要记住具体 ...
CISCN2025&长城杯回忆录及复盘
3.15-3.16比赛现场
我TM来辣!!
《油专牌面》
巨好喝,下午五点多:抹茶+麦当劳中薯,结果没过一会儿去吃自助了。。
这家自助的雪花牛肉无敌!
姬哥强者の步伐
凯旋
希望当事人已经拿下了。。
《柏林幼儿园》(雾)
赛后总结(未完待续)这块内容等到有wp出来之后再补上。
16号上午ADWP爆0了,修也修不上,打也打不出来。。
下午渗透的时候,我这里又出问题了,蚁剑坏掉了,kali虚拟机连不上目标ip(后来我重置了一下虚拟机网络)
就可以了。
现在急需继续学Java,把Jackson链子看掉就去学内网渗透,动手实践还是太少了。。就上个寒假和姬哥打了几次春秋云镜,而且我还没复现完,这些作为接下来几周的任务吧。
AWDPccfrum由于已经没有原题的环境了,这里就复现一下思路。
思路关注到admin.php的部分源码,漏洞点在于这里的file_get_contents函数,因为过滤不严导致这里可以实现目录穿越而造成文件读取。
scandir()函数Demo:
123456789101112131415161718192021222324<?php$d ...
ThinkPHP v5.0.24反序列化漏洞复现
源码配置及前言因为本人代码审计能力偏弱,想从PHP框架漏洞开始上上手。于是先挑ThinkPHP来弄,预期是收获一些框架审计的默认思路及技巧。
源码下载:
Thinkphp5下载_Thinkphp5框架免费下载V5.0.24 - 系统之家
我之前搜了好多源码下载,下载出来的东西都没有这个系统目录:
漏洞分析链子分析该漏洞需要二次开发实现了反序列化才可以使用,所以我们模拟下漏洞环境,在/application/index/controller/Index.php添加:
12345678class Index{ public function index() { echo "Welcome thinkphp 5.0.24"; unserialize(base64_decode($_GET['a'])); }}
链子的终点是触发Output类下的__call魔术方法进行RCE:
tips:用PHPStorm去框架中找类的 ...
2024四川省赛复盘
前言3.16号又要打AWDP了,去年10月的时候打省赛,AWDP被Java题按在地上锤,代码都还看不懂。这几天亡羊补牢一下。
由于我没有题目附件,这里只补充写写自己不懂的理论知识。
ez_serializebreak源码里涉及到了Spring Boot框架的代码知识:
现在通过这些源码恶补一下知识
1234567891011121314151617181920212223242526@PostMapping({"/read"}) //定义路由@ResponseBodypublic String serialize(@RequestParam(name = "data") String data) { //接受data字段,不论GET还是POST,送给data变量 try { StringBuilder output = new StringBuilder(); if (data.isEmpty()) { return "参数 ...
Log4j2漏洞
About Log4j2Log4j2 是一个日志管理工具,主要用于收集、格式化、存储和分级日志。
123456789101112131415161718import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;public class SimpleLog4j2 { // 创建 Logger 实例 private static final Logger logger = LogManager.getLogger(SimpleLog4j2.class); public static void main(String[] args) { // 记录不同级别的日志 logger.trace("这是 TRACE 级别的日志(最详细)"); logger.debug("这是 DEBUG 级别的日志(用于调试)"); logger.info("这是 IN ...
漏洞复习-XXE
XXE漏洞简介XXE全称:XML external entity injection,即XML外部实体注入漏洞。
漏洞成因:解析时未对XML外部实体加以限制,导致攻击者将恶意代码注入到XML中,导致服务器加载恶意的外部实体引发文件读取,SSRF,命令执行等危害操作。
About XML
XML 指可扩展标记语言(EXtensible Markup Language)。
XML用于传输数据
XML长这样:
1234567891011<?xml version="1.0"?> <library> <book genre="fantasy"> <title>The Lord of the Rings</title> <author>J.R.R. Tolkien</author> </book> <book genre="science fiction"> <title& ...
shiro反序列化
前言Apache Shiro 是一个强大且易于使用的 Java 安全框架,提供了身份验证、授权、会话管理和加密等安全功能。
Shiro框架在1.2.5之前产生的反序列化漏洞被称为:shiro-550
在1.2.5之后(1.2.5, 1.2.6, 1.3.0, 1.3.1, 1.3.2, 1.4.0-RC2, 1.4.0, 1.4.1)的反序列化漏洞被称为:shiro-721
环境配置本人近几天一直头疼于怎么配置这个shiro550的源码环境,这里我给出详细的步骤,以免后人再踩进我踩过的大坑…
首先,下载p神的shiro源码:
https://github.com/phith0n/JavaThings/
下载好之后用IDEA打开这个shirodemo。
我的JDK版本:8u66,正常来说pom.xml里面是不会爆红的。
接着去配置Tomcat,这个步骤比较简单,网上教程也很多,这里不多赘述,推荐:
IntelliJ IDEA中配置Tomcat(超详细)_intellij idea配置tomcat-CSDN博客
我下载的是9.0.100版本。
在项目中配置
接着来到项目结构的工件这里: ...
Java安全基础及CC链
详情请见我的语雀:
https://www.yuque.com/xiaofuc/gwq0yd/xanzsbn4b7u83wzv