Fork me on GitHub

BUUCTF Crypto刷题(3)

写在前面

  • 继昨天的几个web题之后,今天打算继续在做几个crypto来来练练手

凯撒?替换?呵呵!

知识点: 替换密码

  • 看题目描述,对于给出的密文不是凯撒加密就是替换加密,先尝试使用凯撒加密发现MTHJ无法对应到flag,遂尝试使用替换密码
  • 使用在线解密网站https://quipqiup.com/
    crypto
  • 最终的flag要注意格式,去除空格即可

权限获得第一步

知识点:Linux影子密码

  • 看题目权限获取应该是跟用户密码有关,查看获取的文件发现应该是一个linux的用户的影子密码,对于这个是存在/etc/shadow文件中,原先采用的加密方式是md5DES,后来改用安全级别更好的sha512加密
  • 这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 "!"、"*""x" 使密码暂时失效。
  • 所有伪用户的密码都是 "!!""*",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 "!!",代表这个用户没有密码,不能登录
  • 每个字段的含义:用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
  • 所以这里先猜测尝试使用旧版的md5解密
    crypto
  • flag: flag{3617656}

篱笆墙的影子

栅栏密码

  • 题目描述很明确了,直接使用栅栏密码解密即可
    crypto
  • https://www.qqxiuzi.cn/bianma/zhalanmima.php

old-fashion

知识点:替换密码

  • 同第一题还是替换密码,直接解密即可
    crypto

萌萌哒的八戒

知识点:猪圈密码

  • 根据对照表解密即可
  • flag{whenthepigwanttoeat}

世上无难事

知识点:替换密码

  • 第三个替换密码了,值得注意的是最后要转换成小写
    crypto

[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='')
posted @ 2021-03-08 23:41  Konmu  阅读(501)  评论(0编辑  收藏  举报