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-配置文…...
【雕爷学编程】MicroPython动手做(18)——掌控板之声光传感器
知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…...
Ribbon源码
学了feign源码之后感觉,这部分还是按运行流程分块学合适。核心组件什么的,当专业术语学妥了。序章:认识真正のRibbon 但只用认识一点点 之前我们学习Ribbon的简单使用时,都是集成了Eureka-client或者Feign等组件,甚至在…...
Linux下在终端输入密码隐藏方法
Linux系统中,如何将在终端输入密码时将密码隐藏? 最近做简单的登录界面时,不做任何操作的话,在终端输入密码的同时也会显示输入的密码是什么,这样对于隐蔽性和使用都有不好的体验。那么我就想到将密码用字符*隐藏起来…...
【ARM 常见汇编指令学习 3 -- ARM64 无符号位域提取指令 UBFX】
文章目录 ARM64 无符号位域提取指令 上篇文章:ARM 常见汇编指令学习 2 – 存储指令 STP 与 LDP 下篇文章:ARM 常见汇编指令学习 4 – ARM64 比较指令 cbnz 与 b.ne 区别 ARM64 无符号位域提取指令 在代码中如何监控寄存器的某1bit, 或者某几…...
求分享如何批量压缩视频的容量的方法
视频内存过大,不但特别占内存,而且还会使手机电脑出现卡顿的现象,除此之外,如果我们想发送这些视频文件可能还会因为内存太大无法发送。因此,我们可以批量地压缩视频文件的内存大小,今天小编要来分享一招&a…...
ChatGPT 是如何工作的:从预训练到 RLHF
欢迎来到人工智能的未来:生成式人工智能!您是否想知道机器如何学习理解人类语言并做出相应的反应?让我们来看看ChatGPT ——OpenAI 开发的革命性语言模型。凭借其突破性的 GPT-3.5 架构,ChatGPT 席卷了世界,改变了我们…...
KafKa脚本操作
所有操作位于/usr/local/kafka_2.12-3.5.1/bin。 rootubuntu2203:/usr/local/kafka_2.12-3.5.1/bin# pwd /usr/local/kafka_2.12-3.5.1/bin rootubuntu2203:/usr/local/kafka_2.12-3.5.1/bin# ls connect-distributed.sh kafka-delegation-tokens.sh kafka-mirror-mak…...
【自动化运维】playbook剧本
目录 一、Ansible 的脚本 playbook 剧本1.1playbooks的组成 二、剧本编写实验2.1定义、引用变量2.2使用远程主机sudo切换用户2.3whenn条件判断2.4迭代 三、Templates 模板四、Tags模板 一、Ansible 的脚本 playbook 剧本 1.1playbooks的组成 (1)Tasks&…...
java中双引号和单引号的区别
起因 刷题的时候,有判断是否相同的情况,然后我发现单引号和双引号在上的表现不一样,所以记录一下。 解释 在Java中,双引号(" ")和单引号(’ )在使用上有很重要的区别&a…...
jenkinsfile指定jenkins流水线的构建号
背景 升级Jenkins过程中不小心导致流水线配置文件job目录丢失, 重新配置流水线后所有流水线构建号码都从1开始构建了, 然而我们的产品关联了jenkins构建号,重新从1 构建会导致各种问题. 解决方案 在Jenkinsfile文件中指定流水线的构建号为一个不存在的数字, 这样就不会冲突了…...
重庆智能网站建设推荐/seo信息网
这篇文章主要为大家详细介绍了织梦模板后台生成提示“模板文件不存在,无法解析文档”解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。有些用在在使用织梦后台更新织梦模板后生成全站静态的时候…...
潍坊个人网站制作/添加友情链接的技巧
引入 在使用全站仪时,每次的测量的坐标均可保存在储存中,便于后期内业导入Cass中成图。导出的.dat数据的格式如下(随手编造的数据) 其中每一行为一个点的数据,用英文逗号隔开,分别表示代号,(空值),X坐标,…...
上海企业做网站/做网站怎么做
LESS 允许开发者自定义变量,变量可以在全局样式中使用,变量使得样式修改起来更加简单。例如: border-color : #b5bcc7;.mythemes tableBorder{border : 1px solid border-color;} 经过编译生成的 CSS 文件如下: .mythemes tableBo…...
网址域名注册局/seo经典案例分析
分类: 工具 2014-04-23 14:41 1857人阅读 评论(1) 收藏 举报 目录(?)[] 项 目开发结束了,需要做一下压力测试,就使用apache自带的ab程序进行压力测试,300个并发20000个请求,压了4组,服务器端内存就疯长到了…...
个人业务网站建设/windows系统优化软件
欢迎使用Xcode Xcode是Apple的集成开发环境(IDE)。您使用Xcode为Apple产品(包括iPad,iPhone,Apple Watch,Apple TV和Mac)构建应用程序。 Xcode提供了用于管理整个开发工作流程的工具-从创建您的应用程序到测试,优化并将其提交到App Store。 项目将组织开发应用程序所…...
泉州网站建设优化/泰州百度seo公司
Log4net用法 http://www.cnblogs.com/hfliyi/archive/2012/05/20/2510783.html...