Tomcat Header长度限制绕过
起因是在面试的时候被问到在打shiro的时候Header长度受限的时候该如何解决,因为没有了解这方面导致没答上来,赶紧来补一下。
Tomcat Header长度限制tomcat的请求头是有一个默认长度限制的,我们可以在tomcat目录/webapps/docs/config下的http.html文件中找到说明
这里说明了默认的header大小是8kb,这个是写死在代码里面的,下面调试可以看到
我们可以用javaee起一个tomcat服务,然后传一个很长的header
可以看到这里就给我们报了一个header too large
我们去看idea的报错
可以看到是在哪里发生的报错,去调试一下他的源码
想要调试源码可以根据tomcat的版本引入下面的依赖,比如我的版本是8.5.50
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-catalina</artifactId> <version>8.5.50&l ...
JDBC Attack之PostgreSQL
起因是p神在星球中发了一个有关pgsql attack的小挑战,有关pgsql相关的attack一直没看,这次来顺便学习一下
挑战的项目地址:https://github.com/phith0n/code-breaking/tree/master/2025
背景介绍CVE-2022-21724是在在 PostgreSQL 数据库的 jdbc 驱动程序中发现一个安全漏洞。当攻击者控制 jdbc url 或者属性时,使用 PostgreSQL 数据库的系统将受到攻击。 pgjdbc 根据通过 authenticationPluginClassName、sslhostnameverifier、socketFactory 、sslfactory、sslpasswordcallback 连接属性提供类名实例化插件实例。但是,驱动程序在实例化类之前没有验证类是否实现了预期的接口。这可能导致通过任意类加载远程代码执行。
漏洞利用socketFactory/socketFactoryArg漏洞介绍影响版本
9.4.1208 <=PgJDBC <42.2.25
42. ...
安卓渗透基础(root篇)
这里主要是以真机为测试环境,不使用模拟器,我这里用的是小米6,安卓版本为9
主要是学习一下和root相关的知识(顺便再水一篇博客)
前置知识一些相关的术语和root知识,可以看一下极客湾的ROOT指南:https://www.bilibili.com/video/BV1BY4y1H7Mc/?share_source=copy_web&vd_source=35d5dfeb47a963c5dbc7d7d4f9c17ca5,对我这个玩机小白肥肠友好
安卓分区大致分为五个分区:Boot、System、Data、Recovery、Cache
首先是Boot分区root的操作主要也是在修改Boot分区,还有一些比较底层的操作,比如改CPU调度、给GPU超频等也在这个分区
如果该分区损坏的话,就会导致启动卡在第一屏,也就是logo界面
System分区这里图很形象也不多说了,System分区要是损坏就会卡在开机第二屏也就是进不去操作系统了,卡在动画界面
Vendor分区现在会归并到System分区了,以前说是会独立出来
Data分区这个理解也很简单,就是平时各种的使用数据之类的
Cach ...
Hessian利用链
水一下博客,之前这篇写在本地了,现在放到博客方便用的时候看,因为前面nacos的时候用到了一些
这两条链子都是基于原生jdk的,不需要其他依赖
MultiUIDefaults利用链链子
javax.swing.MultiUIDefaults.toString UIDefaults.get UIDefaults.getFromHashTable UIDefaults$LazyValue.createValue SwingLazyValue.createValue javax.naming.InitialContext.doLookup()
toString的触发利用Hessian的异常toString来触发即可
这个链是从 MultiUIDefaults 的 toString 方法开始,一路调用到 SwingLazyValue 的 createValue(但是SwingLazyValue 好像在 jdk8 之后删了 ...
NCTF2025复现
当时没怎么打,现在来复现一下,也是学到蛮多东西
internal_api一个新学到的XSLeak侧信道攻击
参考文章:https://ek1ng.com/XSLeaks%20%E4%BE%A7%E4%BF%A1%E9%81%93%E6%94%BB%E5%87%BB.html,https://wiki.scuctf.com/ctfwiki/web/9.xss/xsleaks/
XSLeaks是什么
XS-Leaks 全称 Cross-site leaks,可以用来 探测用户敏感信息。
利用方式、利用条件等都和 csrf 较为相似。
说到探测用户敏感信息,是如何进行探测的?和csrf 相似在哪?
设想网站存在一个模糊查找功能(若前缀匹配则返回对应结果)例如 http://localhost/search?query=,页面是存在 xss 漏洞,并且有一个类似 flag 的字符串,并且只有不同用户查询的结果集不同。这时你可能会尝试 csrf,但是由于网站正确配置了 CORS,导致无法通过 xss 结合 csrf 获取到具体的响应。这个时候就可以尝试 XS-Leaks。
虽然无法获取响应的内容 ...
Nacos漏洞学习
前言最近在看Java微服务相关的知识,那就顺便学一下Nacos相关的漏洞
简介NACOS的官网:https://nacos.io/
Nacos 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
未授权访问漏洞(CVE-2021-29441)影响版本
Nacos <= 2.0.0-ALPHA.1或者<=1.4.0
漏洞详情
nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。
复现
这里直接用vulhub的环境即可
访问nacos/v1/auth/users?pageNo=1&pageSize=9接口
正常来说访问是403的,我们UA头加上Nacos-Server就可以绕过验证,此时就为200了
此时我们可以POST访问nacos/v1/auth/users接口,body为use ...
WebLogic学习
简介官方介绍:Oracle WebLogic Server 是一个统一的可扩展平台,专用于开发、部署和运行 Java 应用等适用于本地环境和云环境的企业应用。它提供了一种强健、成熟和可扩展的 Java Enterprise Edition (EE) 和 Jakarta EE 实施方式。类似于Tomcat、Jboss等。
环境搭建项目地址:https://github.com/QAX-A-Team/WeblogicEnvironment
weblogic安装地址:https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html
较老的版本比如weblogic10在这里找:https://edelivery.oracle.com/osdc/faces/SoftwareDelivery
jdk安装地址:https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html
有关WebLogic的基础知识可以看:https ...
Java远程调试
最近想看看weblogic,但是环境比较难搭建和调试,趁着这个机会,看一下java的各种代码远程调试的方法,很基础的东西了,一直没看。(顺便水一篇博客)
远程调试Jar包主要在只有jar包无源码的情况下进行调试。
这里以冰蝎的jar包为例子
随便开一个java项目,然后我们创建一个lib目录然后放入jar包
右键选择Add as Library,将lib文件夹添加进项目依赖
然后就可以看到jar包中反编译的源代码了
然后我们添加一个Remote JVM Debug的Configuration
然后默认配置Apply提交并保存即可,其中-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005将作为运行时的启动参数
然后将-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005作为启动参数运行jar包
suspend表示是否暂停程序等待调试器连接,”y”表示暂停,”n”表示不暂停,这里还是要选择暂停,上面默认的是不暂停导致我调 ...
BookManager复现
前言当时ciscn&长城杯场上的一题零解题,当时反编译看了一下这题的源码,发现是微服务形式的,有个ApiGateway,然后看了半天也找不到反序列化的点,甚至连请求哪个路由都不清楚🥲然后用的又是solon这个框架不熟悉,直接开摆了
后来看到有师傅解出来了,遂来复现一下
复现看了一下才发现网关这里限制了我们的路由前缀(没学过不太懂😭,怪不得直接getAllBooks什么都没有
直接问deepseek的解释如下:
这段代码实现了一个 API 网关,主要功能包括:
路由匹配:
所有以 /api/rest/ 开头的请求都会被该网关处理。
例如,/api/rest/book 会被映射到 BookServiceImpl 类。
前置逻辑:
在请求处理之前,设置默认的响应渲染格式为 JSON。
服务注册:
将 BookServiceImpl 类注册为处理 /api/rest/book 路径的服务。
这里可以看到用的是solon的2.5.12的版本,当时直接搜是没有搜到该版本的漏洞的,一搜反序列化基本都是2.5.11的
然后这位老哥是从github的issue翻到相 ...
DASCTF12月最后一战复现
2024年最后一次的das,web终于也是没有爆零了,最后一题的1解题看了gxn大哥的wp也是学到新东西了,这里记录一下
官方wp:https://www.yuque.com/chuangfeimeiyigeren/eeii37/oxv3gaim7fr89ed2?singleDoc
const_python题目源码:
import builtinsimport ioimport sysimport uuidfrom flask import Flask, request,jsonify,sessionimport pickleimport base64app = Flask(__name__)app.config['SECRET_KEY'] = str(uuid.uuid4()).replace("-", "")class User: def __init__(self, username, password, auth='ctfer'): self.username = usernam ...