web漏洞-java安全(41)

这个重点是讲关于java的代码审计,看这些漏洞是怎么在java代码里面产生的。
#Javaweb 代码分析-目录遍历安全问题
这个漏洞原因前面文章有,这次我们看看这个漏洞如何在代码中产生的,打开靶场
解题思路就是通过文件上传,上传文件把它应该正常上传的路径进行修改,更改他的上传路径。
查看页面源码
我们正常上传一个文件,看一下他的储存路径
就是箭头指向的对方。
这关的过关思路就是把这个文件上传到其他目录下面去。
而我们发现fullname是test,上传后文件的命中也叫test,我们改一下fullname为xiaodi,上传文件的名字也变成小迪了。
这时候我们试着把名字改成../xy,../是意思就是上一级,那我们这样子上传,会不会上传到他的上一级目录下面../
上传一下
成功了,成功过关。
这个有什么意义,我们还没有讲过目录权限解析这个东西,如果对方设置了目录解析权限,这个目录下面的文件的监听,比如一个图片的储存目录,他就可以设置不给予脚本执行权限,如果能操作储存到目录,就可以上传到别的目录,因为别的目录就可能没有设置权限。
我们看一下这关代码是怎么回事
我们看代码重点要看,模块引用(框架,自带的等等),路由地址,静态文件(html,js等等)简易代码理解。

这个就是java一个比较知名的框架,

这个就类似php里面的get什么的,就是接收数据,后门是变量值,
在这个数据包里面就有代码中的变量。

接受fullname值给value,在数据包里面也有显示,还有fullname的值

这个mltioatfile和上面引用的名字一样,就是引用的上面的功能。
这就是mltioatfile声明的情况

这个代码的大概含义就是,把输入的文件赋值到输出的地方来。
#打开第三关

还是同样的绕过,不过../被修复了,
先上传一个文件看看保存路径,代码,差不多,多了一个过滤
这个因为他只过滤一次,所以就可以直接用循环绕过,写为....//,这样子绕过
就成功了。
#Javaweb 代码分析-前端验证安全问题
因为他的验证产生在前端,不在后端验证,
打开靶场
就是尝试登陆, 随便输入个账户密码抓一下数据包

查看一下源码


tosring改编为字符串格式,equals对比括号内的内容是否相同,
我们该如何在黑盒情况下,获取到账户密密码,在java里面组成目录结构的相关问题,我们直接在html网站的源码页面就可以查看
因为是前端验证,去看那个加载代码
我们解码的时候要把/x去掉,才能解码出来
这个就是账号和密码。
我们还可以不写账号密码,直接点击登录吗,就触发前端的jscript代码,抓住数据包就可以看到账户密码
这一关是告诉我们看代码,要去看那些代码,
Javaweb 代码分析-逻辑越权安全问题

先登录进去,
就会显示一些信息

查看一下这一关的过关要求

这个靶场登录之后,会展示一些用户的信息,比如账户,而这些是由网站决定的展示什么,比如密码就不会展示。
你有很多信息,但是网站会选择部分显示。而这一关是教我们可以通过数据包的发送,把本来不显示的信息,显示出来。
这一关就是让你获取不显示出来的的两个信息,该怎么操作。我举个栗子,假如他有sql语句去数据库查询,如果我在数据包里面让他去显示密码这种信息,相当于他传递过去回去查询,会查出来,就会显示出来,这个要看对方代码1会不会显示查询的其他信息,
这里传过去两个参数,而这一关就会显示这两个参数的信息,就过关了,这一关的目的就是让我们知道可以通过数据包之类的查看到不显示的信息出来,
代码审计

![]()
提交poost数据就请求括号里面的内容来。
![]()
接受attributes的数据
而我们输入好参数点的那个按钮接受attribues,代码里面接受他的变量值。

逗号分割,如何判断是否小于2,小于2就判断失败。
![]()
这个就是去判断他的第一个数组,是否等于不显示的参数值,等于就过关了。
下一关
代码审计

![]()
接受变量url。

以斜杠分隔开,然后比对值,所有值都相等的就过关了,前三个值都有显示,但是第四个值就没有固定值,
![]()
第四个值从括号里面的id获取来的

第四个、
![]()
userfile是我们常说的对象,但是在这个页面的代码里没有就在上面的引用文件里面,

就找到了,之后再把之前的值拼接到一起
这个值就是答案。
这一关的想要告诉我们,就是类似于接口问题。找一个网站看一下
每一个用户都有自己对应的编号,而我们换一下上面的编号就会换一个用户,就可以获取更多信息,知道用户访问地址,就可以不断更改对应值,用户的变更。
#Javaweb 代码分析-XSS 跨站安全问题

直接看代码

![]()
接受answerxss1的值,

数据包里面也有这个
![]()
这个就对比是不是yes,直接在框框里面输入yes点击按钮就过关了。
打开第七关

抓一下数据包找一下对应源代码在哪个文件里面

我们再看一下靶场显示哪些数据出来
显示箭头指的值。

代码是有先后执行顺序的, 而根据代码来看,只要进入else里面,触发else的代码,就可以了,就不会在有field1的过滤了,所以fielad2里面不存在那些过滤的东西,把跨站语句写在field1里面,在数据包修改
而我们还可以不用他过滤里面的那些关键字来实现绕过,之前xss绕过文章里面有。
而将这些就是有一些漏洞java和php是一样的,没有啥变化;
#拓展-安卓 APP 反编译 JAVA 代码(审计不香吗?)
网上随便下一个apk文件,如何拿去反编译为jar文件,就是它的代码
添加到ic里面查看源代码,就可以进行源码分析了,如果apk里面涉及到web网站,协议就可以找关于web的漏洞,
s
相关文章:
web漏洞-java安全(41)
这个重点是讲关于java的代码审计,看这些漏洞是怎么在java代码里面产生的。 #Javaweb 代码分析-目录遍历安全问题 这个漏洞原因前面文章有,这次我们看看这个漏洞如何在代码中产生的,打开靶场 解题思路就是通过文件上传,上传文件…...
用CSS和HTML写一个水果库存静态页面
HTML代码: <!DOCTYPE html> <html> <head><link rel"stylesheet" type"text/css" href"styles.css"> </head> <body><header><h1>水果库存</h1></header><table>…...
【回眸】备考PMP考点汇总 三(距离考试还有20天)
目录 前言 【回眸】备考PMP考点汇总 三(距离考试还有20天) 29、管理质量 30、获取资源 31、建设团队 32、管理团队 33、管理沟通 34、实施风险应对 35、实施采购 36、管理相关方参与 37、监控项目工作(10%) 38、实施整…...
新房的收房验房注意事项
文章目录 流程注意事项准备检查材料手续整体结构验收水电检测门窗结构地面工程墙面工程顶面工程阳台厨房卫生间户外设施 流程注意事项 只要发现问题,不管大小,都要在相关文件或表格中记录下来,而不管开发商以及陪同的收房人员如何花言巧语。…...
ARM裸机-5
1、可编程器件的编程原理 1.1、电子器件的发展方向 模拟器件-->数字器件 ASIC-->可编程器件 1.2、可编程器件的特点 CPU在固定频率的时钟控制下节奏运行。 CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行。 这些可以被CPU解码执行的二进制指…...
SpringCloud学习路线(11)——分布式搜索ElasticSeach场景使用
一、DSL查询文档 (一)DSL查询分类 ES提供了基于JSON的DSL来定义查询。 1、常见查询类型: 查询所有: 查询出所有的数据,例如,match_all全文检索(full text)查询: 利用…...
负数补码表示
负数补码作用 在计算机中加法和减法采用同一电路,即用加法表示减法,如7 - 2 5变成7 ( -2) 5,这样减法的电路不用另行设计,但计算机中数据以二进制存储,没有负号,因此设计负数补码代…...
ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱
一、ChatGPT结合知识图谱 在本专栏的前面文章中构建 ChatGPT 本地知识库问答应用,都是基于词向量检索 Embedding 嵌入的方式实现的,在传统的问答领域中,一般知识源采用知识图谱来进行构建,但基于知识图谱的问答对于自然语言的处理…...
C++ 类和对象
面向过程/面向对象 C语言是面向过程,关注过程,分析出求解问题的步骤,通过函数调用逐步解决问题 C是基于面对对象的,关注的是对象——将一件事拆分成不同的对象,依靠对象之间的交互完成 引入 C语言中结构体只能定义…...
c# 此程序集中已使用了资源标识符
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS1508 此程序集中已使用了资源标识符“BMap.NET.WindowsForm.BMapControl.resources” BMap.NET.WindowsForm D:\MySource\Decompile\BMap.NET.WindowsForm\CSC 1 活动 运行程序时&a…...
WPF实战学习笔记30-登录、注册服务添加
登录、注册服务添加 添加注册数据类型添加注册UI修改bug UserDto的UserName更改为可null类型Resgiter 添加加密方法修改控制器 添加注册数据类型 添加文件MyToDo.Share.Models.ResgiterUserDto.cs using System; using System.Collections.Generic; using System.Linq; us…...
GDAL C++ API 学习之路 OGRGeometry 圆弧类 OGRCircularString
OGRCircularString Class <ogrsf_frmts.h> OGRCircularString 类是 OGR 几何库中的一个类,用于表示圆弧字符串(circular string)类型的几何图形。圆弧字符串是由一系列圆弧段组成的几何图形,每个圆弧段由三个点定义…...
机器学习:异常检测
问题定义 anomaly,outlier, novelty, exceptions 不同的方法使用不同的名词定义这类问题。 应用 二分类 假如只有正常的数据,而异常的数据的范围非常广的话(无法穷举),二分类这些不好做。另外就…...
flask中的蓝图
flask中的蓝图 在 Flask 中,蓝图(Blueprint)是一种组织路由和服务的方法,它允许你在应用中更灵活地组织代码。蓝图可以大致理解为应用或者应用中的一部分,可以在蓝图中定义路由、错误处理程序以及静态文件等。然后可以…...
Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建
Java版知识付费-轻松拥有知识付费平台 多种直播形式,全面满足直播场景需求 公开课、小班课、独立直播间等类型,满足讲师个性化直播场景需求;低延迟、双向视频,亲密互动,无论是互动、答疑,还是打赏、带货、…...
uniapp 瀑布流 (APP+H5+微信小程序)
WaterfallsFlow.vue <template><view class"wf-page" :class"props?.paddingC ? paddingC : "><!-- left --><view><view id"left" ref"left" v-if"leftList.length"><viewv-for…...
医疗小程序:提升服务质量与效率的智能平台
在医疗行业,公司小程序成为提高服务质量、优化管理流程的重要工具。通过医疗小程序,可以方便医疗机构进行信息传播、企业展示等作用,医疗机构也可以医疗小程序提供更便捷的预约服务,优化患者体验。 医疗小程序的好处 提升服务质量…...
ComPDFKit 转档SDK OCR表格识别功能
我们非常高兴地宣布,适用于 Windows、iOS、Android 和服务器的 ComPDFKit 转档SDK 1.8.0 现已发布!在该版本中,OCR 功能支持了表格识别,优化了OCR文字识别率。PDF to HTML 优化了html 文件结构,使转换后的 HTML 文件容…...
华为OD机考--阿里巴巴黄金箱
题目内容 贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子每个箱子上面贴有一个数字箱子中可能有一个黄金宝箱。 黄金宝箱满足排在它之前的所有箱子数字和等于排在它之后的所有箱子数字之和; 一个箱子左边部分…...
mybatis-config.xml-配置文件详解
文章目录 mybatis-config.xml-配置文件详解说明文档地址:配置文件属性解析properties 属性应用实例 settings 全局参数定义应用实例 typeAliases 别名处理器举例说明 typeHandlers 类型处理器environments 环境environment 属性应用实例 mappers配置 mybatis-config.xml-配置文…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
