bugku-加密-题解

CTF 密码学学习

1.==看密码学视频 有个基本了解 ==
https://www.bilibili.com/video/BV1Zx411H7RE/?spm_id_from=333.788.videocard.0
密码学网课的笔记:
1.1 概述
密码分析的分类
A.穷举攻击:是指密码分析者通过试遍密钥的方法来破译密码
B.统计分析攻击:一是指密码分析这通过分析密文和明文的统计规律来破译密码
C.数学分析攻击:指密码分析这针对加密规则的数学依据通过数学求解的方法来破译密码
1.2古典密码
A.移位密码:当移位为3时 移位密码体制通常叫凯撒密码
B.埃特巴什码
C.简单替换密码:加密时 将每个明文字母替换为与之唯一对应且不同的字母 它与凯撒密码之间的区别是密码字母表的字母不是简单的移位 而是完全混乱的
这也使破解难度要高于凯撒密码
D.摩斯电码:点 划点划之间的停顿
E.培根密码:使用两种不同的字体 代表A.B 结合加密表进行解密 特点:只有两个字符 每一段长度为5
F.栅栏密码:把加密的明文分成N个一组 然后把每组的第一个字连起来 形成无规律的话
G.曲路密码
H.猪圈密码:是一种以格子为基础的简单代替式密码
I:手机键盘密码:是每个数字键上有3.4个字母 用两个数组来表示字母

3.现代密码学
4.常见编码

在这里插入图片描述
在这里插入图片描述
BASE64 :4位的倍数 后面用=补齐 有等号百分之90是base64在这里插入图片描述
大小写都有 还有数字
在这里插入图片描述
2.开始完成bugku——加密题目
在这里插入图片描述
下面开始就是bugku的题解

第一题:滴答~滴
初始页面:
在这里插入图片描述看到这个想起了摩斯密码
http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx中解密
摩斯密码在线解码网站
在这里插入图片描述
flag就为这个

补充:摩斯密码
在这里插入图片描述

第二题:聪明的小羊
初始页面:
在这里插入图片描述
一只小羊翻过了2个栅栏 我们可以通过“栅栏”两个字猜到是栅栏解密

栅栏密码的原理:
在这里插入图片描述
要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的字符串
方法一:手动分解
KYsd3js2
E{a2jda}

得到 KEY{sad23jjdsa2}
方法2:
在线栅栏密码解密 网站:https://www.qqxiuzi.cn/bianma/zhalanmima.php
在这里插入图片描述
补充 :栅栏密码
在这里插入图片描述

第三题 ok
初始页面:
在这里插入图片描述
这个是Brainfuck/Ook!编码 在线解码网站:https://www.splitbrain.org/services/ook
点击Ook! to Text 即可得到flag
在这里插入图片描述
补充:CTF中常见密码题解密网站总结
https://blog.csdn.net/qq_41638851/article/details/100526839

第四题:这不是摩斯密码
初始页面:
在这里插入图片描述
在这里插入图片描述
这个也是Brainfuck/Ook!编码 另一种形式
直接用上一题的在线解码
点击 brainfuck to text 得到flag
在这里插入图片描述
第五题:easy_crypto
初始页面:
在这里插入图片描述
发现是一串二进制数
分析:一般对于二进制密码,考虑异或、转进制、转编码等,本题根据数字特征,上百度搜一下题目给的密文,发现与一个百度文库上的morse电码与ascii对应表吻合度很高。因此从Morse码表下手。
在这里插入图片描述
前几个与flag刚好对上 是摩斯密码 可以对照摩斯密码表解出来

FLAG{M0RSE_CODE_1S_INTEREST1N9!}(提交记得改为小写)
方法2:
用py脚本 将二进制摩斯密码转换为flag
脚本如下:
from future import print_function
a = input(“input the string:”)
s = a.split(" ")

dict = {‘01’: ‘A’,
‘1000’: ‘B’,
‘1010’: ‘C’,
‘100’:‘D’,
‘0’:‘E’,
‘0010’:‘F’,
‘110’: ‘G’,
‘0000’: ‘H’,
‘00’: ‘I’,
‘0111’:‘J’,
‘101’: ‘K’,
‘0100’: ‘L’,
‘11’: ‘M’,
‘10’: ‘N’,
‘111’: ‘O’,
‘0110’: ‘P’,
‘1101’: ‘Q’,
‘010’: ‘R’,
‘000’: ‘S’,
‘1’: ‘T’,
‘001’: ‘U’,
‘0001’: ‘V’,
‘011’: ‘W’,
‘1001’: ‘X’,
‘1011’: ‘Y’,
‘1100’: ‘Z’,
‘01111’: ‘1’,
‘00111’: ‘2’,
‘00011’: ‘3’,
‘00001’: ‘4’,
‘00000’: ‘5’,
‘10000’: ‘6’,
‘11000’: ‘7’,
‘11100’: ‘8’,
‘11110’: ‘9’,
‘11111’: ‘0’,
‘001100’: ‘?’,
‘10010’: ‘/’,
‘101101’: ‘()’,
‘100001’: ‘-’,
‘010101’: ‘.’,
‘110011’:’,’,
‘011010’:’@’,
‘111000’:’:’,
‘101010’:’:’,
‘10001’:’=’,
‘011110’:"’",
‘101011’:’!’,
‘001101’:’_’,
‘010010’:’"’,
‘10110’:’(’,
‘1111011’:’{’,
‘1111101’:’}’
};
for item in s:
print (dict[item],end=’’)
#print (s)
运行可得:在这里插入图片描述
第六题:简单加密
初始页面:
在这里插入图片描述
观察密码:因为末尾是AA与base64结尾的==相似,推断为base64和凯撒加密的结合。

=的ascii码为61,A为65.即前移四位。给定的密文的字符串每个字符的ascii减去4(65-61),最后再base64解密。

首先将其转换为ASCII码(在线工具)为:101,54,90,57,105,126,93,56,82,126,85,126,81,72,69,123,82,110,89,123,81,88,103,126,81,110,81,123,94,88,86,108,82,88,108,112,94,88,73,53,81,54,81,54,83,75,89,56,106,85,65,65
再用py脚本 将ascll码前移4位 并转换问base64
代码:
import base64
m=[101,54,90,57,105,126,93,56,82,126,85,126,81,72,69,123,82,110,89,123,81,88,103,126,81,110,81,123,94,88,86,108,82,88,108,112,94,88,73,53,81,54,81,54,83,75,89,56,106,85,65,65]
flag= ’ ’
i=4
for j in m:
flag+=chr(j-i)
flag=base64.b64decode(flag).decode()
print(flag)

得到的base64字符串:a2V5ezY4NzQzMDAwNjUwMTczMjMwZTRhNThlZTE1M2M2OGU4fQ==
在这里插入图片描述
第7题:散乱的密文
初始页面:
在这里插入图片描述
密文散乱,但还是感觉flag就在这里面,重点看第二句话“一张纸条上凌乱的写着2 1 6 5 3 4,看到这,我们就能想起来,在古典密码中,有一种特使的加密方式是分组置换加密,嗯,没错,这题就是,而且这道题已经把分组的顺序告诉了我们。下面看解题过程:

在这里插入图片描述
再用123456排列出来
在这里插入图片描述
在这里插入图片描述
删掉@@得到flag
补充:置换加密解密在这里插入图片描述
第8题:凯撒部长的奖励
初始页面:
在这里插入图片描述
题目就知道这是凯撒密码
注意提交格式为:SYC

在线凯撒解密网站:https://www.qqxiuzi.cn/bianma/kaisamima.php
但是前提需要直到位移多少位

补充:凯撒密码的位移
在这里插入图片描述
在这里插入图片描述
方法1:最高上限位移25 则不断调整位移 试出来
在这里插入图片描述
这串英文翻译出来 也表示解码正确

**方法2:**使用cracktools
在这里插入图片描述
输入选择凯撒解密在这里插入图片描述
找到syc打头的 也可以看哪行的英文可以翻译在这里插入图片描述
SYC{here_Is_yOur_rEwArd_enjOy_It_Caesar_or_call_him_vIctOr_is_a_Excellent_man_if_you_want_to_get_his_informations_you_can_join_us}

第9题:一段Base64
初始页面:
在这里插入图片描述
点开text在这里插入图片描述
使用Converter软件 解码
在这里插入图片描述
最后两个等号 bsae64在这里插入图片描述
发现还不是flag 于是复制输出到输入 再进行unescape解码
在这里插入图片描述
在这里插入图片描述
再将输出复制到输入 然后将文本转化为16进制
在这里插入图片描述
将参数输出复制到输入里面
在这里插入图片描述
再转化为十进制
在这里插入图片描述
最后再unicode转ascll码
在这里插入图片描述因为%7B %7D是url编码中的{} 将刚才的复制过来 进行url转换
在这里插入图片描述
得到flag
补充:URL 编码 - 从 %00 到 %8f在这里插入图片描述
第10题.!?
初始页面:
在这里插入图片描述
看到这种扯拐 直接猜Ook!解码
在线解码网站:https://tool.bugku.com/brainfuck/
在这里插入图片描述
得到flag

第11题:+[]-
初始页面:
在这里插入图片描述
又是扯拐的 Ook!解码
在这里插入图片描述第12题:奇怪的密码
初始页面:在这里插入图片描述联想ascll码
gndk的10进制的ASCII码分别是:103 110 100 107
flag的10进制的ASCII码分别是:102 108 97 103

发现ASCII以此减少
1 2 3 4,所以以此类推
写脚本 C语言脚本
在这里插入图片描述
在这里插入图片描述
flag{lei_ci_jiami}

第十三题托马斯.杰斐逊
初始页面:
在这里插入图片描述
加密方式:转轮加密
简介:
在这里插入图片描述
首先我们需要根据密钥将14行字符串调整顺序 第一行是原来的第二行,第二行是原来的第五行,以此类推
调整后为:
在这里插入图片描述
接着,我们需要对密文调整每行字符串
密文第一个字符H,第一行则变为:HGVSFUWIKPBELNACZDTRXMJQOY(将H之后的包括H调到前面来 其余不变)
密文第二个字符C,第二行则变为:CPMNZQWXYIHFRLABEUOTSGJVDK
以此类推

变为:
在这里插入图片描述
观察变换后的字符串,倒数第六列即为flag
在这里插入图片描述
flag{XSXSBUGKUADMIN}(提交变成小写)
方法2:用代码
#coding:utf-8
#秘钥
key=“2,5,1,3,6,4,9,7,8,14,10,13,11,12”
#密文
cipher_text = “HCBTSXWCRQGLES”

f = open(“zhuanlun.txt”)
str_first_encry = []

for line in f:
line = line.strip()
str_first_encry.append(line)

key_index = key.split(",")
str_second_encry=[]
for k in key_index:
str_second_encry.append(str_first_encry[int(k)-1])
print(str_first_encry[int(k)-1])

for i,ch in enumerate(cipher_text):
line = str_second_encry[i]
split_index = line.index(ch)
temp=[]
temp[0:len(line)-split_index+1] = line[split_index:len(line)]
temp[len(temp):] = line[0:split_index]
str_second_encry[i] = “”.join(temp)
print("-------------------------------------")
for plain in str_second_encry:
print(plain)

获得改变后的乱码:在这里插入图片描述

第14题:zip伪加密
初始页面:
有个压缩包 保存后 解压 需要密码
在这里插入图片描述
补充:伪加密
1.ZIP文件是一种压缩文件,可进行加密,也可不加密。而伪加密是在未加密的ZIP文件基础上修改了它的压缩源文件目录区里的全局方式位标记的比特值,使得压缩软件打开它的时候识别为加密文件,提示输入密码,
而在这个时候,不管用什么软件对其进行密码破解,都无法打开它,这就是它存在的意义。ZIP文件由三部分组成,分别是压缩源文件数据区、压缩源文件目录区和压缩源文件目录结束标志。这里使用010 Editor任意打开一个ZIP文件,如下所示:
在这里插入图片描述
2.在上图看到了三个不同的颜色,其中第一个颜色(灰色),即压缩文件数据区初始位置,只看前8个字节,解析如下:
在这里插入图片描述
3.第二个颜色(粉色),即压缩文件目录区初始位置,只看前10个字节,解析如下:
在这里插入图片描述
4.第三个颜色(黄色),即压缩文件目录区结束标志,只看前4个字节,解析如下:
在这里插入图片描述
5.在未加密的ZIP文件基础上,将压缩源文件目录区的全局方式位标记为0900,这样压缩软件就会识别该文件为加密文件,如下所示:
在这里插入图片描述
6.如果是真正的加密文件,数据内容如下所示:
在这里插入图片描述
7.真正加密的ZIP文件数据中在压缩文件数据区初始位置和压缩文件目录区初始位置的全局方式位标记变为了09
00,表示加密,而伪加密只有压缩文件目录区初始位置的全局方式位标记变为了09
00。此外在全局方式位标记的四个数值中,只有第二个数字对其有影响,其它的不管为什么值,都不影响其加密属性,并且第二个值不一定非的是9,只要第二个值是奇数就表示加密,是偶数就表示未加密。

用010打开在这里插入图片描述
搜索504B,点击第二个504B(压缩源文件目录区)
在这里插入图片描述
我们看到上图,红色框住的50 4B 是压缩源文件数据区的头文件标记,它对应的红色框柱的 09 00 并不影响加密属性。
绿色框住的50 4B 是压缩源文件目录区 ,它对应的绿色框柱的 09 00 影响加密属性,当数字为奇数是为加密,为偶数时不加密。

因此我们更改标志位保存即可(发现010改不了 应该是因为加密的原因 所以换成winhex打开压缩包)
在这里插入图片描述
随便改一个 只要是偶数就行 然后另存为 用winrar打开
在这里插入图片描述
注:得用WinRAR打开另存后的压缩包,现在360压缩打开仍然有密码。

解法2:
使用ZipCenOp.jar

将flag.zip和ZipCenOp.jar都放在同一文件夹

在命令行中执行以下命令:

java -jar ZipCenOp.jar r flag.zip
在这里插入图片描述
直接打开压缩包即可。
在这里插入图片描述

第15题:告诉你个秘密(ISCCCTF)
初始页面:
在这里插入图片描述
看起来像16进制的字符串 于是进行16进制转字符串
在线转换网站:https://tool.lu/hexstr/
在这里插入图片描述
得到字符串 cjV5RyBscDlJIEJqTSB0RmhCVDZ1aCB5N2lKIFFzWiBiaE0g
有大写有小写有数字 推测是bae64编码
在这里插入图片描述
对应的是键盘的键位 太扯了
r5yg中间是t 以此类推 得到tongyuan (提交改成大写)
FLAG:TONGYUAN

第16题:这不是md5

初始页面:
在这里插入图片描述
这不是md5
那么观察一下这一串字符
(1)数字为0-9,字母中,字符没有超过F。
(2)字符两两结合对应的十进制小于256。注:FF(十六进制)=255(十进制)

因此,猜测为16进制 用16进制在线转换:https://www.bejson.com/convert/ox2str/
在这里插入图片描述
得到flag

第17题:贝斯家族
初始页面:
在这里插入图片描述
根据题目名字就可以看出来base64的兄弟姐妹
根据wp的参考 可以知道这是base91
在线网站去解码:http://www.atoolbox.net/Tool.php?Id=935
在这里插入图片描述得到flag

补充:base91
base91是将二进制数据编码为ASCII字符的高级方法。

它类似于UUencode或base64,但效率更高。 base91产生的开销取决于输入数据。
它的数量最多为23%(而base64为33%),范围可以降低到14%,通常发生在0字节块上。
这使得basE91对于通过二进制不安全连接(例如电子邮件或终端线)传输较大的文件非常有用。

顾名思义,basE91需要91个字符来表示ASCII编码的二进制数据。
从94个可打印ASCII字符(0x21-0x7E)中,以下三个字符被省略以构建basE91字母:

-(破折号,0x2D)
\(反斜杠,0x5C)
'(撇号,0x27)

转换表由其余字符组成,如下所示。
在这里插入图片描述
base91的总结:看到夹杂了数字字母还有很多种特殊符号的字符串,可以试着用base91解码一下

第18题富强民主
初始页面:
在这里插入图片描述
看到这个密码——>http://ctf.ssleye.com/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
得到flag 核心价值观也背熟了 一箭双雕

第19题:python(N1CTF)
初始页面:
在这里插入图片描述
这道题参考别人的题解 不会做 参考网址:https://www.cnblogs.com/0yst3r-2046/p/12123653.html

上来就给了两个文件,一个是加密的源代码,一个是加密过程文件
在这里插入图片描述
代码如下:在这里插入图片描述
在这里插入图片描述代码如下:在这里插入图片描述
从两个文件的代码可以判断:
N1ES.py是封装好的类, challenge.py是定义的对象。

补充:什么是Feistel加密结构?
构造过程:

令F 为轮函数;令K1,K2,……,Kn 分别为第1,2,……,n 轮的子密钥。那么基本构造过程如下:
(1)将明文信息均分为两块:(L0,R0);
(2)在每一轮中,进行如下运算(i 为当前轮数):
Li+1 = Ri;
Ri+1 = Li ⊕F (Ri,Ki)。(其中⊕为异或操作)
所得的结果即为:(Ri+1,Li+1)。

解密过程:

对于密文(Rn+1,Ln+1),我们将i 由n 向0 进行,即, i = n,n-1,……,0。然后对密文进行加密的逆向操作,如下:
(1)Ri = Li+1;
(2)Li = Ri+1⊕F (Li+1,Ki)。(其中⊕为异或操作)
所得结果为(L0,R0),即原来的明文信息。

在这里插入图片描述
Feistel 密码结构,在密码学研究中,Feistel 密码结构是用于分组密码中的一种对称结构。
Feistel 的优点:由于它是对称的密码结构,所以对信息的加密和解密的过程就极为相似,甚至完全一样。这就使得在实施的过程中,对编码量和线路传输的要求就减少了几乎一半。

补充:什么是des算法?

DES(Data Encryption Standard)是目前最为流行的加密算法之一。
DES是对称的,也就是说它使用同一个密钥来加密和解密数据。
DES还是一种分组加密算法,该算法每次处理固定长度的数据段,称之为分组。
DES分组的大小是64位,如果加密的数据长度不是64位的倍数,可以按照某种具体的规则来填充位。

算法原理:
1.输入64位明文数据,并进行初始置换IP。
2.在初始置换IP后,明文数据再被分为左右两部分,每部分32位,以L0,R0表示。
3.在秘钥的控制下,经过16轮运算(f)。
4.16轮后,左、右两部分交换,并连接再一起,再进行逆置换。
5.输出64位密文。

在这里插入图片描述补充:什么是AES算法?

AES的全称是Advanced Encryption Standard,意思是高级加密标准。
AES的出现主要是为了取代DES加密算法的,因为我们都知道DES算法的密钥长度是56Bit,因此算法的理论安全强度是2的56次方。

在这里插入图片描述
challenge.py中: HRlgC2ReHW1/WRk2DikfNBo1dl1XZBJrRR9qECMNOjNHDktBJSxcI1hZIz07YjVx 为密文。
参考这位大佬的解密代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这段代码的运行环境为py2
可以用菜鸟工具的python的在线运行网站运行

菜鸟工具的python的在线运行网站:
https://c.runoob.com/compile/6

在这里插入图片描述
在这里插入图片描述
把题目中给的两个py文件和解密的源码放在同一个文件夹下,然后运行cmd,就可以得到同样的答案

提交:

N1CTF{F3istel_n3tw0rk_c4n_b3_ea5i1y_s0lv3d_/–/}

第20题:进制转换
初始页面:
在这里插入图片描述
在这里插入图片描述
从这一串进制编码来看,分别有 d、x、o、b 。

八进制(逢八进一),Octal,缩写OCT或O,一种以8为基数的计数法,用O表示,为了不与数字0混淆,有时也用Q来表示八进制数。
十进制(逢十进一),英文为Decimal System,缩写Dec或D,来源于希腊文Decem,用D表示。
十六进制(逢十六进一),英文名称:Hexadecimal,是计算机中数据的一种表示方法。它由0-9,A-F组成,字母不区分大小写,前缀用0x表示。
二进制(逢二进一),Binary,用b表示。

D:十进制数Decima
B:二进制数Binary
0x(H):十六进制数Hexadecimal
O:八进制数Octal

因此,我们将这些统一转化为十六进制表示,然后转为字符串就可以得到答案
网上大佬py代码
在这里插入图片描述
放到菜鸟工具里面编译下
在这里插入图片描述再将这一串十六进制数转换成字符串的形式
用在线16进制转换字符串
在这里插入图片描述
得到flag

第21题:affine
初始页面:
在这里插入图片描述
本题要点:仿射加密

补充:仿射加密
仿射加密法

在仿射加密法中,字母表的字母被赋予一个数字,例如 a=0,b=1,c=2…z=25 。仿射加密法的密钥为0-25直接的数字对。
仿射加密法与单码加密法没什么不同,因为明文的每个字母分别只映射到一个密文字母。
仿射密码的加密算法就是一个线性变换,即对任意的明文字符x,对应的密文字符为 ,其中,a,b∈,且要求gcd(a,26)=1,函数e(x)称为仿射加密函数。

注意:
注1. 仿射加密函数要求gcd(a,26)=1,即要求a和26互素,否则就不是一个单射函数。
注2. 从仿射加密函数的表达式易知,当a=1,b=3时,这种仿射密码就是著名的凯撒密码。
注3. 在求解仿射解密函数时,需要求a在上的乘法逆元这可由扩展欧几里得算法求解,下表列出了在上所有与26互素元素的乘法逆元:仿射加密法

在仿射加密法中,字母表的字母被赋予一个数字,例如 a=0,b=1,c=2…z=25 。仿射加密法的密钥为0-25直接的数字对。
仿射加密法与单码加密法没什么不同,因为明文的每个字母分别只映射到一个密文字母。
仿射密码的加密算法就是一个线性变换,即对任意的明文字符x,对应的密文字符为 ,其中,a,b∈,且要求gcd(a,26)=1,函数e(x)称为仿射加密函数。

注意:
注1. 仿射加密函数要求gcd(a,26)=1,即要求a和26互素,否则就不是一个单射函数。
注2. 从仿射加密函数的表达式易知,当a=1,b=3时,这种仿射密码就是著名的凯撒密码。
注3. 在求解仿射解密函数时,需要求a在上的乘法逆元这可由扩展欧几里得算法求解,下表列出了在上所有与26互素元素的乘法逆元:**

在这里插入图片描述
假设e(x)为密文,x为明文。
设仿射加密函数是
由上表知:所以相应的仿射解密函数是
若加密明文是 sorcery ,首先把明文每个字母转换为数字 18,14,17,2,4,17,24 。然后对明文进行加密,这里以第一个字母s为例:

e(x)=(11*18+6)mod 26
e(x)=204 mod 26
e(x)=22
在这里插入图片描述
在这里插入图片描述
依次解密,最后得密文为 welcylk

根据原理写脚本 参考大佬脚本
在这里插入图片描述
放入菜鸟工具编译
在这里插入图片描述
得到flag

第22题:Crack it
初始页面:
在这里插入图片描述
这个要把shadow放入linux使用命令行 我的vm-linux 又双出问题了 我又要去修修
在这里插入图片描述
先看别人的题解学习下
可以使用more shadow命令查看shadow文件信息
在这里插入图片描述
得到
root: 6 6 6HRMJoyGA$26FIgg6CU0bGUOfqFB0Qo9AE2LRZxG8N3H.3BK8t49wGlYbkFbxVFtGOZqVIq3q

Q6k0oetDbn2aVzdhuVQ6US.:17770:0:99999:7:::

这个是典型的 shadow文件
使用命令

john [OPTIONS] [PASSWORD-FILES]

john [选项] [密码文件]

–show[=LEFT] 显示破解的密码[如果=左,然后uncracked]
查看密码:
在这里插入图片描述
得到root为hellokitty
得到flag{hellokitty}

方法2:用winhex打开
在这里插入图片描述
发现root信息
kali中有一个工具john可以破解密码
补充:jion
查了一下john:
全称叫“John the Ripper password cracker(约翰开膛手密码破解)”。
John the Ripper是一个快速的密码破解程序,目前可用于Unix,Windows,DOS和OpenVMS的许多口味。其主要目的是检测弱Unix密码。
除了在各种Unix系统上最常见的几种crypt(3)密码哈希类型之外,现在支持的还有Windows LM哈希,以及社区增强版本中的大量其他哈希和密码。

John the Ripper是免费的开源软件,主要以源代码形式发布。
网址:http://www.openwall.com/john/

–single[=SECTION] ]“单裂”模式
–wordlist[=FILE] --stdin 单词表模式,从FILE或stdin读取单词
–pipe 像–stdin一样,但批量读取,并允许规则
–loopback[=FILE] 像 --wordlistg一样, 但是从.pot文件中获取单词
–dupe-suppression 压制wordlist中的所有模糊(并强制预加载)
–prince[=FILE] PRINCE模式,从FILE中读取单词
–encoding=NAME 输入编码(例如,UTF-8,ISO-8859-1)。 也可以看看doc / ENCODING和–list = hidden-options。
–rules[=SECTION] 为单词表模式启用单词修改规则
–incremental[=MODE] “增量”模式[使用部分模式]
–mask=MASK 掩码模式使用MASK
–markov[=OPTIONS] “马尔可夫”模式(参见doc / MARKOV)
–external=MODE 外部模式或字过滤器
–stdout[=LENGTH] 只是输出候选人密码[在LENGTH切]
–restore[=NAME] 恢复被中断的会话[名为NAME]
–session=NAME 给一个新的会话NAME
–status[=NAME] 打印会话的状态[名称]
–make-charset=FILE 制作一个字符集文件。 它将被覆盖
–show[=LEFT] 显示破解的密码[如果=左,然后uncracked]
–test[=TIME] 运行测试和每个TIME秒的基准
–users=[-]LOGIN|UID[,…] [不]只加载这个(这些)用户
–groups=[-]GID[,…] 只加载这个(这些)组的用户
–shells=[-]SHELL[,…] 用[out]这个(这些)shell来加载用户
–salts=[-]COUNT[:MAX] 用[out] COUNT [到MAX]散列加载盐
–save-memory=LEVEL 启用内存保存,级别1…3
–node=MIN[-MAX]/TOTAL 此节点的数量范围不在总计数中
–fork=N 叉N过程
–pot=NAME 锅文件使用
–list=WHAT 列表功能,请参阅–list = help或doc / OPTIONS
–format=NAME 强制使用NAME类型的散列。 支持的格式可以用–list=formats和–list=subformats来看

在这里插入图片描述
在这里插入图片描述
得到flag

第23题:rsa
初始页面:
在这里插入图片描述
补充:rsa
在这里插入图片描述
在这里插入图片描述计算出n e d p q再使用脚本 求解
在这里插入图片描述
在这里插入图片描述
运行Rsa.py解得flag

在这里插入图片描述
安装RsaCtfTool

https://www.freebuf.com/sectool/185468.html

此题参考的大佬wp 我不会555

第24题:来自宇宙的信号
初始页面:
在这里插入图片描述
标准银河字母(Standard Galactic Alphabet)出自游戏《指挥官基恩》系列,是系列中使用的书写系统, 这是一个简单的替代暗号,用不同的符号取代拉丁字母。

百度银河语言
在这里插入图片描述
比对一下题目中的字符在SGA中的表示字母,可以得到:

NOPQRST

根据flag格式

flag{nopqrst}

END在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值