Java经典问题解答(9题)

news2024/12/25 9:26:39

文章目录

    • 1、通关jwt靶场的其中任意两关(该题与Java无关)
      • 启动环境
      • 第4关
      • 第5关
      • 第7关
    • 2、java是如何跨平台通信的
    • 3、java为什么需要类名和文件名一致
    • 4、main函数的作用是什么
    • 5、.class文件和.java是什么关系
    • 6、java在编写函数的时候void是什么意思
    • 7、java声明变量的时候,写int,String是为了申请内存,为什么不直接写内存宽度
    • 8、为什么java有面向对象的概念,请举例说明
    • 9、继承的作用是什么
    • 10、为什么子类要重写父类的方法

1、通关jwt靶场的其中任意两关(该题与Java无关)

启动环境

将文件拷贝到kali虚拟机的桌面,在终端中进入桌面,输入下面命令,安装靶场,端口指定为8888:

sudo java -jar webgoat-server-8.0.0.M17.jar --server.port=8888

如图,启动成功:

在这里插入图片描述

打开bp的内置浏览器,输入127.0.0.1:8888/WebGoat打开靶场网站:

在这里插入图片描述

注册一个账号:

在这里插入图片描述

注册成功后点击Broken Authentication中的JWT token,来到第一关:
在这里插入图片描述

第4关

点击第四关,这一关是一个投票界面,选择Tom用户,然后点击删除按钮,出现一段提示只有管理员可以重置该投票:

在这里插入图片描述

点击删除投票,并用bp抓到post请求包,发送到repeater模块,在cookie字段找到JWT:

在这里插入图片描述

将这段JWT放到JWT解码网站中解码,发现payload载荷信息中用户是Tom,admin字段值是false:

在这里插入图片描述

将这段信息复制到base64加密网站中,将false改为true,并复制加密后除=外的base64密文,并替换原来的payload字段:

在这里插入图片描述

和修改payload方法一样,修改JWT头部的算法类型为none,让它不要加密,替换原来的payload字段:

在这里插入图片描述

将修改后的header和payload字段替换数据包中的cookie字段,注意加上点,这样后端才能识别,点击send发送,提示重置投票成功:

在这里插入图片描述

回到网页刷新,发现票数均变为1:

在这里插入图片描述

第5关

这关给出了JWT,要求修改exp并爆破密钥

在这里插入图片描述

复制这段JWT,vim在桌面新建一个JWT.txt文件,放入复制的密钥:

在这里插入图片描述

用下面命令爆破JWT的密钥,字典用1.txt:

hashcat -m 16500 JWT.txt -a 3 -w 3 1.txt

-a 3 代表蛮力破解

-w 3 可以理解为高速破解,就是会让桌面进程无响应的那种高速

JWT.txt 是我把题目要求破解的 token 保存到的文件

爆破成功,密钥为victory:
在这里插入图片描述

按照题目的要求,修改username为WebGoat,并修改时间戳:

在这里插入图片描述

输入爆破出的密钥:

在这里插入图片描述

将修改后的JWT提交后即可通关:

在这里插入图片描述

第7关

来到第7关,这一关要求冒充Tom用户为另一个无JWT的非法用户付钱
在这里插入图片描述

点击右下角的购买,提示没有JWT:

在这里插入图片描述

用bp抓包,发送到repeater模块,发现该数据包有一个单独存放JWT的Authorization字段:

在这里插入图片描述

右键here,在新窗口打开,可以查看日志:

在这里插入图片描述

复制一个用户的token:

在这里插入图片描述

解码后发现是Tom用户的token:
在这里插入图片描述

将该token在数据包中替换之前抓到数据包的Authorization字段,发送后依然报错,提示我们在日志中找到的JWT已经过期:
在这里插入图片描述

复制Tom用户的exp字段,这里的一串数字就是payload的过期时间戳,复制到网站解码,显示过期时间是2018-5-13:
在这里插入图片描述

用一个新的时间戳:

在这里插入图片描述

替换原来的exp字段,加密后替换原来的payload,由于没有密钥,JWT头部也需要替换,修改后发送,发现提示成功:

在这里插入图片描述

2、java是如何跨平台通信的

如下图,Java文件经过编译变为class文件(字节码文件),然后由Java虚拟机即JVM运行class文件。Linux和Windows都是不能直接识别class文件的,所以需要JVM来运行。

正是由于JVM的存在,所以Java文件可以在不同平台上运行

在这里插入图片描述

3、java为什么需要类名和文件名一致

因为Java虚拟机JVM只认识Java文件中的类名,如果类名和文件名不一致,JVM就无法识别,如下面代码:

public class Hello{
	public static void main(String[] args){
	System.out.println("123456");
	}
}

执行它的hello.java文件:

在这里插入图片描述

4、main函数的作用是什么

main()函数是Java应用程序的入口函数。main函数是Java中格式固定的、能被JVM识别的函数,只有main函数中的代码才能被执行,main()函数的声明为:public static void main(String args[])。必须这么定义,这是Java的规范。如果没有main函数,JVM就不知道如何执行。 如下面的Java代码:

public class Hello{
	public static void main(String[] args){
	System.out.println("123456");
	}
}

它就相当于php中的这段代码:

<?php
echo "123456"
?>

5、.class文件和.java是什么关系

.class 文件可以被视为已编译的 .java 文件。它是在 JVM(Java 虚拟机)上运行的文件。

.java文件只有一个,.class文件不一定只有一个,它的数量取决于.java文件中类的个数,有几个类,编译后就有几个.class文件。

6、java在编写函数的时候void是什么意思

如下图的java代码,void是函数的返回值类型,表示返回值为空,在不需要返回值时使用void。

public class Person{
	public int age;
	public String name;
	public void talk(){
		System.out.println("Person 说话了");
	}
}

7、java声明变量的时候,写int,String是为了申请内存,为什么不直接写内存宽度

因为不同类型的变量在内存空间中的存储格式是不同的,不同的存储格式有不同的读取方法,只有声明变量的类型,java程序才知道如何读取存储的数据,如下图是小数在内存空间存储,0.25在内存中的存储也是0和1,只有声明合适的类型才能正确读取。

在这里插入图片描述

8、为什么java有面向对象的概念,请举例说明

因为java是一种面向对象的编程语言。而面向对象是为了解决系统的可维护性,可扩展性,可重用性

面向对象的三大特征是封装、继承和多态,面向对象能有效提高编程的效率。

通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。

通过使用继承我们能够非常方便地复用以前的代码,能够大大的提高开发的效率。

Java是一个典型的面向对象的编程语言,它属于解释型的语言,由于它只在运行时才逐句进行翻译,所以它引用的变量的类型和该变量调出的类的方法在编程时并不能确定,只能在运行时才能确定,类似于**“薛定谔的猫”,不同的是,这个形态时可以人为引导它“塌陷”**到某一具体的类,这样一来,程序员可以在不修改源代码的情况下,就可以让引用的变量绑定不同的类,从而调用不同的方法,让程序可以选择多个状态,这就是面向对象语言的多态性。

9、继承的作用是什么

避免重复造轮子。子类继承父类的函数,避免了重复写代码。通过使用继承我们能够非常方便地复用以前的代码,能够大大的提高开发的效率。

10、为什么子类要重写父类的方法

如果子类不对分类的方法进行重写,那么子类的方法会完全继承父类,不能达成程序员想要实现的功能,如下面的父类:

public class Person{
	public int age;
	public String name;
	public void talk(){
		System.out.println("Person 说话了");
	}
}

继承但未重写的子类:

public class Student extends Person{
	public void talk(){

	}
}

子类调用父类的方法:

public class Test
	public static void main(String[] args){
		Student st1 = new Student ();
		stl.talk();
		}
}

输出的结果:

在这里插入图片描述

这样的结果明显不是我们想要的,重写子类:

public class Student extends Person{
public void talk(){
	System.out.println("Student 说话了");
	}
}

再次输出,结果为:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010004.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLM在电商推荐系统的探索与实践

本文对LLM推荐的结合范式进行了梳理和讨论&#xff0c;并尝试将LLM涌现的能力迁移应用在推荐系统之中&#xff0c;利用LLM的通用知识来辅助推荐&#xff0c;改善推荐效果和用户体验。 背景 电商推荐系统&#xff08;Recommend System&#xff0c;RecSys&#xff09;是一种基于用…

微信小程序与idea后端如何进行数据交互

交互使用的其实就是调用的req.get(url)方法 进行路径访问&#xff0c;你要先保证自己的springboot项目已经成功运行了&#xff1a; 如下&#xff1a; 如何交互的&#xff1f; 微信小程序&#xff1a;如下为index.js页面 在onLoad()事件中调用方法Project.findAllCities() 要…

C++面试记录之中望软件

上次面试体验不好&#xff0c;记录了&#xff0c;这次同样记录一次体验不好的面试&#xff0c;中望软件…直接写了名字&#xff0c;因为真的很无语&#x1f613; 记录一下我不知道的问题 忘记录音了&#x1f622; 1. main函数之前做了什么&#xff1f; 我&#xff1a;实话我…

java使用itext生成pdf

效果&#xff1a; maven依赖 <!--PDF处理--><!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</vers…

SpringMVC:从入门到精通,7篇系列篇带你全面掌握--七.自定义注解

目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Java注解简介 1.原生注解的分类 &#xff08;1&#xff09;JDK基本注解 ①Override ②SuppressWarnings(value "unchecked") &#xff08;2&#xff09;JDK元注解…

Golang goroutine MPG模式浅析

协程是通过使用关键字 go 调用&#xff08;或执行&#xff09;一个函数或者方法来实现的&#xff08;也可以是匿名函数&#xff09;。 Go 语言在语言层面上支持了并发&#xff0c;goroutine是Go语言提供的一种用户态线程&#xff0c;有时我们也称之为协程。 所谓的协程&#x…

Generative Adversarial Nets

Author:龙箬 Computer Application Technology Change the World with Data and Artificial Intelligence ! CSDNweixin_43975035 生命不息&#xff0c;折腾不止 Reference&#xff1a; [1] Goodfellow, I, Pouget-Abadie, J, Mirza, M, Xu, B, Warde-Farley, D, Ozair, S, Co…

《优化接口设计的思路》系列:第一篇—接口参数的一些弯弯绕绕

大家好&#xff01;我是sum墨&#xff0c;一个一线的底层码农&#xff0c;平时喜欢研究和思考一些技术相关的问题并整理成文&#xff0c;限于本人水平&#xff0c;如果文章和代码有表述不当之处&#xff0c;还请不吝赐教。 作为一名从业已达六年的老码农&#xff0c;我的工作主…

PSP - 蛋白质序列提取 Transformer 蛋白质语言模型 ESM2 特征

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132888139 蛋白质语言模型 ESM (Evolutionary Scale Modeling) 是一种利用深度学习技术来预测蛋白质结构和功能的方法。ESM 通过在大规模的蛋白质…

激光雷达检测负障碍物(附大概 C++ 代码)

检测效果如图&#xff0c;红色是正负的障碍物点&#xff1a; 障碍物根据其相对于地面的高度可以分为两类&#xff1a;正向障碍物和负向障碍物。在室外环境中&#xff0c;负障碍物是沟渠、悬崖、洞口或具有陡峭负坡度的地形&#xff0c;可能会造成安全隐患。 不慎通过道路坑洼处…

【电子通识】案例:采用电阻分压式采样电压的设计注意事项

在一些应用中,我们往往采用电阻分压方式来采样外部电压。如文章【Arduino+ESP32专题】案例:简单的实现NTC热敏电阻检测板卡温度中我们就使用一个10K的电阻与NTC电阻形成分压,通过ADC读取到的电压换算成温度值来检测外部环境温度。 当然,比如手持机的电池电压,如果没有一些…

docker-compose 中 depends_on 的作用

文章目录 depends_on 介绍depends_on 有一个长定义模式condition 说明required 说明 参考文档 depends_on 介绍 在 Docker Compose 中&#xff0c;depends_on 是一个用于定义服务之间依赖关系的关键字。它允许您指定一个或多个服务依赖于其他服务&#xff0c;以确保在启动或重…

基于STM32F407ZET6的环境温湿度监控系统(粤嵌GEC-M4)

注意使用事项&#xff1a; 开发板如下 由于外部晶振是8M&#xff0c;需要修改setup和stm32f4头文件的晶振值。 操作如下&#xff1a; system_stm32f4xx.c的254行 #define PLL_M 8stm32f4xx.h的127行 #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the Ex…

实战SRC漏洞挖掘全过程,流程详细【网络安全】

前言 记录一次完整的某SRC漏洞挖掘实战&#xff0c;为期一个多星期。文章有点长&#xff0c;请耐心看完&#xff0c;记录了完整的SRC漏洞挖掘实战 渗透过程 因为选择的幸运儿没有对测试范围进行规划&#xff0c;所以此次范围就是没有范围。 先上主域名看一眼&#xff0c;看…

2023 Google 开发者大会 – AI 领域的技术更新

大会介绍 Google 开发者大会是 Google 面向开发者和科技爱好者展示最新产品和平台的年度盛会。2023 Google 开发者大会 (Google I/O Connect | China) 为开发者提供丰富的学习资源&#xff0c;实践操作和现场演示&#xff0c;提供与谷歌专家互动、与其他开发者交流的契机&…

贝锐蒲公英客户端6.0发布,异地组网更快、更简单

贝锐蒲公英客户端6.0全新升级&#xff0c;新版本融合了企业版、个人版和个人管理端&#xff0c;不同身份用户可以统一登录&#xff0c;快速部署&#xff0c;即装即用&#xff0c;为异地组网带来更加简单、高效的解决方案。 快速部署、即装即用&#xff0c;支持不同身份用户统一…

langchain主要模块(三):Chain

langchain2之Chain langchain1.概念2.主要模块模型输入/输出 (Model I/O)数据连接 (Data connection)链式组装 (Chains)代理 (Agents)内存 (Memory)回调 (Callbacks) 3.链• LLMChain&#xff1a;• SimpleSequentialChain• Sequential Chains:• RouterChain&#xff1a; lan…

社群团购平台方的选品,无外乎就几个方面:

社群团购平台方选品&#xff0c;无外乎几个方面&#xff1a; 1、是个主推广爆品&#xff0c;好产品&#xff08;好产品的标准&#xff1a;有卖点&#xff1a;比如&#xff1a;有 品牌力、市场需求力、诱人的性价比等&#xff09; 2、你是否跟社群团购平台方说清楚这个产品的优…

什么是云存储,从对象存储说起?

在《存储系统形态之争,从块存储到统一存储》一文中我们提到了对象存储的概念,知道目前很多企业级存储都是支持对象存储的,比如EMC、NetApp和华为等。以EMC的对象存储为例,其最早在1998年就已经具备成熟的产品了,到目前已经有二十多年的历史了。如图是关于对象存储主要产品…

科研诚信与学术规范MOOC-错题集

为了确保学术和科研诚信&#xff0c;很多大学制定了荣誉法则。大学建立荣誉制度的初衷旨在预防大学生考试作弊。“反相对论公司”是对科学的不当干预。&#xff08;√&#xff09;科学具有普遍性&#xff0c;与种族、国籍、宗教、阶级和个人品质等个人因素无关。&#xff08;不…