BUUCTF-Crypto详细Writeup
每一天都要努力啊 ----2024-01-01 18:11:36
1.一眼就解密
原题:下面的字符串解密后便能获得flag:ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30= 注意:得到的 flag 请包上 flag{} 提交
由小写字母大写字母和数字组成,尾部是’=‘,猜测为base64编码,base64解密后得到flag:flag{THE_FLAG_OF_THIS_STRING}
base64
特征:密文由64个字符(A-Z,a-z,0-9,+,/)组成,末尾可能会有1或2个’=’ 最多有2个。 举例:MDEyMzQ1Njc4OTA=、
2.MD5
原题:e00cf25ad42683b3df678c61f42c6bda
md5解密得到flag:admin1
md5
特征:MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要(32位的数字字母混合码)。密文由数字和字母组成,大多为32位,同时具有不可逆的特点,即知道密文,无法得到原文。
推荐解题网站:https://www.somd5.com/
3.Url编码
原题:%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d
有很多百分号的就是url编码,直接url解码
得到flag:flag{and 1=1}
25.[AFCTF2018]Morse
原题:-..../.----/-..../-..../-..../...--/--.../....-/-..../-..../--.../-.../...--/.----/--.../...--/..---/--.../--.../....-/...../..-./--.../...--/...--/-----/...../..-./...--/...--/...--/....-/...--/...../--.../----./--.../-..
直接用toolsFX的morse解密,得到61666374667B317327745F73305F333435797D,只有数字和字母A--F,猜测为16进制,再16进制转化为ascii码
得到flag:afctf{1s't_s0_345y}
29.还原大师
原题:我们得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母,为了确定这个神秘字符串,我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全,E903???4DAB????08?????51?80??8A?,请猜出神秘字符串的原本模样,并且提交这个字串的32位MD5码作为答案。 注意:得到的 flag 请包上 flag{} 提交
直接暴力破解:上脚本
py脚本
import string
from itertools import product
import hashlib
raw=list("TASC?O3RJMV?WDJKX?ZM")
md5="E903???4DAB????08?????51?80??8A"
table=string.ascii_uppercase
for val in product(table,repeat=3):
raw[4]=val[0];raw[11]=val[1];raw[-3]=val[2]
md=hashlib.md5("".join(raw).encode()).hexdigest().upper()
if md[:4]==md5[:4]:
print(md)
30.异性相吸
原题:最近出现了一个奇葩观点,说性别都不一样,怎么能谈恋爱?为了证明这个观点错误,请大家证明异性是相吸的。 注意:得到的 flag 请包上 flag{} 提交,下载附件,有两个文件,其中一个是key.txt:asadsasdasdasdasdasdasdasdasdasdqwesqf,另外一个密文打不开。
解题:本题一直强调异性,由此猜测是异或,网上大多wp都是要先转2进制010,但是其实并不用。以下给出解题代码:
py脚本
from Crypto.Util.number import *
from binascii import unhexlify
with open("F:/百度网盘/b8c1caee-43d6-42ee-aecc-d72502a5ade2/key.txt","rb") as f:
file1=(bytes_to_long(f.read()))
with open("F:/百度网盘/b8c1caee-43d6-42ee-aecc-d72502a5ade2/密文.txt","rb") as f:
file2=(bytes_to_long(f.read()))
re=file1^file2
c=hex(re)[2:]
print(unhexlify(c))
得到flag:flag{ea1bc0988992276b7f95b54a7435e89e}
31.RSA
原题:给了两个文件flag.enc和pub.key。其中pub.key可以直接打开。我用的是脚本,但是还是解释一下把:一下是pub.key的内容
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY9+7+ --> n
/AvKr1rzQczdAgMBAAE= --> e
-----END PUBLIC KEY-----
关于key.pub文件的内容,请看这篇文章:https://blog.csdn.net/he25819/article/details/119467334
我们可以直接拿到网站上去得到n和e的值,不过那么太没有技术含量了,我们还是写脚本。
py脚本
# -*- coding:utf-8 -*-
"""
作者:Wang Xinwei
日期:2023年12月27日
"""
import rsa
import base64
from Crypto.PublicKey import RSA
from Crypto.Util.number import *
with open('****/pub.key' ,'r') as f:
key= RSA.importKey(f.read())
public_key=key.publickey().exportKey()
# private_key=key.exportKey()
# print(public_key.decode())
# print(private_key.decode())
n=key.n
print(n)
e=key.e
print(e) #得到n之后分解n
q=863653476616376575308866344984576466644942572246900013156919
p=965445304326998194798282228842484732438457170595999523426901
phi=(q-1)*(p-1)
d=inverse(e,phi)
private_key=rsa.PrivateKey(n,e,d,q,p) #直接得到私钥.
with open('****/flag.enc' ,'r') as fi:
m=fi.read()
print(m)
m=base64.b64decode(m)
print(rsa.decrypt(m,private_key))
BUUCTF-Crypto详细Writeup的更多相关文章
- BUUCTF—CRYPTO 1—10
BUUCTF-CRYPTO 1-10 1.MD5 题目:e00cf25ad42683b3df678c61f42c6bda 解析:看题目就知道是MD5加密,直接上在线解码网站解码,答案是:flag 2. ...
- BUUCTF Crypto
BUUCTF 几道crypto WP [AFCTF2018]Morse 简单的莫尔斯密码,最直观的莫尔斯密码是直接采用空格分割的点和划线,这题稍微绕了一下使用的是斜杠来划分 所以首先将斜杠全部替换为空 ...
- 实验吧Crypto题目Writeup
这大概是一篇不怎么更新的没什么用的网上已经有了很多差不多的东西的博客. 变异凯撒 忘记了2333 传统知识+古典密码 先查百度百科,把年份变成数字,然后猜测+甲子的意思,一开始以为是加1,后来意识到是 ...
- buuctf 随便注 writeup
1.0 打开页面 显然这个题的考点是注入,那我们来测一下 2.0 sql注入测试 1 2 输入 1' 后发现没有回显,改为 1' --+ 后,有回显,应该在这存在注入点 试一下 1' and 1=1 ...
- 360杯复赛流量分析题 详细writeup
题目名: 这是捕获的黑客攻击数据包 通过分析流量包,得知黑客先上传了一个文件: 追踪TCP流,可以看到文件内容,是一个木马: 然后通过get请求一个加密key,在响应里能看到key的值. 接下来就是用 ...
- Buuctf pwn1 详细wp
目录 程序基本信息 程序溢出点 确定返回地址 编写exp脚本 成功getshell 程序基本信息 我们可以看到这是一个64程序,没有保护开启. 程序溢出点 gets函数可以读取无限字符,存在栈溢出. ...
- BUUCTF CRYPTO部分题目wp
对密码学了解不多,做一下熟悉熟悉 1,看我回旋踢 给的密文synt{5pq1004q-86n5-46q8-o720-oro5on0417r1} 简单的凯撒密码,用http://www.zjslove. ...
- BUUCTF Crypto_WP(2)
BUUCTF Crypto WP 几道密码学wp [GXYCTF2019]CheckIn 知识点:Base64,rot47 下载文件后,发现一个txt文件,打开发现一串base64,界面之后出现一串乱 ...
- BUUCTF 部分wp
目录 Buuctf crypto 0x01传感器 提示是曼联,猜测为曼彻斯特密码 wp:https://www.xmsec.cc/manchester-encode/ cipher: 55555555 ...
- 一步一步学ROP之linux_x64篇
一步一步学ROP之linux_x64篇 一.序 **ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防 ...
随机推荐
- TDengine 用户案例合集 | 智能环保项目的时序数据处理难点与优化实践
智能环保系统通常涉及大量的传感器和监测设备,以收集环境数据并对其进行分析和处理,这些数据通常是时序数据,即在一段时间内按时间顺序生成的数据,规模庞大且要求快速准确地进行分析和处理.也因此时序数据处理是 ...
- 工作中常用的一些Git骚操作,一般人我不告诉他。
一.Git提交代码 1 git pull 从服务器上拉取代码 2 git status 查看文件的状态 3 git add . 添加所有文件到暂存区 4 git commit -m "提交的 ...
- Llama2-Chinese项目:4-量化模型
一.量化模型调用方式 下面是一个调用FlagAlpha/Llama2-Chinese-13b-Chat[1]的4bit压缩版本FlagAlpha/Llama2-Chinese-13b-Chat-4 ...
- 前端三件套系例之JQuery——JQuery动画效果、JQuery插件、
文章目录 1 JQuery动画效果 1. 基本效果 2. 滑动效果 3 淡入淡出效果 4 自定义动画 5 动画控制 6 设置 7 事件 7-1 常用事件 7-2 事件绑定 7-3 移除事件 7-4 阻 ...
- 聊聊JDK19特性之虚拟线程
1.前言 在读<深入理解JVM虚拟机>这本书前两章的时候整理了JDK从1.0到最新版本发展史,其中记录了JDK这么多年来演进过程中的一些趣闻及引人注目的一些特性,在调研JDK19新增特性的 ...
- git 设置记住密码和清除密码
git 设置记住密码和清除密码 1. 永久记住密码 该命令会记住密码,执行一次 git pull 或 git push 等需要输入密码的命令,输入一次密码, 之后就都不必再输入了 git conf ...
- 以效率为导向:用ChatGPT和HttpRunner实现敏捷自动化测试(二)
1.前言 在上一篇文章: 利用ChatGPT提升测试工作效率--测试工程师的新利器(一)中,我们提到了如何通过chatGPT生成单接口测试用例,然后再让chatGPT去根据测试用例去生成接口自动化脚本 ...
- JS个人总结(2)
1.null被认为是一个空的对象引用..如果定义的变量准备将来用保存对象,最好将该变量初始化null.即 var x=null;这样只有检查null值就可以知道这个变量是否已经保存了一个对象.. 2. ...
- 每天5分钟复习OpenStack(七)内存虚拟化
标题中的存储虚拟化,涉及到两个方面,分别是内存和磁盘的虚拟化技术.内存的虚拟化就不得不提EPT和VPID 技术. 首先申明下本人其实不想写一些纯理论的东西,但是架不住面试经被问,为此特将一些特别复杂的 ...
- 网格布局grid
起因 昨天面试的时候,出了一道面试题,模拟面试公司的列表的元素宽度伸缩变化,根据屏幕大小的不同,一行上放置最多的元素,元素宽度不固定,间距固定,可换行,靠左对齐,当时猜出来用flexjs监听resiz ...