小迪安全21WEB 攻防-JavaWeb 项目JWT 身份攻击组件安全访问控制

#知识点:

1JavaWeb 常见安全及代码逻辑

2、目录遍历&身份验证&逻辑&JWT

3、访问控制&安全组件&越权&三方组件


Java:大部分都是第三方插件出现漏洞

webgoat的搭建:——java靶场

JDK版本要求:11.0以上

需先启动webgoat-server:java -jar webgoat-server-8.1.0.jar --server.port=8080

然后访问http://127.0.0.1:8080/WebGoat,进行登录/创建

账号:atwood

Pw:123456


通过路径注入进行说明

本题只:需上传图片,路径需要再指定的路径下

通过直接上传,得知,上传的文件位置

通过bp进行抓包

通过对应的url中的地址,找到对应的文件

.jar:也是一个封装模式

通过反编译,可以获得从中的文件

先看文件中的配置文件

再看包,找到对映的包,点击添加到库,即将包解压开

找到配置文件,发现与POST中的地址一样,因此可知道此页面为数据文件

对数据的操作的代码

查看bp,进行对照

再根据直接上传的文件进行分析得知,我们输入的Fullname会直接为文件名进行上传,若要上传到指定的文件位置的话,可以进行数据更改

更改成功,因此完成本题要求

需要往前进2个文件../test

还有些对其进行了一定的过滤

可通过双写绕过等


身份验证

根据POST中的文件路径进行查找

验证结果(静态)

分析:

验证问题:

Question1:xxx?

Question2:xxx?

以字典的形式进行传送,接收键名 键值

即:question1=xx&question2=xx——先是键名正确,后键值正确——验证成功

固定的接受数据:question1、question2判断验证数据

不固定的:

写入问题本身以外的:

Question3=xxx&Question4=xxx——不存在

数据库会判断他们为question3=null&question4=null

若数据库没有对数据值为null进行异常捕获,则会直接通过

正常输入

进行参数更改

通过


JWT缺陷

Json web令牌进行身份验证——通常是对JAVA、Python的web应用程序进行运用

https://www.cnblogs.com/yokan/p/14468030.html

jwt由三个部分组成:header.payload.signature

如果判断网站用JWT进行验证

通过bp抓取数据包,看Cookie头,由.连接的三段字符串组成。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

以base64加密

解密地址:JSON Web Tokens - jwt.io

若要成为管理员账户,则需对admin的值改为true,并加密将此值放到bp中替换掉以前的参数——这种思路是不对的,要考虑到签名之类的

攻击方式一:

空密钥算法破解:

将对alg的值改为None,即让此算法失效,只有两段有效字符串(header+'.'+payload,去掉了'.'+signature字段)

JWT是支持None值的,一般都用来进行调试。

生成字符串:算法模式+密匙

每一个字符串的生成都会伴随着一些密钥、签名等,所以如果我们直接对admin的值进行更改,是改不成的,因为我们没有密钥;那么我们可以不要密钥去生成,需要服务器的支持,这就是空密钥算法加密

如何判断服务器是否支持空密钥呢?

Bp抓包,查后端文件,进行分析

最后对alg值设为None,admin值为true,再进行base64加密

2.爆破

对JWT解析

得到后,发现密钥是不知道的,只有找到了正确的密钥,字符串生成才是正确的

利用相关工具进行破解(一般是字典爆破):

a.一个脚本

b.相关工具:c-jwt-cracker

破解之后,

查看文件中显示已经设置好的算法密钥

c.KID攻击

Kid是JWT header中的一个可选参数,用于指定加密算法的密钥

从而暴漏出了三个漏洞安全:

A.任意文件读取

B.SQL注入

C.命令注入

https://www.cnblogs.com/HAN91/p/14585449.html


安全组件:

组件:java库和JavaScript库等

通过bp抓包,查找对应的文件位置

查看对应的组件:

判断是第三方库还是java自身的库

1.这种就明显为java自身的库了

2.这种则为第三方库

查看第三方库,收集信息

查到历史漏洞

CVE 2013-7285 Poc——对其漏洞进行利用:对此服务器进行植入木马

<sorted-set><string>foo</string><dynamic-proxy><interface>java.lang.Comparable</interface><handler class="java.beans.EventHandler"><target class="java.lang.ProcessBuilder"><command><string>calc.exe</string> ——启动服务器的计算器</command></target><action>start</action></handler></dynamic-proxy></sorted-set>

如:最近的Log4j2

访问控制:

-隐藏属性:前端页面的自卫限制显示

-水平越权:同一级别用户权限的查看

Java通常都是爆中低危的漏洞

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

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

相关文章

应用案例 | 基于三维机器视觉的螺钉抓取上料解决方案

近年来&#xff0c;机器人技术日新月异&#xff0c;为各行各业的发展注入了新的活力。制造业作为一项工作内容重复、劳作时间长的产业&#xff0c;对自动化改造需求最为迫切&#xff0c;因此&#xff0c;也是机器人技术渗透最早、最广的产业。 螺钉抓取在制造业的应用十分广泛&…

Tomcat好帮手---JDK

目录 1、Tomcat好帮手---JDK 2、安装JDK 部署Tomcat参考博主博客 部署TOMCAT详解-CSDN博客 1、Tomcat好帮手---JDK JDK是 Java 语言的软件开发工具包&#xff0c;JDK是整个java开发的核心&#xff0c;它包含了JAVA的运行环境&#xff08;JVMJava系统类库&#xff09;和JAVA…

OpenCV书签 #互信息的原理与相似图片搜索实验

1. 介绍 互信息&#xff08;Mutual Information&#xff09; 是信息论中的一个概念&#xff0c;用于衡量两个随机变量之间的关联程度。在图像处理和计算机视觉中&#xff0c;互信息常被用来度量两幅图像之间的相似性。 互信息可以看成是一个随机变量中包含的关于另一个随机变…

HashMap源码阅读;HashMap的put()方法;

当我们使用一个HashMap做插入操作时。put方法内部都做了什么呢&#xff1f; public static void main(String[] args) {HashMap<String, String> map new HashMap<>();map.put("key1", "value1"); }put 方法 源码 public V put(K key, V v…

ADB的配置和使用 ADB常用命-2

# 知道的命令&#xff1a; # 1 开启和关闭adb服务&#xff08;可以不开启&#xff0c;敲任意一个adb命令&#xff0c;就会自动开启&#xff09; adb start-server 启动ADB adb kill-server 关闭ADB # 2 列出电脑上链接的手机 adb devices # List of devices att…

Apache Jmeter测试websocket连通性

1、在windows电脑下载apache jmeter 下载地址详情Apache-Jemeter-download 2、解压打开文件夹&#xff0c;下载 jmeter-plugins-manager下载地址&#xff0c;下载后存放到lib的ext路径下&#xff0c; 同时也可以更改bin路径下的jmeter.properties对应第三十七行修改为如下&…

Java 设计者模式以及与Spring关系(五) 策略和观察者模式

目录 简介: 23设计者模式以及重点模式 策略模式&#xff08;Strategy Pattern&#xff09; 示例 spring中应用 观察者模式&#xff08;Observer&#xff09; 示例 spring中应用 简介: 本文是个系列一次会出两个设计者模式作用&#xff0c;如果有关联就三个&#xff0c;…

03_web端交互协议之HTTP

本课目标 (Objective) 理解HTTP协议简介掌握常见HTTP请求方式掌握HTTP协议响应状态码理解HTTP协议的交互原理 1. 前后端是如何交互的 通信协议&#xff08;Communication Protocol&#xff09;是指通信双方对数据传送控制的一种约定。 前端与服务端的数据传输是基于HTTP协议…

中仕教育:事业编招考全流程介绍

一、报名阶段 1. 了解查看招聘信息&#xff1a;查看各类事业编岗位的招聘信息&#xff0c;包括岗位职责、招聘条件、报名时间等。 2. 填写报名表&#xff1a;按照要求填写报名表&#xff0c;包括个人信息、教育背景、工作经历等内容。 3. 提交报名材料&#xff1a;将报名表及…

linux install nvm

官网地址&#xff1a;https://github.com/nvm-sh/nvm 1、wget https://codeload.github.com/nvm-sh/nvm/tar.gz/refs/tags/v0.39.7 tar -zxvf v0.39.7 2、vim ~/.bashrc $HOMEroot export NVM_DIR"$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \…

ASRT——部署SpeechRecognition

安装tensorflow&#xff1a; pip install tensorflow2.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ 报错解决&#xff1a;tensorflow出现报错&#xff1a; Could not locate zlibwapi.dll

JPA单元测试

使用TestPropertySource注解并尝试加载多个配置文件时&#xff0c;Spring框架并不直接支持同时加载多个属性文件。locations属性的值应为一个或多个classpath路径&#xff0c;但每次只会应用其中一个配置文件。 如果你希望在单元测试中合并主配置文件&#xff08;application.…

Hive3.1.3基础学习

文章目录 一、Hive入门与安装1、Hive入门1.1 简介1.2 Hive架构原理 2、Hive安装2.1 安装地址2.2 Hive最小化安装(测试用)2.3 MySQL安装2.4 配置Hive元数据存储到MySQL2.5 Hive服务部署2.6 Hive服务启动脚本(了解) 3、Hive使用技巧3.1 Hive常用交互命令3.2 Hive参数配置方式3.3 …

利用sqlmap探测get类型注入

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 基础:GET基于报错的sql注入利用-脱库-CSDN博客 sqlmap 工具是kali自带的 例子我都用sql靶场的第一关做演示 1、探测数据库名 sqlmap -u "http://192.168.0.103/sqlilab…

Arduino开发实例-使用SIM800L GSM模块接收和发送短信

使用SIM800L GSM模块接收和发送短信 文章目录 使用SIM800L GSM模块接收和发送短信1、硬件准备1.1 SIM800L介绍2、硬件接线原理图3、代码实现3.1 AT指令测试3.2 发送短信3.3 接收短信3.4 拨打电话3.5 接听电话在本文中,我们将使用 SIM800L GSM 模块和 Arduino。 SIM800L是一款低…

制作一个简单的HTML个人网站

在当今数字化的世界里&#xff0c;拥有一个个人网站已经成为了展示个人品牌、分享作品和信息的必备工具。虽然有各种复杂的内容管理系统&#xff08;CMS&#xff09;和平台可以帮助我们快速搭建个人网站&#xff0c;但对于初学者或者想要了解更多技术细节的人来说&#xff0c;从…

Linux系统安全加固规范

第1章 概述 1.1 适用范围 本配置标准的使用者包括&#xff1a;服务器系统管理员、应用管理员、网络安全管理员。 1.2 适用版本 LINUX系列服务器&#xff1b; 第2章 账号管理、认证授权 2.1 账号 2.1.1 用户口令设置 安全基线项目名称 操作系统Linux用户口令安全基…

算法训练营Day52(动态规划13)

300.最长递增子序列 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 提醒 今天开始正式子序列系列&#xff0c;本题是比较简单的&#xff0c;感受感受一下子序列题目的思路。 class Solution:def lengthOfLIS(self, nums: List[int]) -> int:if le…

【CANoe使用大全】——Graphics窗口

文章目录 1.Graphics作用2.Graphics窗口打开方式2.1.Analysis—>Graphics2.2.Measurement Setup ------> Graphics 3.变量添加4.Graphics窗口菜单栏介绍4.1. 单个测量光标4.2. 差分测量光标4.3.Y轴的显示方式4.3.1.Show Y-Axis of Selected Signal4.3.2.Show All Y-Axis4…

抽象工厂模式-C#实现

该实例基于WPF实现&#xff0c;直接上代码&#xff0c;下面为三层架构的代码。 一 Model using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 设计模式练习.Model.抽象工厂模式 {public abstrac…