首页
社区
课程
招聘
[分享]最近看见几道ctf的密码入门题目,挺感兴趣的,跟大家分享一下
2022-12-9 18:00 20295

[分享]最近看见几道ctf的密码入门题目,挺感兴趣的,跟大家分享一下

2022-12-9 18:00
20295

声明一下:
题目来源buuctf

url编码

%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d
直接上解密网站:
URL编码表

1
2
3
4
5
6
7
8
9
10
11
%66-f
%6C-l
%61-a
%67-g
%7B-{
%6E-n
%64-d
%20-space(空格)
%31-1
%3D-=
%7D-}

直接对着网站一个个的查就行了

看我回旋踢

synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}
这个就是猜的了,想想那个flag的格式,一般都是
flag{xxxxxxxxxxx}
然后再看那个synt,每个字母加上偏移到flag,后面的也是,一个个的加上偏移就行了
这里卡个bug上个工具,跟大家分享一下,之前做逆向的时候用的:
图片描述
flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}

摩丝

直接百度:
图片描述
这里记录一下莫斯码表吧:
图片描述

password

这玩意什么意思,没见过,百度看看:
图片描述
csdn大哥的思路,密码真好玩奇妙的方法
图片描述
这让我想起来的我的qq号的密码哈哈哈哈

变异凯撒

这题目,一看是凯撒密码,直接百度搜凯撒看看:
图片描述
但是这个是编译的凯撒,你直接解密他是出不来的,但是我们之前做的这个看我回旋踢这个题目,他俩有点相似了,就是还是靠猜呗哈哈,
然后跟大家分享一个ascii码表的网站:
ASCII码表

1
2
3
4
5
6
7
a -> f
f -> l
Z -> a
_ -> g
r -> {
中间的就是密文了
c -> }

但是这一题还有点不一样,他的偏移不同,
a到f差了5个
f到l差了6个
Z到a差了7个
图片描述
图片描述
_ -> g差了8个
怎么样是不是思路就有了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<bits/stdc++.h>
#include<string.h>
#include <string>
using namespace std;
int main(){
 
    string str = "afZ_r9VYfScOeO_UL^RWUc";
    int len = str.length();
    string flag = "";
    for(int i = 0;i < len;i++){
        flag[i] = str[i] + i + 5;
    }
    for(int i = 0;i < len;i++){
        cout<<flag[i];
    }
    return 0;
}

图片描述

Quoted-printable

=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6
这一堆啥玩意也没看懂,直接百度:
图片描述
quoted-printable编码
图片描述
然后找个解码网站解码就行了:Quoted-printable解码
图片描述
flag{那你也很棒哦}

Rabbit

直接根据题目搜索rabbit解密:
U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI
图片描述
rabbit解密网站
flag{Cute_Rabbit}

篱笆墙的影子

felhaagv{ewtehtehfilnakgw}
这一堆也看不出来啥啊,但是丢入之前的那个软件中一看,发现了flag,原来他是栅栏密码:
图片描述
flag{wethinkwehavetheflag}
然后咱们百度百科看看什么是栅栏密码:

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)
图片描述
图片描述

 

我们这个题目也这样看看,我们的突破点还是flag的格式flag{}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
felhaagv{ewtehtehfilnakgw}
分为两行看看:
fe
lh
aa
gv
{e
wt
eh
te
hf
il
na
kg
w}
你试试先读第一列,然后再读第二列就是flag了

RSA

我找到了一个大佬的脚本,基本的rsa上他的脚本都能解了
rsa脚本
题目是这样的,直接上大佬的脚本:
图片描述
图片描述
解出flag:
flag{125631357777427553}

丢失的MD5

图片描述
看他的意思应该是md5的算法不全吧,然后让我们补全他:
这个密码题目的md5加密怎么我之前再ida中看到的差这么多。。。。。
先跑跑脚本看看:
图片描述
百度说得加个encode('utf-8')
图片描述
然后就能出来flag了:
flag{e9032994dabac08080091151380478a2}

Alice与Bob

图片描述
我们首先看看什么叫做素数分解:
图片描述
emmmmm百度看看什么叫和数:
图片描述
什么叫素因子:
图片描述
就是把一个数分解成乘法的形式,然后分解的尽可能小就行了
我们有了以上的知识,那么这道题按照他的意思来就行了,他也就是把这个数98554799767分解成两个素数,我们找个网站用用:
参考文章
分解素数的网站
图片描述
分解成了这两个素数的乘积:101999 · 966233
然后小的放前面,大的放后面:101999966233
最后进行md5的32位小写哈希
md5加密
图片描述
flag{d450209323a847c8d01c6be47c81811a}

ZIP

图片描述
下载之后打不开啊,然后直接按照题目的意思改改,改成zip文件:
图片描述
图片描述
图片描述
根据题目的描述,我们可以去百度看看这个是什么加密:
图片描述
实锤凯撒密码了
百度百科看看什么是凯撒密码
图片描述
发现也没什么,就是个简单的偏移罢了
然后我们看看题目说这个解开之后有意义
以下密文被解开后可以获得一个有意义的单词:FRPHEVGL
我们尝试解密一下从1开始试试吧,找到偏移之后直接解密密文就行了:
过程就不展示了,都是苦力活,上个网站吧:
凯撒偏移网站
图片描述
知道了偏移是13,那么我们直接解密之前的那个密文就行了:
图片描述
flag{PbzrPuvan}

rsarsa

图片描述
看题目的意思应该是让我们找那个m,因为qpec都全了
用我之前推荐的大佬的脚本试试:rsa求m已知pqec
图片描述
flag{5577446633554466577768879988}

Windows系统密码

图片描述
菜狗不会打开怎么办呢:
图片描述
surprise:
图片描述
看长度为32位数,所以应该是MD5加密我猜的,一个个的试试吧:
看着哪个像哪个就是了:解密MD5
图片描述
flag{good-luck}

信息化时代的步伐

图片描述
看看题目吧,看这个txt没有思路啊:
他题目说的是中文的flag,所以我们就找找中文的解密网站咯
这个网站就有点恶心人了,谁能想到这么解题啊:
中文电码查询
图片描述
flag{计算机要从娃娃抓起}

凯撒?替换?呵呵

图片描述
你看他这个密文很有flag的样子,然后我们之前也说了,这个凯撒加密就是简单的偏移,没什么难的:
MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}
图片描述
这个也爆破不出来
图片描述
emmmmmm老办法不好用了,取而代之的是不用脚本了,有一个爆破网站:
爆破凯撒网站
图片描述
第一个就是flag了:
flag{substitutioncipherdecryptionisalwayseasyjustlikeapieceofcake}

萌萌哒的八戒

打开之后就是一个猪的图片,但是!
这个题目太6了只能说,猪圈密码。。。。。
图片描述
你看图片的最下面是不是有一堆那样的奇怪的字符,那个就是猪圈密码:

 

牛人链接,居然有猪圈密码
百度网图来一张:
图片描述
图片描述
对应着找就行了:
然后大写变小写
flag{whenthepigwanttoeat}

权限获得第一步

图片描述
这个之前做过了,看着是32位数的,直接md5解密看看:
md5解密
图片描述
flag{3617656}

世上无难事

图片描述
之前做凯撒的时候用过一个爆破网站,这个实在是没有思路了,只能丢那里面看看了:
没思路的时候用用他吧
图片描述
还真给他爆破出来了,但是题目是小写,所以flag:
flag{640e11012805f211b0ab24ff02a1ed09}

传统知识+古典密码

图片描述
从题目的描述中我想到了天干地支纪年法:
图片描述
不错不错,还能学习一下中华民族传统文化知识了:

1
2
3
4
辛卯、癸巳、丙戌、辛未、庚辰、癸酉、己卯、癸巳,
28、   30238、  17、  1016、  30
然后+甲子,也就是加60
88、   9083、  6877、  707690

然后对应ASCII码表看看是什么:
XZSDMFLZ
然后还有一个题目

1
2
3
4
5
6
5555555595555A65556AA696AA6666666955
这是某压力传感器无线数据包解调后但未解码的报文(hex)
 
已知其ID0xFED31F,请继续将报文完整解码,提交hex
 
提示1:曼联

他的提示是曼联,居然有大佬想到这是曼彻斯特编码,我记得好像计算机组成原理课程上面讲过这个东西:曼彻斯特编码参考链接

曼彻斯特编码
曼彻斯特编码(Manchester)又称裂相码、同步码、相位编码。它也是通过电平的高低转换来表示“0”或“1”,每位中间的电平转换既表示了数据代码,也作为定时信号使用。曼彻斯特编码常常用在以太网中。
编码原理编辑:
曼彻斯特编码是将时钟和数据包含在信号流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方。曼彻斯特编码的每一个码元都被调制成两个电平,所以数据传输速率只有调制速率的1/2。

 

那么这个题目就是这样的:二进制转换器
5555555595555A65556AA696AA6666666955
首先转为二进制编码:
图片描述
二进制编码:

1
0101 0101 0101 0101 0101 0101 0101 0101 1001 0101 0101 0101 0101 1010 0110 0101 0101 0101 0110 1010 1010 0110 1001 0110 1010 1010 0110 0110 0110 0110 0110 0110 0110 1001 0101 0101

根据之前的参考文档,曼彻斯特编码之后就应该按照01->1,10->0来转化:

1
2
3
4
11111111 11111111 01111111 11001011 11111000
00100110 00001010 10101010 10011111
   FF       FF       FE      D3       1F      
   64      50        55      F9

这里有一个小小的逆序,好像就是之前逆向中读内存的说法,就是大端序小端序什么的,网上的师傅还有说这个是传输协议好像是,(但是这个密码解出来之后好像对这个题目没有什么意义,可能是buu把题目放错了,还是继续看上一个txt里面解出来的东西吧)
XZSDMFLZ,然后根据题目描述,他不是古典知识加传统密码嘛,我们再去看看传统密码有什么吧:凯撒解密
古典密码主要有栅栏,凯撒,棋盘,摩丝等等,最常见的应该是栅栏和凯撒
图片描述
最后不断地尝试得到了flag:
flag{SHUANGYU}

RSA1

图片描述
以后rsa的题目直接用大佬的脚本就行了,太好用啦
rsa通杀脚本
图片描述
flag{W31c0m3_70_Ch1n470wn}
既然已经讲到rsa了,我就把大佬的rsa的脚本都复现一遍吧,正好之后也有几个rsa的题目,通杀一下:

RSA

这道题就有点不一样了,这道题是两个文件的
图片描述
我们先用记事本打开看看:
这个文件里面是公钥
图片描述
另外一个文件打开是一堆乱码,就先不管那个文件了,做了这么多rsa的题目了,我们看看rsa的具体算法吧,不能总用大佬的脚本来做题啊:
rsa原理
上面是参考链接,我来讲讲我的理解吧:

这个rsa是一种非对称加密技术,什么是非对称加密技术呢,我们举个例子,A和B互相传隐私数据,
首先A和B的公钥都是对外公开的,谁都知道,我们这里记作public_key_A,public_key_B,
然后他们各自保留了自己的私钥,这个私钥只有自己知道,只有A自己知道他的secret_key_A,只有B自己知道他的secret_key_B,
然后如果A像B传输数据,他就要用B对外公开的public_key_B加密他的数据,所以A向B发送的数据,只有B自己才能解开,因为只有B自己具有secret_key_B,这样是不是就非常清晰他的原理了
然后这篇文章中对rsa的具体算法有了详细的讲解rsa具体算法加解密过程
c:密文
m:明文
加密:c = m^e mod N
解密:m = c^d mod N
例题
例题:在RSA加密体制中, 已知素数 p = 7, q = 11, 公钥 e = 13, 试计算私钥 d 并给出对明文 m = 5 的加密,求其密文. 已知密文 c = 15, 求其明文
解:
n=pq=77
φ(n)=(p-1)(q-1)=60
ed≡1 mod φ(n)
即13d mod 60 = 1
解得:d = 37
公钥(n,e)=(77,13)
密文c = m^e mod n = 5^13 mod 77 = 26
私钥(n,d)=(77,37)
明文m = c^d mod n = 15^37 mod 77 = 71

 

这样我们就对rsa算法有了基本的了解,然后我们回过头来看这个题目:
我们首先要分解公钥得到qp,这里有一个在线网站挺好用的:
分解rsa的公钥
参考链接
这样就能得到模数了
图片描述
图片描述
C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD
这个模数是16进制的,我们要把它转为10进制的:
进制转换工具
图片描述
转成10进制之后我们就可以对他进行模数分离了,就是得到pq我记得之前好像讲了一道类似得题目,就是找到最大的pq的题目也是,先不管了,找个网站分解一下:
分离模数的网站
86934482296048119190666062003494800588905656017203025617216654058378322103517
图片描述
这样就可以得到两个模数,然后就可以写脚本了:
285960468890451637935629440372639283459
304008741604601924494328155975272418463
图片描述
flag{decrypt_256},突然感觉题目上难度了

RSA2

图片描述
直接上脚本就行了:
图片描述
flag{wow_leaking_dp_breaks_rsa?_98924743502}

RSA3

图片描述
你这直接全都告诉我了,那我就直接带脚本了嘿嘿
图片描述
flag{49d91077a1abcb14f1a9d546c80be9ef}
这里做了这么多rsa的题目了,之前只是有一些简单的了解,但是他这些q,p,m,dp,c都是些什么意思啊,去百度看看:rsa中的q,p,m,dp,c都是些什么

old-fashion

图片描述
看不懂吧,我也看不懂,按照之前总结出来的思路看不懂就用我推荐的那两个工具,一个网站没思路的时候试试看
还有一个软件叫ctf_tools,这两个都可以的其实
图片描述
flag{n1_2hen-d3_hu1-mi-ma_a}

还原大师

图片描述
看着大佬的脚本都是爆破的,一会直接超一个吧哈哈,反正脚本有一个就能通用了以后稍微改一改就行了,既然这个题目时md5的,那么我们就看看md5的原理吧:
图片描述
MD5原理上面这篇文章写的挺好的,大家可以看看,然后我说一下我的理解吧:

这个md5就是传输双方都要对传输的数据进行md5加密,如果传输的数据一样,能够起到证明身份的作用,举个例子吧,就是我们日常登录的时候需要输入用户名和密码,然后服务器端的数据库中也存储着我们的用户名和密码,当我们登录时候(大家可以看一下我之前写过的登录协议分析的文章,这样能有更深刻的理解),客户端对你输入的数据进行md5加密,服务器端对你原本存储的数据进行md5加密,如果两个md5加密之后是相同的,那么就能证明你的身份,这样的好处是速度快,然后即使数据包能被我们抓到,我们也很难破译出用户名和密码,因为md5原理上是很难破解的

 

我这里贴一下大佬文章中md5的关键内容吧:md5算法部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
MD5算法过程
 
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为1632位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
 
第一步、填充:如果输入信息的长度(bit)对512求余的结果不等于448,就需要填充使得对512求余的结果等于448。填充的方法是填充一个1和n个0。填充完后,信息的长度就为N*512+448(bit);
 
第二步、记录信息长度:用64位来存储填充前信息长度。这64位加在第一步结果的后面,这样信息长度就变为N*512+448+64=(N+1)*512位。
 
第三步、装入标准的幻数(四个整数):标准的幻数(物理顺序)是(A=(01234567)16,B=(89ABCDEF)16,C=(FEDCBA98)16,D=(76543210)16)。如果在程序中定义应该是:
(A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L)。有点晕哈,其实想一想就明白了。
 
第四步、四轮循环运算:循环的次数是分组的个数(N+1
 
1)将每一512字节细分成16个小组,每个小组64位(8个字节)
 
2)先认识四个线性函数(&是与,|是或,~是非,^是异或)
 
F(X,Y,Z)=(X&Y)|((~X)&Z)
G(X,Y,Z)=(X&Z)|(Y&(~Z))
H(X,Y,Z)=X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
 
    1
    2
    3
    4
 
3)设Mj表示消息的第j个子分组(从015),<<
 
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+F(b,c,d)+Mj+ti)<<<s)
GG(a,b,c,d,Mj,s,ti)表示a=b+((a+G(b,c,d)+Mj+ti)<<<s)
HH(a,b,c,d,Mj,s,ti)表示a=b+((a+H(b,c,d)+Mj+ti)<<<s)
II(a,b,c,d,Mj,s,ti)表示a=b+((a+I(b,c,d)+Mj+ti)<<<s)
 
    1
    2
    3
    4
 
4)四轮运算
 
 第一轮
a=FF(a,b,c,d,M0,7,0xd76aa478)
b=FF(d,a,b,c,M1,12,0xe8c7b756)
c=FF(c,d,a,b,M2,17,0x242070db)
d=FF(b,c,d,a,M3,22,0xc1bdceee)
a=FF(a,b,c,d,M4,7,0xf57c0faf)
b=FF(d,a,b,c,M5,12,0x4787c62a)
c=FF(c,d,a,b,M6,17,0xa8304613)
d=FF(b,c,d,a,M7,22,0xfd469501)
a=FF(a,b,c,d,M8,7,0x698098d8)
b=FF(d,a,b,c,M9,12,0x8b44f7af)
c=FF(c,d,a,b,M10,17,0xffff5bb1)
d=FF(b,c,d,a,M11,22,0x895cd7be)
a=FF(a,b,c,d,M12,7,0x6b901122)
b=FF(d,a,b,c,M13,12,0xfd987193)
c=FF(c,d,a,b,M14,17,0xa679438e)
d=FF(b,c,d,a,M15,22,0x49b40821)
 
 
 
 
 
5)每轮循环后,将A,B,C,D分别加上a,b,c,d,然后进入下一循环。
 
     * 主要的操作,四轮循环

参考链接

 

那么这一到题目我们就采用爆破的方法了:
图片描述
flag{E9032994DABAC08080091151380478A2}

异性相吸

图片描述
看了大佬的文章大佬的文章才知道异性相吸是这么个意思:
异性相吸的意思就是同为奇数或偶数相减,一奇一偶相加,对应位置计算就好了,注意是16进制的运算(这这么像阅读理解题目了?????)
写个脚本:
图片描述
flag{ea1bc0988992276b7f95b54a7435e89e}

RSAROLL

图片描述
看不懂啊,什么意思啊,这要是按照题目中的说明的话应该是rsa加密,但也找不到公钥私钥啊,也看不出来模数啊qpm啥的也找不到,题目还说了什么滚动,看看大佬的文章吧参考链接
图片描述
人家就是有经验,直接猜出来了
那么知道了n e之后,还知道了密文,直接写脚本就好啦:
图片描述
虽然自己没做出来,但是直到看见rsa就去找qpm了哈哈哈,这也是个经验吧,最后得到了flag:
flag{13212je2ue28fy71w8u87y31r78eu1e2}

Uuencode

图片描述
看题目应该是个编码方式了,找个解密网站看看:
图片描述
uuencode解密网站
嘿嘿flag{dsdasdsa99877LLLKK}
然后咱们看看什么是uuencode编码呢:
图片描述
图片描述
然后Uuencode是二进制信息和文字信息之间的转换编码,也就是机器和人眼识读的转换。Uuencode编码方案常见于电子邮件信息的传输,目前已被多用途互联网邮件扩展(MIME)大量取代就是这个了,知道就行,就是个编码

[AFCTF2018]Morse

图片描述
嗯不错,这个我会做,就是莫斯编码,找个网站解密,上面有个类似的题目我记得:莫斯解密网站
图片描述
flag{61666374667b317327745f73305f333435797d}
然后不对。。。。。。。
图片描述
还得转成字符串66666:
flag{1s't_s0_345y}


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞2
打赏
分享
最新回复 (6)
雪    币: 7803
活跃值: (21241)
能力值: ( LV12,RANK:550 )
在线值:
发帖
回帖
粉丝
随风而行aa 10 2022-12-9 18:31
2
0
不错不错
雪    币: 5615
活跃值: (7242)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
以和爲貴 1 2022-12-9 18:39
3
0
随风而行aa 不错不错
谢谢风哥,是吧你看哈哈密码比逆向有快感
雪    币: 7803
活跃值: (21241)
能力值: ( LV12,RANK:550 )
在线值:
发帖
回帖
粉丝
随风而行aa 10 2022-12-9 18:53
4
0
以和爲貴 谢谢风哥[em_13],是吧你看哈哈密码比逆向有快感
确实
雪    币: 481
活跃值: (2163)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
Zard_ 2022-12-10 07:00
5
0
可以试下cyberchef
雪    币: 5615
活跃值: (7242)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
以和爲貴 1 2022-12-10 10:43
6
0
Zard_ 可以试下cyberchef
确实哈哈,那个网站做逆向不错
雪    币: 397
活跃值: (799)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wsy 2023-2-21 16:45
7
0
不错。那几个ntlm的考察的知识不全,口令太简单了。
游客
登录 | 注册 方可回帖
返回