首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏pankas的技术分享

    初探java安全之反射(2)

    前言 前面总结了,java反射的一些函数的相关用法,本篇主要总结如何利用这些函数来构造执行函数。 java执行命令 Runtime run = Runtime.getRuntime();//获取 Runtime 对象 run.exec("calc");//执行calc命令弹出计算器 getMethod Runtime.getRuntime().exec("calc"); 利用反射执行命令 总结上面的 getMethod 和 invoke ,大白话说就是我们一般这个样执行函数 Object.Method(arg1, arg2, ,或执行静态方法 Class.Method(arg1, arg2, ...) 用反射就是 Method.invoke(Object, arg1, arg2, ...) , Method.invoke(Class, arg1, arg2, ...)

    68140编辑于 2022-10-27
  • 来自专栏我的网安魔法之旅

    Java安全之CommonsCollections2

    { O value1 = this.transformer.transform(obj1); O value2 = this.transformer.transform(obj2); POC import java.io.*; import java.lang.reflect.Field; import java.util.Comparator; import java.util.PriorityQueue 利用Javassist操作字节码 javassist( JAVA programming ASSISTant )是一个开源的分析,编辑,创建 Java字节码的类库。 field2.setAccessible(true); field2.set(queue, comparator); // 设置PriorityQueue的comparator字段值为 | Atomovo PriorityQueue源码分析 | linghu_java Java篇Commons Collections 2 | Arsene.Tang Ysoserial CommonsColletions2

    784100编辑于 2023-05-16
  • 来自专栏Naraku的专栏

    Java安全-反序列化-2-CC

    ; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream ; import java.lang.annotation.Retention; import java.lang.reflect.Constructor; import java.util.HashMap : java.lang.Runtime 修改POC 原因是,Java中不是所有对象都支持序列化,待序列化的对象和所有它使用的内部属性对象,必须都实现了 java.io.Serializable 接口。 new Object[] {"/System/Applications/Calculator.app/Contents/MacOS/Calculator"} ), }; 完整代码2 ; import java.lang.annotation.Retention; import java.lang.reflect.Constructor; import java.util.HashMap

    59030编辑于 2022-04-14
  • 来自专栏程序猿的大杂烩

    Java并发编程(2)- 线程安全性详解

    线程安全性定义: 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的 ; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore 修改代码如下(重复代码忽略): ... import java.util.concurrent.atomic.AtomicInteger; @Slf4j public class CountExample2 } } 注:由于Lock涵盖的东西比较多,到时候会放到另外一篇文章中介绍,这里就先略过 ---- 线程安全性-可见性 本小节我们来简单介绍一下线程安全性里的可见性,可见性是让一个线程对主内存的修改可以及时的被其他线程观察到 ---- 线程安全性-有序性 本小节我们来介绍一下线程安全性里的有序性: 在Java内存模型中,允许编译器和处理器对指令进行重排序,但是重排序过程不会影响到单线程程序的执行,却会影响到多线程并发执行的正确性

    63940发布于 2020-09-23
  • 来自专栏开发语言-Java

    Java并发编程学习2-线程安全

    1.3 无状态对象无状态对象一定是线程安全的,这一点也很容易理解。首先,我们来看一个简单的示例【完整示例代码地址在文末提供】:/** 1. 一个基于Servlet的因数分解服务 2. (2)上述示例的计算过程中的临时状态仅存在于线程栈上的局部变量中,并且只能由正在执行的线程访问,所以访问 StatelessFactorizer 的线程不会影响另一个访问同一个 StatelessFactorizer 最后根据分析,我们可以得出如下结论:由于线程访问无状态对象的行为并不会影响其他线程中操作的正确性,因此无状态对象一定是线程安全的。2. 下图给出了两个线程在没有同步的情况下同时对一个计数器执行递增操作时发生的情况:如果计数器的初始值为0,在上图场景中Thread1和Thread2读到的count值都为0,接着执行递增操作,并且都将计数器的值设为 为了确保线程安全性,这些操作必须保证是以原子方式执行的操作。在下面的章节将介绍加锁机制,这是Java中用于确保原子性的内置机制。

    48921编辑于 2024-06-19
  • 来自专栏OneTS安全团队

    Java安全--反序列化之Jython链(2

    声明 本文属于OneTS安全团队成员v4por的原创文章,转载请声明出处! 本文章仅用于学习交流使用,因利用此文信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,OneTS安全团队及文章作者不为此承担任何责任。 在Java中,创建一个接口的实现类对象,除了创建一个Java类并继承该接口外,还可以使用动态代理。动态代理其实是代理模式的一种实现,它利用了Java的反射机制创建了一个继承自指定接口的临时类。 = priorityQueue.getClass().getDeclaredField("size"); f2.setAccessible(true); f2.set(priorityQueue, 2) .*; import java.lang.reflect.Field; import java.lang.reflect.Proxy; import java.util.Comparator; import

    34410编辑于 2025-02-07
  • 来自专栏陶然同学博客

    Java】线程安全

    2. 不存在的票,比如 0 票与 -1 票,是不存在的。 这种问题,几个窗口 ( 线程 ) 票数不同步了,这种问题称为线程不安全。 线程安全问题都是由全局变量及静态变量引起的。 要解决上述多线程并发访问一个资源的安全性问题 : 也就是解决重复票与不存在票问题, Java 中提供了同步机制 ( synchronized ) 来解决。 根据案例简述: 为了保证每个线程都能正常执行原子操作 ,Java 引入了线程同步机制。 那么怎么去使用呢?有三种方式完成同步操作: 1. 同步代码块。 2. 2. 多个线程对象 要使用同一把锁。 注意 : 在任何时候 , 最多允许一个线程拥有同步锁 , 谁拿到锁就进入代码块 , 其他的线程只能在外等着 (BLOCKED) 。 使用同步方法代码如下: 2.5 Lock锁 java.util.concurrent.locks.Lock 机制提供了比 synchronized 代码块和 synchronized 方法更广泛的锁定操作

    74120编辑于 2023-02-24
  • 来自专栏python基础文章

    网络安全——网络层安全协议(2

    (2)广域网:路由器到路由器模式,网关到网关模式。 (3)远程访问:拨号客户机,专网对Internet的访问。   (1)安全体系结构。包含一般的概念、安全需求和定义IPSec的技术机制。  (2)ESP协议。加密IP数据包的默认值、头部格式以及与加密封装相关的其他条款。  (3)AH协议。 SA(安全关联))表示了策略实施的具体细节,包括源/目的地址、应用协议、SPI(安全策略索引)等;SAD为进入和外出包处理维持一个活动的SA列表;SPD决定了整个VPN的安全需求。 ---- 2. (2)在IPSec驱动程序数据库中查找相匹配的出站SA,并将SA中的SPI插人IPSec包头。 (3)对数据包签名(完整性检查);如果要求机密,则另外加密数据包。 (2)通过目的地址和SPI,在IPSec驱动程序数据库中查找相匹配的人站SA。 (3)检查签名,对数据包进行解密(如果是加密包的话)。

    1.1K20编辑于 2023-10-15
  • 来自专栏ros--转载

    java 2

    我回想起学习Java时的学习路线,直接操作数据库是其中一项重要内容,无论使用哪种编程语言,与数据库的交互都是不可避免的。然而,直接操作MySQL数据库似乎缺乏趣味性,毕竟每天都在写SQL语句。 总的来说,相比Java,Python的SDK使用起来更加舒适。如果你曾经使用过Java SDK与平台接口对接,就会发现Python SDK上手更快。jaba

    26310编辑于 2023-11-30
  • 来自专栏OneTS安全团队

    Java安全--Java反射机制(1)

    声明 本文属于OneTS安全团队成员mes9s0的原创文章,转载请声明出处! 本文章仅用于学习交流使用,因利用此文信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,OneTS安全团队及文章作者不为此承担任何责任。 , 例如 java.lang.Runtime( ) )来加载类,Runtime类在Java安全从零到一(3)中讲过 ) 其中 , 第一种方法是对第二种方法的封装 , 存在以下对应关系 : Class.forName 安全从零到一(2)中讲过,可以详细翻看。 , 那就能执行任意代码 . 2、构造恶意的 test2 类: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream

    46210编辑于 2025-02-07
  • 来自专栏python基础文章

    网络安全协议(2

    2.CC体系一共包括3大部分 分别是:信息技术安全性评价通用准则,信息技术安全评价通用方法,通用准则识别协议。 该部分是CC的总体结构简介,定义了信息技术安全性评估的一般概念和原理,并提出了评估的一般模型。整个评估的过程都要遵循这个一般模型。 第2部分:安全功能组件。 作为安全性评估对象的一系列软件、固件或硬件以及它们的文档,如操作系统、防火墙产品、计算机网络、密码模块等,以及相关的管理员指南、用户指南、设计方案等文档。 (2)保护轮廓(PP)。 EAL2:结构性测试级,证明TOE与系统层次设计概念一致。 EAL.3:工程方法上的测试及验证级,证明TOE在设计上采用了积极安全操作系统安全测评研究的工程方法。 EAL.7:形式化地验证设计和测试级,证明TOE的所有安全功能经得起全面的形式化分析 安全级别和组件之间的关系可以用一张表概括,如表1-2所示。

    82750编辑于 2023-10-15
  • 来自专栏nft市场

    智能合约安全——delegatecall (2)

    Attack.attack() 函数先将自己的地址转换为 uint256 类型(这一步是为了兼容目标合约中的数据类型)第一次调用 HackMe.doSomething() 函数;2.

    46020编辑于 2022-08-03
  • 来自专栏全栈程序员必看

    Java安全安全加密算法

    Java安全安全加密算法 0x00 前言 本篇文来谈谈关于常见的一些加密算法,其实在此之前,对算法的了解并不是太多。了解的层次只是基于加密算法的一些应用上。也来浅谈一下加密算法在安全领域中的作用。 SHA 安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。 ECB:电子密码本(最常用的,每次加密均产生独立的密文分组,并且对其他的密文分组不会产生影响,也就是相同的明文加密后产生相同的密文) 2. BASE64 因为BASE64的加密解密算法是公开的,所以加密数据是没有任何安全性可言。先来看看API文档中提供的BASE64加密的类。 DES DES的算法其实已经被公开了,其实是不太安全的。

    1.7K20发布于 2021-04-07
  • 来自专栏渗透测试专栏

    渗透测试web安全综述(2)——Web安全概述

    互联网刚刚开始是安全的,但是伴随着黑客(Hacker)的诞生,互联网变得越来越不安全。 黑客一词来源于“Hacker”,通常指对于计算机系统有深入的理解,能够发现其中的问题。 但是时代在发展,防火墙技术的兴起改变了互联网安全的格局。尤其是以思科、华为、深信服等代表的网络设备厂商,开始在网络产品中更加重视网络安全,最终改变了互联网安全的走向。 SQL注入漏洞至今仍然是Web安全领域中的一个重要组成部分。 XSS(跨站脚本攻击)的出现则是Web安全史上的另一个里程碑。 type=update,而由于应用程序没有对参数g做充足的过滤且将参数值直接显示在页面中,相当于 weibo.com 在页面中嵌入了一个来自于 2kt.cn的JS脚本。 而这种攻击,却是互联网安全维护人员最为无奈的攻击形式之一,信息泄漏、账户安全、网络安全无疑成为大众最关心的问题。

    73620编辑于 2024-09-27
  • 来自专栏python基础文章

    网络安全——数据链路层安全协议(2

    前言 本章将会讲解局域网中的数据链路层安全协议 一.局域网数据链路层安全协议 在IEEE802局域网标准中,涉及局域网安全的协议标准主要有802.10和802.1q。 ---- (2)IEEE802.10的应用模式 IEEE802.10协议最初的目的是制定一个互操作的局域网安全标准但没有得到业界的响应和支持。 ---- 2.IEEE 802.1q 早期VLAN在网络之间很难实施,每个VLAN都被手动配置在每个交换机上。对VLAN的管理,在一个延伸的网络中是非常复杂的任务。 图2表示了不同Cisco交换机之间的IEEE802.1g干线。 IEEE802.1p/g同属一个协议集,使用同一赖格式,它们是在传统的以太网帧格式中插入了一个标记(Tag)字段,占两个字节,如图2-5所示。

    68820编辑于 2023-10-15
  • 来自专栏python基础文章

    网络安全——数据链路层安全协议(2

    前言 本章将会讲解局域网中的数据链路层安全协议 一.局域网数据链路层安全协议 在IEEE802局域网标准中,涉及局域网安全的协议标准主要有802.10和802.1q。 ---- (2)IEEE802.10的应用模式 IEEE802.10协议最初的目的是制定一个互操作的局域网安全标准但没有得到业界的响应和支持。 ---- 2.IEEE 802.1q 早期VLAN在网络之间很难实施,每个VLAN都被手动配置在每个交换机上。对VLAN的管理,在一个延伸的网络中是非常复杂的任务。 图2表示了不同Cisco交换机之间的IEEE802.1g干线。 IEEE802.1p/g同属一个协议集,使用同一赖格式,它们是在传统的以太网帧格式中插入了一个标记(Tag)字段,占两个字节,如图2-5所示。

    49730编辑于 2023-10-15
  • 来自专栏闵开慧

    java中线程安全

    关于线程安全,是指当多个线程访问同一个变量时,该变量不会因为多线程访问产生意想不到的问题,为了避免多线程访问的不可预知的问题,对于程序中多线程能访问到的变量要加锁,即加synchronized,放在同步块中 当然jdk中自带的一些类本身就实现了该机制,本身就是线程安全的,比如StringBuffer,Vector等。多线程是程序中比较高级的一个方面,希望你能深入理解!

    82670发布于 2018-03-30
  • 来自专栏Naraku的专栏

    Java安全-RMI篇

    发起RMI通信 发起一次RMI通信,Server端192.168.111.1,Client端192.168.111.2 通信过程中会建立2次TCP连接,数据包附件在文末 第1次连接是Client和Registry xED开始就是序列化的数据,IP和端口这只是这个对象的一部分 返回的端口位于IP地址后一个字节,这里是\x00\x00\xe0\x77即57463,所以后面Client将向Server的该端口发起第2次请求 int("0x0000e077", 16) 第2次连接是Client和Server的连接。 官方文档:出于安全原因,应用程序只能绑定或取消绑定到在同一主机上运行的注册中心。这样可以防止客户端删除或覆盖服务器的远程注册表中的条目。但是,查找操作是任意主机都可以进行的。 RMI通信数据包:Java-Sec-RMI-rmi.pcapng.zip 参考文章: Java安全漫谈 基于Java反序列化RCE - 搞懂RMI、JRMP、JNDI Java安全之RMI反序列化 RMI

    1.2K30编辑于 2022-04-01
  • 来自专栏xdecode

    Java源码安全审查

    最近业务需要出一份Java Web应用源码安全审查报告, 对比了市面上数种工具及其分析结果, 基于结果总结了一份规则库. 本文目录结构如下:  ? 修复方式     (1)程序对非受信的用户输入数据进行净化,删除不安全的字符。     (2)限定输入类型, 创建一份安全字符串列表,限制用户只能输入该列表中的数据。 ,不应使用被业界公认的不安全的哈希算法(如MD2、MD4、MD5、SHA、SHA1等)来保证数据的完整性。 (md.digest()); // to HexString 不安全的随机数 Java API中提供了java.util.Random类实现PRNG(),该PRNG是可移植和可重复的,如果两个java.util.Random ,如java.security.SecureRandom类。

    3.6K20发布于 2018-07-25
  • 来自专栏Android补给站

    图解 Java 线程安全

    那么你的线程是安全的吗?线程安全的原理又是什么呢? (本文内容是个人学习总结浅见,如有错误的地方,望大佬们轻拍指正) 2 线程安全 了解线程安全的之前先来了解一下 Java 的内存模型,先搞清楚线程是怎么工作的。 2次。 那么 Java 是如何来解决上述问题来保证线程安全,保证共享内存的原子性、可见性、有序性的呢? 3 线程同步 Java 提供了一系列的关键字和类来保证线程安全 3.1 Synchronized 关键字 保证方法或代码块操作的原子性 Synchronized 保证⽅法内部或代码块内部资源(数据)的互斥访问

    94950发布于 2019-07-22
领券