自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

网络安全

积一时之跬步,臻千里之遥程

  • 博客(404)
  • 资源 (5)
  • 收藏
  • 关注

原创 网络安全学习目录

参考资料:1. 渗透测试1-信息收集—DNS域名信息2-信息收集—Google hacking2. wireshark网络分析1-wireshark网络安全分析——VLAN基础细节详解2-wireshark网络安全分析——MAC地址泛洪攻击3-wireshark网络安全分析——ARP欺骗攻击4-wireshark网络安全分析——TCP SYN Flooding攻击...

2020-06-12 17:08:00 3245 2

原创 CCNA修炼指南

参考书籍:《tcp/ip协议族第四版》 《计算机网络第七版》《CCNA学习指南第7版》1-思科IOS设备管理2-路由设备基本命令3-ip路由基础4-静态路由实验部署5-默认路由6-浮动路由7-路由协议基础8-RIP路由协议详解——RIPv1协议部署更新中……...

2019-10-12 15:18:15 2918 1

原创 汇编语言修炼目录

参考资料:《x86汇编语言:从实模式到保护模式》《汇编语言》预备知识1-计算机和汇编语言2-8086CPU给出的物理地址方法3-浅谈8086CPU的内存分段机制4-计算机的启动过程5-安装虚拟机和NASM汇编器16位实模式6-如何显示文字和图像7-第一个汇编程序hello world8-div指令和进制转换9-常用的汇编指令10-x86...

2019-01-01 10:53:22 1105

原创 专业学习能力

始终恪守上线和下线,学会自律,在不确定的环境里,相信外部条件的不确定,不可控是常态,不要让随时变化的天气和路况来告诉你做什么,而是要让自己来告诉自己做什么!保持学习,继续努力0. 操作系统基础1. 软件开发基础2. linux编程4. 计算机网络...

2018-12-01 21:36:29 1069 2

原创 linux编程学习目录

参考资料:《UNIX环境高级编程第三版》《Linux/UNIX系统编程手册》《UNIX网络编程(第1卷:套接口API)》《TCP/IP详解卷一》Linux 学习交流群: 610441700 ,欢迎加群一起讨论系统编程文件I/O1-文件IO—open/close函数2-C标准的I/O缓存和FILE结构体3-文件描述符和标准文件4-文件描述符与打开的文件之间的关系5-文件I/O—read/write函数6-改变文件偏移量

2018-07-22 23:13:33 2167 2

原创 数据结构基础学习笔记目录

参考资料: 《数据结构》—— 武汉大学(中国大学MOOC) 《数据结构基础》课程 —— 烟台大学计算机与控制工程学院数据结构的基本概念 1-数据结构的内容2-数据结构基本概念3-数据的逻辑结构4-逻辑结构的二元组表示方法5-抽象数据类型(ADT)6-算法及其描述7-算法和数据结构数据结构——顺序表8-线性表的基本运算9-线性表的顺序存储结构10-顺序表的基本运算实...

2018-05-30 23:54:24 3003 4

原创 计算机网络学习目录

参考书籍: 《tcp/ip协议族第四版》 《计算机网络第七版》网络基础 1-计算机网络常用概念2-计算机常用通信指标-上3-计算机常用通信指标-下4-计算机网络常用性能指标5-OSI网络通信模型6-tcp/ip协议栈发展史...

2018-04-30 19:06:16 1931 3

原创 tcp/ip协议学习目录

参考书籍: 《tcp/ip协议族第四版》 《计算机网络第七版》 《tcp/ip详解卷一》写在开头:tcp/ip学习目录主要是记录自己的计算机网络的学习过程,提升自己,为后期深入学习linux网络编程打下扎实的基础,同时也希望这些学习笔记也能帮助到更多像我一样的对计算机网络感兴趣,但是基础又不好的小伙伴。另外,大家在学习的时候,我的建议是结合着计算机网络相关的书籍一起看,因为在博客中只提到...

2018-04-26 23:14:37 2785 2

原创 ip地址学习笔记目录

参考书籍: 《tcp/ip协议族第四版》 《计算机网络第七版》 写在开头:我尽量用通俗易懂的方式,比较全面的介绍ip地址相关知识,让大家看的轻松点,也希望大家看完后能掌握ip地址规划,ip地址学习本身不难,难的是ip地址中的知识点比较零碎,而每一部分的新知识点都和前面的有着紧密联系(没有基础的同学,真的不建议跳着看),关键看你怎么建立起关联以形成自己的知识笔记,当然,最难的还是坚持。...

2018-04-14 16:54:36 1350 1

原创 nginx+keepalived学习目录

参考资料: 《keepalived权威指南》 《深入理解Nginx:Nginx模块开发与架构解析第二版》 Nginx开发从入门到精通:http://tengine.taobao.org/book/ keepalived工作原理和配置说明:http://outofmemory.cn/wiki/keepalived-configuration1-nginx安装和介绍2-nginx的启动...

2018-04-09 23:00:28 615

原创 java安全——java本地命令执行分析

近几年里,java安全威胁性较高的就是反序列化漏洞了,原因在于反序列化漏洞通常会利用Runtime类来实现RCE命令执行从而控制目标服务器,但有时候我们会发现在某些情况下,Runtime类并不能执行一些较为复杂的命令,或者说无法获得我们想要的预期结果。例如我们在linux系统下执行该命令是没问题,可以执行成功但是通过java本地命令执行的Runtime类的exec方法来执行该命令无法获得我们预期的结果我们换一种方式,不执行这么复杂的命令,Runtime类可以成功执行命..

2021-09-15 18:47:56 1558 1

原创 java安全——类加载和Unsafe类(ClassLoader,URLClassLoader)

当要执行某一个类时,java程序在运行前会将java文件编译成class字节码文件,然后调用ClassLoader类加载器加载类字节码,通过JVM的native方法来创建类的class对象。使用javap命令反编译HelloTest.class文件查看其内容用工具以十六进制打开.class文件的二进制内容,jvm执行HelloTest类会解析class文件中的字节码内容(ByteCode)ClassLoader类加载器ClassLoader类加载器主要是用于加载jav..

2021-09-13 18:53:47 1444

原创 java安全——ysoserial工具URLDNS链分析

本篇我们将学习ysoserial工具的URLDNS链,相对于前面学习的CC链来说,URLDNS链就比较简单了。URLDNS是ysoserial工具用于检测是否存在Java反序列化漏洞的一个利用链,通过URLDNS利用链可以发起一次DNS查询请求,从而可以验证目标站点是否存在反序列化漏洞,并且该利用链任何不需要第三方依赖,也没有JDK版本的限制。但是URLDNS利用链也只能用于发起DNS查询请求,也不能做其他事情,因此URLDNS链更多的是用于POC检测。有了前面的基础,这里直接上URLD

2021-09-08 10:52:26 1600

原创 17-java安全——shiro1.2.4反序列化分析(CVE-2016-4437)

漏洞原理在shiro1.2.4版本中,用户认证信息rememberMe通常会进行Base64编码和AES加密存储在cookie中,当shiro安全框架对用户身份进行认证时,会对rememberMe的内容进行Base64解码和AES解密,然后反序列化还原成java对象,由于rememberMe可控,攻击者则可以利用rememberMe来构造恶意数据,产生反序列化漏洞。漏洞环境shiro1.2.4jdk7u80漏洞复现在github下载shiro1.2.4版本,下载链接:

2021-09-06 14:48:21 1687

原创 16-java安全——shiro1.2.4用户认证流程分析

1. shiro的基础shiro 是apache开源的一个安全框架,它将软件系统的安全认证相关功能抽取出来,例如把用户身份安全认证,权限授权、加密、会话管理等功能组成了一个通用的安全认证框架,然后开发人员通过shiro提供的API接口可以使用身份认证,权限管理等功能来保护web应用程序。shiro中有两个概念比较重要,一个是身份认证,另一个是授权:身份认证就是判断一个用户是否为合法用户的处理过程。简单来理解就是系统通过用户输入的用户名和口令是否正确来校验用户的身份信息。所谓授权就是

2021-09-06 10:30:23 531

原创 15-java安全——fastjson反序列化的历史版本绕过(开启AutoType功能)

1.2.24 版本爆出反序列化漏洞之后,fastjson1.2.25之后的版本使用了checkAutoType函数定义黑白名单的方式来防御反序列化漏洞。com.alibaba.fastjson.parser.ParserConfig类中有一个String[]类型的denyList数组,denyList中定义了反序列化的黑名单的类包名,1.2.25-1.2.41版本中会对以下包名进行过滤bshcom.mchangecom.sun.java.lang.Threadjava.net.Sock

2021-09-03 18:24:33 2518 1

原创 14-java安全——fastjson1.2.24反序列化JdbcRowSetImpl利用链分析

fastjson在1.2.24版本中,除了TemplatesImpl链之外,还有一个JdbcRowSetImpl利用链,JdbcRowSetImpl链有两种利用方式:一种是RMI和JNDI利用方式,另一种是JNDI和LDAP利用方式,关于JNDI的相关概念之前在java安全基础中已经介绍过了,而且底层原理已经分析过了,大家可自行参考以下文章。4-java安全基础——RMI远程调用5-java安全基础——RMI和JNDI实现漏洞利用6-java安全基础——JNDI和LDAP利用1. RMI

2021-09-01 11:31:02 705 1

原创 13-java安全——fastjson1.2.24反序列化TemplatesImpl利用链分析

漏洞环境:fastjson1.2.24jdk1.7.80新建一个maven项目在pom.xml文件中引入fastjson的依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</v

2021-08-27 14:21:52 2506 2

原创 12-java安全——java反序列化CC7链分析

在分析CC7链之前,需要对Hashtable集合的源码有一定的了解。从思路上来说,我觉得CC7利用链更像是从CC6利用链改造而来,只不过是CC7链没有使用HashSet,而是使用了Hashtable来构造新的利用链。经过测试,CC7利用链在jdk8u071和jdk7u81都可以利用成功,payload代码如下:package com.cc;import org.apache.commons.collections.Transformer;import org.apache.commo

2021-08-23 10:15:29 2412 1

原创 11-java安全基础——java中的sql注入

jdbc中的sql注入JDBC是sun公司制定的使用java语言来操作数据库的驱动接口,程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。新建一个maven项目,导入jdbc依赖包: <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>

2021-08-15 20:24:10 1024

原创 10-java安全基础——javassist字节码编程

javassist是一个开源的分析、编辑和创建Java字节码的类库,通过javassist提供的API可以在java程序运行时编辑一个类的字节码信息,改变该类的结构信息。除了Javassist,常见的字节码编程工具有ASM和byte-buddy,但是这两个工具相对来说更加偏向于底层,需要了解关于jvm的指令。使用javassist可以不需要了解jvm指令,只需使用javassist类库提供的API接口就可以实现字节码编程。javassist字节码编程常用的类:ClassPool:Cla.

2021-08-15 15:17:11 997

原创 2-java安全——tomcat AJP协议文件包含分析[CVE-2020-1938]

漏洞描述:tomcat是Apache组织开发的中小型的JavaEE服务器,它实现了servlet,JSP等javaEE规范,可以提供web资源访问服务,tomcat主要提供了两种通信方式访问web资源:http协议和AJP协议。tomcat服务器默认会在8009端口开放了一个AJP服务,客户端(浏览器)通过与tomcat8009端口建立AJP通信,可以访问服务器的web资源。但是tomcat的AJP协议在设计上存在一些缺陷,攻击者通过这点可以构造恶意的请求进行文件包含操作,从而读取tomcat服务器

2021-08-12 18:34:59 1621

原创 9-java安全基础——Servlet

Servlet程序Servlet是Servlet Applet的简称,翻译过来大概就是一个运行在服务端的小程序,用于处理服务器的请求,什么是服务器程序?我们知道一般在Web应用程序中都是通过浏览器来访问web服务器资源的,通常浏览器要访问一个网页时会发送一个http请求给web服务器,然后web服务器接收到该请求会进行相应的处理,然后把处理的结果再返回给浏览器,因此不难看出Servlet是用于处理服务器的请求(业务逻辑)。如何编写一个Servlet程序servlet是Sun公司提供了

2021-08-05 20:42:39 259

原创 8-java安全基础——HashSet,HashMap源码分析

HashSet集合set接口和list接口一样是collection接口的子接口,set接口的元素是无序的(添加和取出顺序不一致),没有索引,不允许重复元素,HashSet集合实现了set接口,也具有set接口的特点。来看一个HashSet的示例程序:...

2021-07-29 19:31:50 372

原创 7-java安全基础——ArrayList,Vector源码分析

ArrayList集合当创建ArrayList对象时,如果使用的是无参构造器,那么初始elementData数组的容量为0,第一次添加元素时elementData数组的容量则扩容到10,如果再次扩容则为1.5倍。通过一个示例程序来分析ArrayList集合底层扩容的机制public class CollectionTest1 { public static void main(String[] args) { ArrayList arrayList = new Ar

2021-07-29 15:08:21 269

原创 11-java安全——java反序列化CC5和CC6链分析

CC5链分析复习LazyMap利用链: https://blog.csdn.net/qq_35733751/article/details/118462281在学习CC2链时我们知道由于JDK8版本改写了AnnotationInvocationHandler类的readobject方法,CC1链中LazyMap的get方法已经无法使用,CC5链使用了BadAttributeValueExpException类来代替AnnotationInvocationHandler类,并且还用了一个新的类

2021-07-25 10:33:34 1745 5

原创 9-java安全——关于构造CC2链的几个问题

思考一下:CC2链的poc利用代码中为什么要向queue队列中添加至少2个元素?并且PriorityQueue队列中的queue属性被transient关键字修饰具有“不会序列化”语义,在反序列化过程中为什么还能从流中读取queue的数据,流中的数据又从何而来?readObject方法是怎么从流中读取queue的数据使用SerializationDumper工具解析对象序列化的数据,Fields字段中并没有看到PriorityQueue的queue属性,说明queue确实没有参与序列化.

2021-07-23 09:53:35 429

原创 10-java安全——java反序列化CC3和CC4链分析

漏洞分析环境:JDK1.7.0_80apache commons collections-3.0在maven项目中的pom文件中添加3.1版本的依赖<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.1</version

2021-07-20 21:15:40 1830 2

原创 8-java安全——java反序列化CC2链分析

上一篇分析了CC1链,本篇继续分析ysoserial工具的 apache commons collections 2利用链。CC1链在实际利用过程存在一些限制,例如jdk1.8版本以上已经无法利用反序列化漏洞了,通过分析发现jdk8u181版本中改写了sun.reflect.annotation.AnnotationInvocationHandler类的readObject方法,CC1链在jdk8版本以上已经被修复了,因此jdk8版本以上重新构造了一条新的利用链(CC2链)。不过CC2链使用

2021-07-19 11:11:46 2544 4

原创 6-java安全基础——JNDI和LDAP利用

在java JDK的6u141,7u131,8u121这几个版本中,jndi中的Naming/Directory服务中限制了Reference远程加载Object Factory类的特性,对com.sun.jndi.rmi.object.trustURLCodebase的值默认设置为false,即禁止从远程的URLCodebase加载Reference工厂类。同样的代码,这里把jdk版本切换成JDK8u121版本为什么会抛出ConfigurationException异常?以jdk8u.

2021-07-16 08:54:05 3220

原创 5-java安全基础——RMI和JNDI实现漏洞利用

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的接口,jndi可以实现给当前服务器的所有资源定义一个唯一的访问标识(例如数据库,网页,文件,连接池等等),方便开发者通过指定的标识来访问对象(目标资源文件,数据库等等)。关于什么是标识符?可参考RMI注册表,例如在RMI中通过rmi://10.100.0.1:10086/userRmiServices来映射RMI注册表中的userRmiServices远

2021-07-14 17:16:20 3515

原创 4-java安全基础——RMI远程调用

1. RMI远程调用java RMI (Java Remote Method Invocation)即远程方法调用,是分布式编程中的一种编程思想,java jdk1.2就开始支持RMI,通过RMI可以实现一个虚拟机中的对象调用另一个虚拟机上中的对象的方法,并且这两个虚拟机可以跨主机,也可以跨网络。RMI解决的问题是实现和本地方法调用一样的远程方法调用,但是又屏蔽了远程调用的具体实现的细节,使得远程方法调用看起来和本地方法调用一样。2. RMI通信流程来看一下RMI的实际通信过程(这图

2021-07-13 14:32:59 1473 4

原创 3-java安全基础——jdk动态代理

静态代理什么是静态代理,假设现在有这样一个需求:要求在所有类的addUser方法前后添加打印日志。那么如何在不修改源代码的情况下完成需求?通常做法是:为每一个目标类创建一个代理类,并让目标类和代理类实现同一个接口。在创建代理对象的时候通把目标对象传入构造中,然后在代理对象内部的方法中调用目标对象的方法前后输出日志。静态代理实现://同一接口interface UserService { public void addUser();}//目标类class UserS

2021-07-11 09:21:44 353 2

原创 2-java安全基础——动态类加载(反射)

1. 类加载当程序想要使用一个类时,如果这个类还没加载到内存中,jvm会负责把这个类加载到内存中,那么jvm把类加载到内存中做了哪些事情?一般jvm会按照类加载,类连接,类初始化这三个步骤把这个类加载到内存,完成初始化工作,但这里我们暂时不讨论类连接,类初始化。什么是类加载?java编译器将写好的.java源文件编译成.class⽂件,然后jvm再将.class文件加载到内存中并为之创建一个java.lang.Class对象的过程称为类加载。2. java程序的三个阶段当一个程序文件从磁

2021-07-10 19:24:15 771 2

原创 1-java安全基础——内部类和代码块

1. 代码块代码块又称为初始块,是属于类的一部分。代码块有些类似于方法,将代码逻辑封装在方法体并用“{ }”符号括起来。代码块与方法的区别在于,方法拥有函数名,返回值,参数,方法体。但代码块只有方法体,并且代码块不会通过类或对象来显示调用,而是在加载类或创建对象时隐式调用。代码块的语法:[修饰符]{ //代码逻辑} 修饰符的内容是可选的,如果要写的话只能写static,表示这是一个静态代码块,如果不写的话表示这是一个普通代码块。 代码块可以理解为...

2021-07-09 14:25:00 394 2

原创 0-java安全基础——搭建tomcat调试环境

首先在官网下载tomcat的源码包和安装包,以tomcat8为例,下载链接:https://archive.apache.org/dist/tomcat/tomcat-8///安装包apache-tomcat-8.0.50.exe//源码apache-tomcat-8.0.50-srcapache-tomcat-8.0.50-src就是tomcat的源码,如果是windows系统,下载.exe安装包,下载完后直接默认下一步安装。打开idea工具,直接打开apach

2021-07-09 14:04:53 420 3

原创 7-java安全——java反序列化CC1链分析

apache commons-collections组件反序列化漏洞的反射链也称为CC链,自从apache commons-collections组件爆出java第一个反序列化漏洞后,就像打开了新世界大门一样,之后很多java中间件也相继爆出反序列化漏洞。例如比较常用的反序列化漏洞利用工具ysoserial就使用了LazyMap类的利用链,本文将继续学习LazyMap类的利用链。...

2021-07-04 15:39:31 3631

原创 1-java安全——tomcat任意文件写入分析[CVE_2017-12615]

tomcat8.0.45写入任意文件漏洞的编号为CVE_2017-12615,该漏洞的利用场景为当tomcat运行在windows下,允许PUT方式的http请求并且tomcat的web.xml配置文件中readonly值为false,攻击者就可以向服务器上传恶意jsp文件或webshell文件。

2021-07-03 09:59:53 916

原创 6-java安全——java反序列化漏洞利用链

本篇将学习java反序列化漏洞原理,然后结合一个apache commons-collections组件反序列化漏洞来学习如何构造利用链。我们知道序列化操作主要是由ObjectOutputStream类的 writeObject()方法来完成,反序列化操作主要是由ObjectInputStream类的readObject()方法来完成。当可序列化对象重写了readObject方法后,在反序列化时一般会调用序列化对象的readObject方法。在Student类中重写ObjectInputSt

2021-07-01 17:28:58 3756 10

原创 5-java安全——java反序列化机制分析

通过上一篇的学习相信大家对java序列化机制非常熟悉了,本篇继续分析java反序列化底层机制。反序列化机制主要由以下代码实现的:ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);Student student = (Student) objectInputStream.readObject(); 不同的是,反序列化需要通过对象输入流ObjectInputStream 类从文...

2021-06-25 09:15:35 760 1

evidence01.zip

《wireshark网络安全分析——使用wireshark进行网络取证》实验中用到的pacp数据包文件

2020-03-23

http_with_jpegs.cap.gz

《wireshark网络安全分析——使用wireshark进行网络取证》实验中用到的pacp数据包文件

2020-03-21

计算机网络思维导图

根据计算机网络学习目录整理而成的知识图谱,由思维导图梳理后,看上去果然好多了,对于计算机网络的每一层基本上有了清晰的认识,帮助大家学习和理解计算机网络的每一层的功能和之间的联系

2019-01-10

内存映射I/O大文件性能测试代码

内存映射I/O的读写性能测试,以内存映射I/O和和系统调用write写500M文件为例

2018-10-05

tcpip详解卷一第二版

tcpip详解卷一的第2版,相对于第一版来说第二版采用了wireshark进行抓包,不管是对于做网络开发还是网络技术的同学来说,都是值得一看的

2018-06-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除