1.log4j使用1.1.log4j pom12345<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
1.2.配置文件123456789101112131415161718192021222324252627log4j.rootLogger = debug,stdout,D# log4j.rootLogger = [ level ] , appenderName, appenderName,-# 其中,level 是日志记录的优先级,分为0FF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4建议只使用四级别,# 优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中 ...
1.CVE-2017-5645 Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。
2.反序列化漏洞 序列化:将对象的状态信息转化为字节流,以便可以将其持久保存在存储介质上,或者可以通过网络将其发送到另一个运行中的JVM。
反序列化:将字节流恢复为对象,即将字节流恢复为对象,即将序列化后的字节流重新转化为对象实例。这个过程中,JVM会根据字节流中的信息重新创建对象,并恢复其状态。
原理: JAVA反序列化漏洞主要发生在反序列化过程中。当攻击者可以控制或篡改序列化后的字节流时,他们可能会在反序列化过程中执行恶意代码。这通常是因为开发者在处理反序列化过程中没有进行足够的安全性检查。
3.复现 搭建docker靶场,这次嫌麻烦,先简单复现一下漏洞,暂时不进行污点跟踪因此,先使用docker环境进行复现。
靶场下载地址 :https://github.com/vulhub/vulhub
3.1.启动docker 并进入靶场文件夹
3.2.启动doc ...
1.langchain简单运用1.1.基础配置1!pip install langchain
1import langchain
1!pip install openai
Successfully installed openai-0.28.0
12import osos.environ["OPENAI_API_KEY"] = "sk-********"
1from langchain.llms import OpenAI
1llm = OpenAI(temperature=0.9)
12text = "What are 5 vacation destinations for someone who likes to eat pasta?"print(llm(text))
1. Rome, Italy 2. Venice, Italy 3. Bologna, Italy 4. Palermo, Sicily 5. Naples, Italy
1from la ...
1.初始登陆代码1.1.application.yml(配置文件)12345678910111213141516mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath:mapper/* .xmlspring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/shirodb?characterEncoding=utf-8&useSSL=false username: root password: 123456 jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8shiro: loginUrl: ...
Fastjson(1.2.24)(不出网漏洞利用)1.编写命令执行java并将其编译为class文件1234567891011121314151617181920package com.shiro.vuln.fastjson;import com.sun.org.apache.xalan.internal.xsltc.DOM;import com.sun.org.apache.xalan.internal.xsltc.TransletException;import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator;import com.sun.org.apache.xml.internal.serializer.SerializationHandler;public class TemplatesImplcmd extends AbstractTranslet { publ ...
1.关于fastjson反序列化的特性(版本号:1.2.24)()1.1.fastjson结构框架图
1.2.fastjson的一些功能特性的研究1.2.1.fastjson总共三种反序列化的方式1234JSON.parse(s1);JSON.parseObject(s1);JSON.parseObject(s1,Object.class);//s1:{age":34,"hobby":"sports","name":"username"}
三种方式都拥有不同的特性,下面通过一个实例来具体探究以下底层代码到底是如何实现的。
1.首先新建一个user类
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849public class user { private String name; private int age; p ...
JNDI(Java Naming and Directory Interface)注入是一种攻击技术,常见于Java应用程序中。JNDI是Java平台提供的一种API,用于访问命名和目录服务,例如LDAP(轻量级目录访问协议)。JNDI注入攻击利用了应用程序未正确验证用户提供的输入,导致攻击者能够通过构造恶意的JNDI名称,执行未经授权的操作。
1.命名/目录服务提供者 RMI(JAVA远程方法调用)
LADP(轻型目录访问协议)
CORBA(公共对象请求代理体系结构)
DNS(域名服务器)
JDK6
JDK7
JDK8
JDK11
RMI可用性
6u132以下
7u122以下
8u113以下
无
LDAP可用性
6u211以下
yu201以下
8u191以下
11.0.1以下
1.1.RMI示例12345678910111213141516171819202122232425import javax.naming.InitialContext;import javax.naming.NamingException;public cla ...
通过github开源项目实现端到端的服务。
实例:配置家庭NAS实现外网访问文件共享服务。
原理:通过域名解析具有公网IP的服务器,而服务器一直保持与内网机直连,当需要访问内网机时,通过域名解析到公网IP,再将端口解析映射到内部网络,实现网络流量的桥接。
1.服务端配置 frps.ini1234567891011[common]# 控制端口bind_port = 7000# http服务映射端口vhost_http_port = 8080# 控制面板端口dashboard_port = 7500# dashboard's username and password are both optionaldashboard_user = admindashboard_pwd = admin
启动服务端命令: nohup ./frps -c frps.ini >output.txt 2>&1 &
2.客户端配置 frpc.ini1234567891011121314151617181920[common]# 服务器IPserver_addr ...
1.在登录接口开启全局监听事件1.1.开启全局监听事件的断点 此时只要我们鼠标点击任何按钮,代码会停止运行,此时可进入调试模式。
1.2.狂按F9进行单步调试(接近200次) 由于我并不熟悉该系统代码逻辑,因此我不能跳过任何一个函数,以防错过关键信息。
1.3.经过长时间的单步代码调试来到了user.js的代码逻辑中 这里有我想要的关键信息,通过响应体里获取到了关键的publicKey,通过变量名我们大致可以判断,是非对称加密方式,因此我们大致可以猜测是SM2,或者是RSA。
1.4.密码算法判断 由于SM2通常是512位的公钥,而RSA密钥长度至少1024位以上,这长度明显比512位更长因此再次确认位rsa公钥。
在密码加密逻辑中变量命令为sm3?
1.6.为了进一步确认,我需要更加严谨的判断,再次进行单步调试。
1.7.将密码转换为字节数组
该函数的逻辑我们知道了,那么按F11跳出这个函数继续下一步。
1.8.通过对密码算法的具体判断通过对之后密码算法的具体分析,确实是SM3加密,
123456789101112131415161718192021222324252 ...
1.思路来源: 当我知道可以通过设置网卡的接口跃点数来实现,网卡的切换,而不是通过,禁用一张来启用另外一张网卡,于是我有一个新的主意。
我尝试启用两张网卡,将外网网卡xxxx的网卡的接口跃点数设置为1(跃点数越低,优先级越高),而内网网卡跃点数设置为10,于是主机就跑的是7250的外网流量,且不会走任何关于内网的流量,这时主机网络流量状况和禁用内网网卡一般无二。
但实际上流量是可以跑的,只是没有硬件系统来跑这张网卡,于是我在主机上启动一台虚拟机,通过桥接模式将虚拟机桥接到这张内网网卡,这就实现了虚拟机走的是内网流量,而主机走的是外网流量。
2.实现文件互传 为了解决文件互传,我需要将一个主机的文件夹挂载到虚拟机的磁盘下,实现文件主机和虚拟机文件可在同一个目录均具有可操作性。然而这种服务无法通过443端口的文件共享服务实现,因为虽然主机运行了两张网卡,但是两张网卡的流量实际是根本不互通的,完全是隔离在两个网络下。因此我使用了另外一种方法,通过VMTools的文件夹映射,实现了将主机的E:\HTTPFILES文件夹,映射到虚拟机的Z盘下。
且设置主机文件夹的共享权限。
...