写在前面
- 继昨天的几个
web
题之后,今天打算继续在做几个crypto
来来练练手
凯撒?替换?呵呵!
知识点: 替换密码
- 看题目描述,对于给出的密文不是凯撒加密就是替换加密,先尝试使用凯撒加密发现
MTHJ
无法对应到flag
,遂尝试使用替换密码
- 使用在线解密网站
https://quipqiup.com/
- 最终的
flag
要注意格式,去除空格即可
权限获得第一步
知识点:Linux影子密码
- 看题目权限获取应该是跟用户密码有关,查看获取的文件发现应该是一个
linux
的用户的影子密码,对于这个是存在/etc/shadow
文件中,原先采用的加密方式是md5
或DES
,后来改用安全级别更好的sha512
加密
- 这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上
"!"、"*"
或 "x"
使密码暂时失效。
- 所有伪用户的密码都是
"!!"
或 "*"
,代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 "!!"
,代表这个用户没有密码,不能登录
- 每个字段的含义:用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
- 所以这里先猜测尝试使用旧版的
md5
解密
flag: flag{3617656}
篱笆墙的影子
栅栏密码
- 题目描述很明确了,直接使用栅栏密码解密即可
https://www.qqxiuzi.cn/bianma/zhalanmima.php
old-fashion
知识点:替换密码
- 同第一题还是替换密码,直接解密即可
萌萌哒的八戒
知识点:猪圈密码
- 根据对照表解密即可
flag{whenthepigwanttoeat}
世上无难事
知识点:替换密码
- 第三个替换密码了,值得注意的是最后要转换成小写
[MRCTF2020]天干地支+甲子
知识点: 天干地支密码
- 好像是原来实验吧的原题,这个说白了也就是一个替换密码,值得注意的是最后解密的时候要都多加一个甲子(即加60)
- 解密脚本如下:
jinian = ['甲子','乙丑','丙寅','丁卯','戊辰','己巳','庚午','辛未','壬申','癸酉','甲戌','乙亥','丙子','丁丑','戊寅','己卯','庚辰','辛巳','壬午','癸未','甲申','乙酉','丙戌','丁亥','戊子','己丑','庚寅','辛卯','壬辰','癸巳','甲午','乙未','丙申','丁酉','戊戌','己亥','庚子','辛丑','壬寅','癸卯','甲辰','乙巳','丙午','丁未','戊申','己酉','庚戌','辛亥','壬子','癸丑','甲寅','乙卯','丙辰','丁巳','戊午','己未','庚申','辛酉','壬戌','癸亥']
num = [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]
mappings = dict(zip(jinian,num))
question = ['甲戌', '甲寅', '甲寅', '癸卯', '己酉', '甲寅', '辛丑']
jinian_num = []
for i in question:
for key,value in mappings.items():
if i == key:
jinian_num.append(value+60)
for i in jinian_num:
print(''.join(chr(i)),end='')