文章目录
一、Crypto
1、MD5
链接:https://www.cmd5.com/default.aspx
flag{admin1}
2、Url编码
链接:https://www.toolhelper.cn/EncodeDecode/Url
flag{and 1=1}
3、摩丝
链接:https://www.lddgo.net/encrypt/morse
flag{ILOVEYOU}
4、password
小结:flag{姓名首拼小写+出生年月日}
flag{zs19900315}
5、Quoted-printable
链接:https://try8.cn/tool/code/qp
flag{那你也很棒哦}
6、篱笆墙的影子
方法一;
找规律;
f l a g
e h a v
对照写出全部flag{wethinkwehavetheflag};
方法二;
使用随波逐流工具进行解码,找到最接近的一个秒了;
flag{wethinkwehavetheflag}
7、Rabbit
链接:https://www.sojson.com/encrypt_rabbit.html
无秘钥直接秒;
flag{Cute_Rabbit}
8、RSA
没什么好说的RSA-Tools梭哈,按照图片填入即可;
如果想更多了解RSA请看此文章;
https://blog.csdn.net/m0_51607907/article/details/123884953
工具下载链接;https://www.123pan.com/s/q2J1jv-2Havd.html提取码:0905
9、丢失的MD5
补全脚本如下;
import hashlib
# 循环遍历 ASCII 表中可打印字符的可能值
for i in range(32, 127):
for j in range(32, 127):
for k in range(32, 127):
# 创建 md5 哈希对象
m = hashlib.md5()
# 构建特定格式的字符串,插入循环变量 i, j, k 对应的字符
m.update(('TASC' + chr(i) + 'O3RJMV' + chr(j) + 'WDJKX' + chr(k) + 'ZM').encode('utf-8'))
# 获取哈希值的十六进制表示
des = m.hexdigest()
# 检查哈希值是否包含特定的子串
if 'e9032' in des and 'da' in des and '911513' in des:
# 如果包含,则打印出来
print(des)
简单分析一下这个脚本;
这个脚本是一个用于破解特定MD5哈希值的Python程序。它通过穷举ASCII码表中可打印字符的所有可能的三个字符组合,并将这些字符插入到一个预定义的字符串模板中。对于每个生成的字符串,脚本计算其MD5哈希值,并检查该哈希值是否包含特定的子串。如果找到一个哈希值包含所有给定的子串,脚本会将这个哈希值打印出来。
脚本的工作流程如下:
-
使用三层嵌套循环遍历ASCII码表中的可打印字符(从空格(32)到波浪号(126))。
-
在每次循环中,构建一个包含循环字符的字符串,按照
'TASC' + chr(i) + 'O3RJMV' + chr(j) + 'WDJKX' + chr(k) + 'ZM'
的格式。 -
计算构建字符串的MD5哈希值。
-
检查该哈希值是否包含特定的子串:‘e9032’、‘da’ 和 ‘911513’。
-
如果哈希值包含所有这些子串,则打印该哈希值。
flag{e9032994dabac08080091151380478a2}
10、Alice与Bob
根据题已知合数:98554799767
找一个在线网站进行质因数分解;
网站:https://www.imathtool.com/jisuanqi/zhiyinshu/
101999 x 966233
接着将小的放前面,大的放后面,合成一个新的数字,进行md5的32位小写哈希;
链接:https://www.lddgo.net/encrypt/hash
flag{d450209323a847c8d01c6be47c81811a}
11、大帝的密码武器
链接:https://www.lddgo.net/encrypt/caesar-cipher
打开txt根据提示得到一个有意义的单词,在根目题目名称可以得知这是一个凯撒加密;
在偏移13次之后终于得到一个有意义的单词:security(安全)
根据这个单词我们可以得知密文也是13;
flag{PbzrPuvan}
12、rsarsa
import gmpy2
e = 65537
p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
n = p*q
#密文
C = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034
d =gmpy2.invert(e,(p-1)*(q-1))
#求明文
M = pow(C,d,n) #快速求幂取模运算
print(M)
运行即可flag,更多RSA知识点请转此处;
https://blog.csdn.net/m0_51607907/article/details/123884953
flag{5577446633554466577768879988}
13、Windows系统密码
右键记事本打开;
结合文件名字pass.hash我们可以知道这需要转MD5;
在线:https://www.cmd5.com/default.aspx
最后一个一个尝试得到;
flag{good-luck}
14、信息化时代的步伐
打开txt得到一串数字,根据分析得知:中文电码
解中文电码在线网站:http://code.mcdvisa.com/
flag{计算机要从娃娃抓起}
15、凯撒?替换?呵呵!
MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}
凯撒密码一般就是26个字母经过单纯的按字母顺序来位移的加密方法(一般)
如:abc=def
进阶版的凯撒就不按照字母顺序的加密
如:abc=dhj
所以就要经过暴力破解出每一种可能的对应加密
参考:https://blog.csdn.net/YIHAHUHA/article/details/103108361
所以这里我们直接使用在线网站;
https://quipqiup.com/?spm=a2c6h.12873639.article-detail.8.2dfd471fDXupH4
(注意如有打不开的情况可能是需要开梯子)
注意无空格;
flag{substitutioncipherdecryptionisalwayseasyjustlikeapieceofcake}
16、萌萌哒的八戒
猪圈密码,找个在线解码秒了;
链接:https://www.metools.info/code/c90.html
flag{whenthepigwanttoeat}
17、权限获得第一步
Administrator:500:806EDC27AA52E314AAD3B435B51404EE:F4AD50F57683D4260DFD48AA351A17A8:::
解析;
这行数据是从Windows系统的SAM(安全账户管理器)数据库中提取的一个用户账户的哈希条目。SAM数据库存储了Windows系统中用户的登录凭据,通常以哈希形式保存。这条记录的格式遵循NTLM(NT LAN Manager)哈希的典型表示方式,用于Windows系统的网络协议和密码存储。
这里是这条记录的分解:
Administrator
:这是用户账户的名称,这里指的是系统管理员账户。500
:这是用户的安全标识符(SID)的一部分,500通常代表内置的管理员账户。806EDC27AA52E314AAD3B435B51404EE
:这是用户密码的LM(LAN Manager)哈希。LM哈希被认为是非常不安全的,因为它将密码转换成大写,分成7字符的块进行哈希,很容易被暴力破解。F4AD50F57683D4260DFD48AA351A17A8
:这是用户密码的NTLM哈希,它比LM哈希更安全,但现代方法也能有效地破解它。:::
:这些冒号用作字段分隔符,可能在这个上下文中的其他字段为空。
总的来说,这行数据提供了足够的信息来尝试破解用户的密码,尤其是如果使用像rainbow table这样的工具来对付弱密码。
flag{3617656}
18、传统知识+古典密码
下载附件得到;
既然说是古典加密,那就找一个古典加密表;
这里“+甲子”就是加60;
所以一个一个对照着出来得到:88 90 83 68 77 70 76 90
这里一看就是ASCLL;
解码得到:XZSDMFLZ
开始分析,古典密码最常见的无非栅栏和凯撒,先栅栏一下;
接着我们接着使用栅栏;
链接:https://www.qqxiuzi.cn/bianma/zhalanmima.php
所以;
2栏:
XSMLZDFZ
4栏:
XMZFSLDZ
接着我们对上面的两个结果分别进行恺撒解密:
工具随波逐流;
最后;
flag{SHUANGYU}
19、RSA1
import gmpy2
# 已知的 RSA 参数
p = 8637633767257008567099653486541091171320491509433615447539162437911244175885667806398411790524083553445158113502227745206205327690939504032994699902053229
q = 12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469
dp = 6500795702216834621109042351193261530650043841056252930930949663358625016881832840728066026150264693076109354874099841380454881716097778307268116910582929
dq = 783472263673553449019532580386470672380574033551303889137911760438881683674556098098256795673512201963002175438762767516968043599582527539160811120550041
c = 24722305403887382073567316467649080662631552905960229399079107995602154418176056335800638887527614164073530437657085079676157350205351945222989351316076486573599576041978339872265925062764318536089007310270278526159678937431903862892400747915525118983959970607934142974736675784325993445942031372107342103852
# 计算 m1 和 m2
m1 = pow(c, dp, p)
m2 = pow(c, dq, q)
# 计算 q 的逆元 qInv
qInv = gmpy2.invert(q, p)
# 使用 CRT 公式来计算 m
m = (m1 + (qInv * (m2 - m1) % p) * q) % (p*q)
# 将结果转换为十六进制字符串,去除前缀 '0x'
hex_message = hex(m)[2:]
# 将十六进制字符串转换为ASCII文本
text_message = bytes.fromhex(hex_message).decode('ascii')
print(text_message)
简单分析一下;
这段脚本首先进行RSA解密,得到明文的整数表示,然后将这个整数转换为十六进制字符串,最后将十六进制字符串转换为ASCII文本。bytes.fromhex(hex_message).decode('ascii')
这行代码将十六进制字符串转换为对应的文本字符串。这样,text_message
将包含最终的解密文本,可以直接打印出来。
详细:https://blog.csdn.net/m0_51607907/article/details/123884953
最后
flag{W31c0m3_70_Ch1n470wn}
20、世上无难事
注意题目给的关键词:
找到key作为答案提交、flag是32位、包含小写字母;
所以这里我们直接使用Q爆破;
链接:https://quipqiup.com/
(注意需要梯子)
所以这里我们只需要将将 PIO 替换为 key即可;
flag{640E11012805F211B0AB24FF02A1ED09}
发现提交不对,那我们就尝试全部改小写;
发现正确
flag{640e11012805f211b0ab24ff02a1ed09}
标签:www,BUUCTF,20,https,Crypto,密码,flag,哈希,链接
From: https://blog.csdn.net/administratorlws/article/details/139334160