几道密码题练习记录

简介: 最近网络攻防课程中做了几道CRYPT题目,整理之后在此记录。0x01 上学期的知识snipaste20180522_120232.png拿到题目,是一个包含很多16进制字节的txt文件,其中重复出现2d、20和2d,转换为ASCII码后是.-和空格。

最近网络攻防课程中做了几道CRYPT题目,整理之后在此记录。

0x01 上学期的知识

snipaste20180522_120232.png
snipaste20180522_120232.png

拿到题目,是一个包含很多16进制字节的txt文件,其中重复出现2d、20和2d,转换为ASCII码后是.-和空格。

snipaste20180522_120359.png
snipaste20180522_120359.png

比较明显的摩斯密码,直接解得到字符串:

AMJINQ0M04IKLII1I74398K0099308L2LNL93I

再通过凯撒密码解密得到flag:

SEBAFI0E04ACDAA1A74398C0099308D2DFD93A

0x02 这是新知识?

snipaste20180522_120746.png
snipaste20180522_120746.png

下载附件得到压缩包,但是压缩包打开似乎是加密过的


snipaste20180522_120914.png
snipaste20180522_120914.png

想到可能是zip的伪加密,用010editor工具打开zip,修改第二个504B头之后的加密位为偶数结尾:


snipaste20180522_121042.png
snipaste20180522_121042.png

可以直接打开zip,得到flag:

snipaste20180522_121103.png
snipaste20180522_121103.png

0x03 密码是8位弱密码

snipaste20180522_121245.png
snipaste20180522_121245.png

题目名称提示是8位弱密码加密
找了很多常用弱密码字典来跑,并没有跑出来,拿Ziperello暴力破解,得到弱密码为:


snipaste20180522_121459.png
snipaste20180522_121459.png

奇怪的是拿到的密码还是打不开zip压缩包,待解。

0x04 你知道的密码学

snipaste20180522_121620.png
snipaste20180522_121620.png

打开txt文件得到提示:

cmzzwtcdlimzydhphdelohroipptlwetydtchvadozstwdcmznyzvdqomiwzwivacmznyzvrhzwtcltmawvtvzvjphwopivjyijzdzgdwimzwyqqtmdzahdipwtrtyvdwvyskzmtcltmawroimirdzmwwzvdzvrzwivaweppikpzwipwtriprypidzwpzghripazvwhdeivadozfzehwuhmjhvhi

NmSgNv{m09f718v9kr8gk7p66ncv38nr0i44640}

用quip网站解上面一段文字,得到词频结果为:

free software utility which allows you to find the most frequent phrases and frequencies of words non english language texts are supported it also counts number of words characters sentences and syllables also calculates lexical density and the key is virginia

看到最后的英文提示是“key is virginia”,因此对加密的flag使用维吉尼亚密码解密,key为virginia,得到结果:

SeBaFi{e09f718a9ca8ac7c66fca38fa0c44640}

0x05 Ron Rivest,Adi Shamir,Leonard Adleman

snipaste20180522_121914.png
snipaste20180522_121914.png

txt文件中题目描述:

n = 87924348264132406875276140514499937145050893665602592992418171647042491658461
e = 65537

hex(密文) = 0xbd26c0d83060811775e4beb2c9778fd9407d55c7c4aa47e216181be0a201e559

求明文

题目是一道简单的RSA题,其中的n可以用在线大数分解工具进行分解
http://factordb.com/
得到分解结果:

n可以分解
 275127860351348928173285174381581152299
 319576316814478949870590164193048041239

之后可以通过拓展欧几里得等计算得到d,并且对密文使用私钥进行解密:

d =10866948760844599168252082612378495977388271279679231539839049698621994994673
SeBaFi{RSA_is_easy}

结果:


snipaste20180522_122412.png
snipaste20180522_122412.png

这里给出解密python脚本:

def egcd(a, b):
    if a == 0:
      return (b, 0, 1)
    else:
      g, y, x = egcd(b % a, a)
      return (g, x - (b // a) * y, y)
def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
      raise Exception('modular inverse does not exist')
    else:
      return x % m

c=0xbd26c0d83060811775e4beb2c9778fd9407d55c7c4aa47e216181be0a201e559
n=87924348264132406875276140514499937145050893665602592992418171647042491658461
p=275127860351348928173285174381581152299
q=319576316814478949870590164193048041239
e=65537
d=modinv(e,(p-1)*(q-1))
#print (p-1)*(q-1)
print d
m=pow(c,d,n)
print hex(m)[2:len(hex(m))-1].decode('hex')

0x06 作者喜欢看RFC1421

snipaste20180522_122534.png
snipaste20180522_122534.png

题目提示RFC1421,并且给出一个txt文件,大小为695K,此题暂未解,待续。

0x07 春秋战国

snipaste20180522_122800.png
snipaste20180522_122800.png

题目说明:

Rivest Cipher 4

key welcometohere

密文 EGpwsa7kUBTFPIAZxBhGE1O0ijxYKftGPnkPEH4dTJHpu1w0D+Njs73oP24qwTqNt+2L/XbIgwQ=

使用很多RC4解密工具,未解出可打印字符串,待续。

0x08 题目都好难啊

snipaste20180522_123220.png
snipaste20180522_123220.png

题目附件只给了一个图片:


7.png
7.png

直接扔到百度识图,没有什么结果,继续扔到google识图,拿到出处和解密图(google还是6的)

google识别图片
https://www.taringa.net/posts/tv-peliculas-series/19306900/Aprende-el-Alfabeto-Alienigena-de-Futurama.html

SeBaFi{alienmess}

0x09 我好菜啊

snipaste20180522_123405.png
snipaste20180522_123405.png

题目描述:

已知椭圆曲线加密Ep(a,b)参数为
p = 15424654874903
a = 16546484
b = 4548674875
G(6478678675,5636379357093)

私钥为
k = 546768
求公钥K(x,y)
提示:K=kG

提交格式SeBaFi{x+y}
(注意,大括号里面是x和y加起来求和,不是用加号连接)

这题考的是椭圆加密的加法和乘法,直接计算K=kG即可
其中计算有限域下的乘法结果取余时涉及分数取余,也需要使用拓展欧几里得计算乘法逆元进行计算
对于这题有另外一篇记录:
https://www.yourhome.ren/index.php/sec/314.html

这里给出python脚本:

#coding:utf-8
#欧几里得算法求最大公约数
def get_gcd(a, b):
    k = a // b
    remainder = a % b
    while remainder != 0:
        a = b 
        b = remainder
        k = a // b
        remainder = a % b
    return b
    
#改进欧几里得算法求线性方程的x与y
def get_(a, b):
    if b == 0:
        return 1, 0
    else:
        k = a // b
        remainder = a % b       
        x1, y1 = get_(b, remainder)
        x, y = y1, x1 - k * y1          
    return x, y

#返回乘法逆元
def yunsle(a,b):
    #将初始b的绝对值进行保存
    if b < 0:
        m = abs(b)
    else:
    m = b
    flag = get_gcd(a, b)

    #判断最大公约数是否为1,若不是则没有逆元
    if flag == 1:   
    x, y = get_(a, b)   
    x0 = x % m #对于Python '%'就是求模运算,因此不需要'+m'
    #print(x0) #x0就是所求的逆元
        return x0
    else:
    print("Do not have!")


mod=15424654874903
#mod=23
a=16546484
#a=1
b=4548674875
#b=1
G=[6478678675,5636379357093]
#G=[3,10]
#次数
k=546768
temp=[6478678675,5636379357093]
#temp=[3,10]
for i in range(0,k):
    if i == 0:
        aaa=(3*pow(G[0],2) + a)
        bbb=(2*G[1])
        if aaa % bbb !=0:
            val=yunsle(bbb,mod)
            y=(aaa*val) % mod
        else:
            y=(aaa/bbb) % mod
    else:
        aaa=(temp[1]-G[1])
        bbb=(temp[0]-G[0])
        if aaa % bbb !=0:
            val=yunsle(bbb,mod)
            y=(aaa*val) % mod
        else:
            y=(aaa/bbb) % mod

    #print y
    Rx=(pow(y,2)-G[0] - temp[0]) % mod
    Ry=(y*(G[0]-Rx) - G[1]) % mod
    temp=[Rx,Ry]
    #print temp

print temp
snipaste20180522_123803.png
snipaste20180522_123803.png

这个计算结果验证没错,扔到平台上却过不去。

0x10 付费游戏

snipaste20180522_123908.png
snipaste20180522_123908.png

题目描述是将一个16位MD5结果变成32位:

498782e74580b57b

将一个16位MD5变成32位

说白了就是题目的意思,花钱破解MD5
不过口袋瘪瘪,只能找资源破了

最终拿到明文:

this is flag

32位MD5结果是

6f450d5d498782e74580b57b1bdd138e

16位MD5就是从32位中取中间16位而已
不过这里验证没有错误,提交平台再次通不过,挠头。

目录
相关文章
升级mybatis-plus到3.5.3.1和JSQLParser 从4.3升级到4.6版本引起的插入问题解决
升级mybatis-plus到3.5.3.1和JSQLParser 从4.3升级到4.6版本引起的插入问题解决
2482 0
|
10月前
|
存储 人工智能 架构师
构建自己的AI编程助手:基于RAG的上下文感知实现方案
打造智能代码助手,远不止调用API。需构建专为代码设计的RAG系统:基于AST解析保障分块完整性,向量库实现语义检索,结合仓库地图提供全局结构,再通过推理链整合上下文。如此,AI才能真正理解代码,胜任重构、答疑等复杂任务,成为懂你项目的“资深工程师”。
818 7
构建自己的AI编程助手:基于RAG的上下文感知实现方案
|
10月前
|
机器人 物联网 定位技术
图书馆服务机器人技术解析:四大类型与核心能力评估
随着AI技术发展,图书馆服务机器人已广泛应用于咨询导览、图书盘点、仓储配送与互动教育四大场景。本文系统解析其技术架构、核心能力、选型标准及发展趋势,助力智慧图书馆高效建设。
|
Ubuntu Linux
Ubuntu 查看发行版本
可以查看 Linux 版本信息及类型。
504 0
|
搜索推荐 应用服务中间件 Apache
301重定向:SEO优化与网站迁移的必备指南
本文深入讲解了301重定向的原理、应用场景及实现方法,帮助解决网站改版、拼写错误等问题导致的流量损失和SEO排名下降。通过Apache、Nginx配置、CMS插件或编程语言等多种方式实现301重定向,并提供了注意事项与最佳实践,助你优化网站结构,提升用户体验,保护搜索引擎排名。
720 13
|
前端开发 JavaScript 数据库
全栈开发者的成长之路:从基础到精通
【7月更文挑战第25天】全栈开发者的成长之路是一条既充满挑战又充满机遇的旅程。通过广泛积累基础知识、精进专业技能和积累实战经验,你可以逐步成长为一名优秀的全栈开发者。在这个过程中,保持对新技术的好奇心和学习热情是至关重要的。同时,也要注重团队合作和沟通能力的培养,因为在软件开发领域,一个人的力量是有限的,而团队的力量是无穷的。希望本文能为你的全栈开发之旅提供一些有益的启示和帮助。
|
安全 Java 开发者
深入了解Spring Cloud Security:构建安全的分布式微服务
随着微服务架构的流行,安全性成为了构建分布式系统的关键问题之一。Spring Cloud Security是Spring家族中的一个强大工具,它提供了一系列功能,帮助开发者轻松地保护其微服务应用程序。本文将深入探讨Spring Cloud Security的各个方面,从基本概念到实际应用,帮助您构建安全的分布式微服务。
|
Kubernetes 安全 数据安全/隐私保护
云卓越架构:容器安全最佳实践
本次分享由阿里云智能集团解决方案架构师张玉峰主讲,主题为“云卓越架构:容器安全最佳实践”。内容涵盖容器安全的挑战、云原生容器安全架构及典型场景。首先分析了容器安全面临的问题,如镜像漏洞和权限管理。接着介绍了容器安全架构的五个维度:身份权限管理、配置安全检查、运行时防护、镜像安全检测及发布的安全管控。最后通过具体场景展示了容器身份与权限管理、密钥管理、运行时防入侵等最佳实践,强调了安全左移的重要性,确保从开发到运行的全生命周期安全覆盖。
|
Linux
linux播放器
Linux系统提供多种音乐和视频播放器,如Iceplayer(原Splayer),支持多种音频格式及丰富功能,被誉为Linux版千千静听;Amarok是KDE桌面的强大音乐播放器;Rhythmbox是GNOME的默认播放器,简洁实用;Clementine是跨平台且源自Amarok 1.4的播放器;VLC是跨平台的强大播放器,支持众多音频和视频格式;Audacious则是一款简约轻便的播放器,适合喜欢Winamp风格的用户。每款播放器都有其特色,用户可根据需求选择。
924 3
linux播放器
|
Ubuntu Linux Docker
【ClickHouse】深入浅出系列之快速部署ClickHouse
【ClickHouse】深入浅出系列之快速部署ClickHouse

热门文章

最新文章