N1CTF-J题目复现
Derby题目pom如下,依赖druid和derby,jdk版本为17 12345678910111213141516171819<properties> <java.version>17</java.version></properties><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> ...
Confluence远程代码执行漏洞(setup-restore)分析
未经身份验证的远程攻击者通过构造恶意请求可在一定程度绕过目标系统身份验证,并通过后台接口获得接管服务器的权限,最终可实现远程代码执行,由于攻击者无法泄露任何系统数据,因此不会影响机密性;但该漏洞利用会导致 Confluence 数据清空,对数据完整性产生不可逆的影响。 受影响版本 Atlassian confluence < 7.19.16 Atlassian confluence < 8.3.4 Atlassian confluence < 8.4.4 Atlassian confluence < 8.5.3 Atlassian confluence < 8.6.1 不受影响版本 Atlassian confluence >= 7.19.16 Atlassian confluence >=< 8.3.4 Atlassian confluence >= 8.4.4 Atlassian confluence >= 8.5.3 Atlassian confluence...
安洵杯2023
ezjava用treebag连接cb中的BeanComparator调用任意getter 通过postgresql写文件,最后freemarker模板注入rce 123456789101112131415161718192021222324252627282930313233343536package exp;import org.apache.commons.beanutils.BeanComparator;import org.apache.commons.collections.bag.TreeBag;import org.postgresql.ds.PGConnectionPoolDataSource;import static exp.Util.serial;import static exp.Util.setFieldValue;public class CB{ public static void main(String[] args) throws Exception { String loggerLevel =...
GeoServer SSRF 漏洞分析
环境搭建这里选择的版本为2.22.1,便于分析两个漏洞 12345678源码https://codeload.github.com/geoserver/geoserver/zip/refs/tags/2.22.1可执行文件https://altushost-swe.dl.sourceforge.net/project/geoserver/GeoServer/2.22.1/geoserver-2.22.1-bin.zipwps插件https://sourceforge.net/projects/geoserver/files/GeoServer/2.22.1/extensions/geoserver-2.22.1-wps-plugin.zip/download wps插件中的jar包放入webapps/geoserver/WEB-INF/lib中 startup.bat添加调试信息 1234567:run cd "%GEOSERVER_HOME%" echo Please wait while loading...
ActiveMQ-61616
n1ctf的一道web题,只开放activemq的61616端口,需要进行ssrf打内网的其他web服务 攻击ActiveMQ brokerActiveMQ的broker开放端口61616,会接收客户端的数据并处理 先写一个demo客户端如下,发送一条ConnectionInfo命令 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667package exploit;import org.apache.activemq.command.ConnectionInfo;import org.apache.activemq.command.ConnectionId;import org.apache.activemq.command.ExceptionResponse;import org.apache.activemq.transport.Transport;import...
GsonGadget
Gson反序列化内网的web服务主要逻辑如下 123456789101112131415@RestController@RequestMapping({"/api"})public class APIController { @GetMapping({"/"}) public String index() throws Exception { return "try /api/com.api.Person/eyJuYW1lIjoidXNlciIsImFnZSI6IjIwIn0="; } @GetMapping({"/{Person}/{Json}"}) public Person handleApiRequest(@PathVariable String Person, @PathVariable String Json)...
从JeecgBoot中学习FreemarkerSSTI
Freemarker模板注入漏洞信息Freemarker 模板注入导致远程命令执行,远程攻击者可利用该漏洞调用在系统上执行任意命令。漏洞危害等级:高危 影响范围如下 minidao-spring-boot-starter 版本 < 1.9.2 jimureport-spring-boot-starter 版本 < 1.6.1 codegenerate 版本 < 1.4.4 hibernate-re 版本 < 3.5.3 jeewx-api 版本 < 1.5.2 drag-free 版本 <...
JDKSwing Gadget学习
JLable解析html的安全问题JLabel 的内容可以输入 HTML 格式,例如下方的 Demo 1234567891011121314151617181920package me.n1ar4;import javax.swing.*;public class Main { private static void createAndShowGUI() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("HelloWorldSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); String inputFromUser = "<html><h1>hello</h1><h2>world</h2></html>"; ...
Tomcat内存马学习
Filter 内存马Servlet Filter 又称 Servlet 过滤器,它是在 Servlet 2.3 规范中定义的,能够对 Servlet 容器传给 Web 资源的 request 对象和 response 对象进行检查和修改。 Filter 不是 Servlet,不能直接访问,它本身也不能生成 request 对象和 response 对象,它只能为 Web 资源提供以下过滤功能: 在 Web 资源被访问前,检查 request 对象,修改请求头和请求正文,或对请求进行预处理操作。 将请求传递到下一个过滤器或目标资源。 在 Web 资源被访问后,检查 response 对象,修改响应头和响应正文。 而他的工作流程可以通过一张图进行展示。 通常情况下,Filter 配置在配置文件和注解中,在其他代码中如果想要完成注册,主要有以下几种方式: 使用 ServletContext 的 addFilter/createFilter 方法注册; 使用 ServletContextListener 的 contextInitialized...
初探hessian反序列化
主要是一些ctf题目的复现分析 HFCTF-2022 ezchain先是hash碰撞,然后是hessian反序列化 12345678910111213141516171819202122232425static class MyHandler implements HttpHandler { public void handle(HttpExchange t) throws IOException { String query = t.getRequestURI().getQuery(); Map<String, String> queryMap = queryToMap(query); String response = "Welcome to HFCTF 2022"; if (queryMap != null) { String token = queryMap.get("token"); ...