cfe8bc06d84b05197f0bb92ed99dd2e857dd0fbeb52f761e1a271e1fbe29156a391b99a00f9dfff00c38b3bf407060e7ab4d26f9a53f4b4fd38db581fc0f277febf72765857a984bdb37fe7be8bc7d76e2a6ca0c8f1ac8398c38c4da0f5e3528578488f20655b44f046359e282ad0300da55e2417231248df535b15b6466844f4122092dc44089c96e7458f013961807bb1ae8d0d912e609490963ff00fb13c6eb35fe43eac9705be1f01b8e4a53f72738bb98ab47b2d9fdae46632c8c15426989b265afdfdbb4f044f59fea39c245590f5816bad4f5e38e653ae87a5678a630a80069543be5666341687f1b9cee3aadd8bee56824216765d ...
1.git命令操作1.1.配置git身份123git config --global user.name xxxxgit config --global user.email [email protected]
1.2.初始化创建git仓库123456$ git init# 处于主分支状态$ echo "版本1" > lao.md查看git状态$ git status
1.3.其他git操作12345# Untracked 未追踪状态# tracked 已追踪# 添加到暂存区git add lao.md
1234567$ git statusOn branch master # 位于主分支No commits yet # 未提交状态Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: lao.md
1234567891011# 提交到本地仓库$ git commit # 进入到vim编辑器 编 ...
1.漏洞简介Apache Log4j2是一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工具将程序的输入输出信息进行日志记录。2021年11月24日,阿里云安全团队向Apache官方报告了Apahe Log4j2远程代码执行漏洞。该漏洞是由于Apache Log4j2某些功能存在递归解析功能,导致攻击者可直接构造恶意请求,触发远程代码执行漏洞,从而获得目标服务器权限。漏洞适用版本:2.0 <= Apache log4j2 <= 2.14.1
2.漏洞原理2.1. 原理概述Apache log4j2-RCE 漏洞是由于Log4j2提供的lookup功能下的jndi Lookup模块出现问题所导致的,该功能模块在输出日志信息时允许开发人员通过相应的协议去请求远程主机上的资源。而开发人员在处理数据时,并没有对用户输入的信息进行判断,导致log4j2请求远程主机上的含有恶意代码的资源并执行其中的代码,从而造成远程代码执行漏洞.
2.2.JNDI开发人员一般会使用log4j2在日志中输出一些变量,log4j2 除了可以输出程序中的变量 ...
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-OEHX9NSE2GUYSsene6SyT3BlbkFJMFsuXXXXXXXXX"
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, Sic ...
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 ...