首页 > 其他分享 >CTF常见密码汇总

CTF常见密码汇总

时间:2024-08-15 14:18:30浏览次数:4  
标签:字符 加密 -- 汇总 flag Ook 密码 CTF .....

栅栏密码

fg2ivyo}l{2s3_o@aw__rcl@-->flag{w22_is_v3ry_cool}

https://tool.bugku.com/jiemi/

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

类栅栏密码

特征:会给你一串乱序的密文 C,同时给你从1 到 n 的一串乱序的数,找下 C 对于 n 的最大公约数,然后将他们重新排序。

动手画一画就出来了。

BugKu中的一道题:

lf5{ag024c483549d7fd@@1}
一张纸条上凌乱的写着2 1 6 5 3 4

再按照123456的顺序数从第一行排到最后一行:
flag{52048c453d794df1}@@
提交 flag发现不对,这两个@@有点奇怪,去掉@就成功了,那么一般这种字符都是迷惑人的。

md5

18414996c5377f5f4419a40eba901789-->flag{hello_world!}

一般为32位 由数字和小写字母组成

base家族

https://conv.darkbyte.ru/

base64

ZmxhZ3toZWxsb193b3JsZCF9IAo==-->flag{hello_world!}

base64的空格被加密成=

base16

666C61677B6D795F6E616D655F482121487D-->flag{my_name_H!!H}

由数字和大写字母组成

base58

xpoetRPM7vtSVDSRGRp4nXv-->flag{hello-world}

Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号。

base91

@iH<,{bdR2H;i6*Tm,Wx2izpx2!--> flag{554a5058c9021c76}

国外解密网站:
https://www.dcode.fr/base-91-encoding
http://www.hiencode.com/base91.html

unicode

\u0066\u006c\u0061\u0067\u007b\u0069\u005f\u0077\u0069\u006c\u006c\u005f\u006b\u0069\u006c\u006c\u005f\u0079\u006f\u0075\u0021\u007d-->flag{i_will_kill_you!}

万国码:每一字符都用一个5位字符编码表示,并用\分割
Unicode 字符可以适用于所有已知的编码。Unicode 是继 ASCII(美国国家交互信息标准编码)字符码后的一种新字符编码,它为每一个符号定义一个数字和名称,并指定字符和它的数值(码位),以及该值的二进制位表示法,通过一个十六进制数字和前缀(U)定义一个16位的数值,如:U+0041 表示 A,其唯一的名称是 LATIN CAPITAL LETTER A。

零字符宽度隐写

http://330k.github.io/misc_tools/unicode_steganography.html
零宽度字符是隐藏的不显示的,也是不可打印的,也就是说使用大部分程序和编辑器是看不到这种字符的。它们存在于页面中主要用于调整字符的显示格式。

零宽空格(zero-width space, ZWSP)用于可能需要换行处。
Unicode: U+200B HTML: ​

零宽不连字 (zero-width non-joiner,ZWNJ)放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。
Unicode: U+200C HTML: ‌

零宽连字(zero-width joiner,ZWJ)是一个控制字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。
Unicode: U+200D HTML: ‍

左至右符号(Left-to-right mark,LRM)是一种控制字符,用于计算机的双向文稿排版中。
Unicode: U+200E HTML: ‎ ‎ 或‎

右至左符号(Right-to-left mark,RLM)是一种控制字符,用于计算机的双向文稿排版中。
Unicode: U+200F HTML: ‏ ‏ 或‏

字节顺序标记(byte-order mark,BOM)常被用来当做标示文件是以UTF-8、UTF-16或UTF-32编码的标记。
Unicode: U+FEFF

零宽度字符的作用

数据防爬
将零宽度字符插入关键词文本中,使得匹配关键字时不能正确匹配,但是不影响用户的正常阅读

信息隐藏
可以将信息隐藏在正常文字中而不影响阅读

如何隐藏

首先,输入需要被加密的内容将被转换为其二进制(Morse编码),然后该二进制(Morse编码)将被转换为一系列的零宽度字符。然后可以将零宽度的字符串不可见地插入正常文本中,这样就被隐藏了。
每一种基于零宽度字符的隐写都可以有自己的隐写方式及加密方式,所以可能用这一个工具或脚本加密过的字符串在另一个解密网站就无法成功解密。
注意:加密和解密一定要用同一个网站或脚本!!!

摩斯电码

-... -.- -.-. - ..-. -- .. ... -.-.-->BKCTFMISC

https://tool.bugku.com/mosi/

相当于二进制编码

摩斯电码变形

0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010 0 000 1 01111 10 11110 101011 1111101-->flag{}m0rse_code_1s_interest1n9!}

特点:由0和1组成,并且每段的长度不一样

OOK语言

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.……-->flag{ok-ctf-1234-admin}

https://tool.bugku.com/brainfuck/

OOK!是一种为红毛猩猩设计的编程语言。OOK!与众所周知的深奥语言BrainF ***基本上是同构的 ,但语法元素更少

OOK语言变形

..... ..... ..... ..... !?!!. ?.... ..... ..... ..... .?.?! .?... .!........ ..... !.?.. ..... !?!!. ?!!!! !!?.? !.?!! !!!.. ..... ..... .!.?...... ...!? !!.?. ..... ..?.? !.?.. ..... .!.?. ..... ..... !?!!. ?!!!!!!!!! !?.?! .?!.? ..... ....! ?!!.? ..... ...?. ?!.?. .....
-->
flag{bugku_jiami}

Brainfuck语言

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>. -->Hello World!

https://tool.bugku.com/brainfuck/

  • < . ] [ -,8种符号

凯撒密码

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

https://tool.bugku.com/jiemi/

特点: 在原来字符上进行一定的偏移

escape

flag%7Bi-will-kill-you%21%7D -->flag{i-will-kill-you!}

核心价值观编码

公正公正公正诚信文明公正民主公正法治法治友善平等和谐敬业和谐富强和谐富强和谐文明和谐平等公正公正和谐法治公正公正公正文明和谐民主和谐敬业和谐平等和谐敬业和谐敬业和谐和谐和谐公正法治友善法治-->flag{90025f7fb1959936}

http://www.hiencode.com/cvencode.html

由核心价值观的12个词语组成的编码方式

sha1

7c2380341e0f03f81f873ab8d2ea5b88bc690793 -->flag{hello_world!}

40 位 由数字和小写字母组成

urlencode

%68%61%63%6b%65%72%44%4a-->hackerDJ

将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
比如:
空格ASCII码是32,对应16进制是20,那么urlencode编码结果是:%20,但在新标准中空格对应的是+,见RFC-1738
默认:字母是不进行编码的

当铺密码

羊由大井夫大人王中工-->9158753624

当铺密码[1]就是一种将中文和数字进行转化的密码,算法相当简单:当前汉字有多少笔画出头,就是转化成数字几

rot13

Ubj pna lbh gryy na rkgebireg sebz na vagebireg ng AFN? In the elevators, the extrovert looks at the OTHER guy's shoes.
-->How can you tell an extrovert from an introvert at NSA? Va gur ryringbef, gur rkgebireg ybbxf ng gur BGURE thl'f fubrf.

ROT13是它自己本身的逆反;也就是说,要还原ROT13,套用加密同样的算法即可得,故同样的操作可用再加密与解密。该算法并没有提供真正的密码学上的保全,故它不应该被套用在需要保全的用途上。它常常被当作弱加密示例的典型

词频分析

Eg qnlyjtcnzydl z umaujejmjetg qeydsn eu z bsjdtx tw sgqtxegc al kdeqd mgeju tw yrzegjsoj zns nsyrzqsx kejd qeydsnjsoj
Ew ltm fgtk jds kzl tw sgqtxegc m kerr csj jds wrzc kdeqd eu qrzuueqzr-qeydsn_eu_gtj_usqmnejl_du
-->
In cryptography a substitution cipher is a ?ethod of encoding by which units of plaintext are replaced with ciphertext If you know the way of encoding u will get the flag which is classical-cipher_is_not_security_hs

一种加密方式,做攻防世界的时候遇到的,
在线解密:
https://quipqiup.com/

jsfuck

(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[+[]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+
-->flag{hhaj}

F12打开控制台
将密文复制进去,回车就可以得到密码

decode HTML

LzExOS8xMDEvMTA4Lzk5LL122;ExM-->LzExOS8xMDEvMTA4Lzk5LzExM

DES

秘钥:6XaMMbM7
U2FsdGVkX18IBEATgMBe8NqjIqp65CxRjjMxXIIUxIjBnAODJQRkSLQ/+lHBsjpv1BwwEawMo1c=
-->ctf{67a166801342415a6da8f0dbac591974}

DES是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。它基于使用56位密钥的对称算法

键盘格子密码

r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM
-->
t o n g y u a n

特征:由三到四个英文字母或数字为一组。
在键盘上找对应的键位,中间围起来的就是密文

托马斯杰斐逊 转轮密码

密码表:

密钥: 2,5,1,3,6,4,9,7,8,14,10,13,11,12
密文:HCBTSXWCRQGL ES
在第 2 行密码表中找H开头的字母,然后以H开头再到尾过一遍,以此类推,整理出另一个密码表:

脚本:

# Rotor cipher decoder
# parameter input
rotor = [
    "ZWAXJGDLUBVIQHKYPNTCRMOSFE", "KPBELNACZDTRXMJQOYHGVSFUWI", 
    "BDMAIZVRNSJUWFHTEQGYXPLOCK", "RPLNDVHGFCUKTEBSXQYIZMJWAO", 
    "IHFRLABEUOTSGJVDKCPMNZQWXY", "AMKGHIWPNYCJBFZDRUSLOQXVET", 
    "GWTHSPYBXIZULVKMRAFDCEONJQ", "NOZUTWDCVRJLXKISEFAPMYGHBQ", 
    "QWATDSRFHENYVUBMCOIKZGJXPL", "WABMCXPLTDSRJQZGOIKFHENYVU", 
    "XPLTDAOIKFZGHENYSRUBMCQWVJ", "TDSWAYXPLVUBOIKZGJRFHENMCQ", 
    "BMCSRFHLTDENQWAOXPYVUIKZGJ", "XPHKZGJTDSENYVUBMLAOIRFCQW" 
]
 
cipher = "HCBTSXWCRQGLES"
 
key = [2, 5, 1, 3, 6, 4, 9, 7, 8, 14, 10, 13, 11, 12]
 
tmp_list=[]
 
for i in range(0, len(rotor)):
    tmp=""
    k = key[i] - 1
    for j in range(0, len(rotor[k])):
        if cipher[i] == rotor[k][j]:
            if j == 0:
                tmp=rotor[k]
                break
            else:
                tmp=rotor[k][j:] + rotor[k][0:j]
                break
    tmp_list.append(tmp)
# print(tmp_list)
 
message_list = []
for i in range(0, len(tmp_list[i])):
	tmp = ""
	for j in range(0, len(tmp_list)):
		tmp += tmp_list[j][i]
	message_list.append(tmp)
 
print(message_list)

Linux系统的 shadow 文件格式

root:\(6\)HRMJoyGA\(26FIgg6CU0bGUOfqFB0Qo9AE2LRZxG8N3H.3BK8t49wGlYbkFbxVFtGOZqVIq3q Q6k0oetDbn2aVzdhuVQ6US.:17770:0:99999:7::: Linux的 /etc/shadow 文件存储了该系统下所有用户口令相关信息,只有 root 权限可以查看,用户口令是以 Hash + Salt 的形式保护的。 每个字段都用 “\)” 或“:”符号分割;
第一个字段是用户名,如root ;
第二个字段是哈希算法,比如 6 代表SHA-512,1 代表 MD5;
第三个字段是盐,比如上面的 HRMJoyGA
第四个字段是口令+盐加密后的哈希值
后面分别是密码最后一次修改日期、密码的两次修改间隔时间(和第三个字段相比)、密码的有效期(和第三个字段相比)、密码修改到期前的警告天数(和第五个字段相比)、密码过期后的宽限天数(和第五个字段相比)、账号失效时间,这里不太重要要;
直接跑 John 试试

john shadow

如果解开了,加 --show 查看解密口令

john --show shadow

就是Linux的shadow文件格式

ZIP 伪加密

使用 WinHex

我们用winhex打开压缩包,搜索504B,点击第二个504B,从后面找第七、八位,发现是 09 00,改为 00 00 即可。
这种方式只适用于ZIP的伪加密,真加密了此方法不适用。

RSA 加解密

a) 密钥生成
1) 选取两个长度为 K 的素数 P 和 Q,计算 N = P * Q;
2) 计算 phi(N) = (P-1) * (Q-1), 其中 phi(N) 是 Z_(N^*) 的阶;
3) 随机选取一个int整数 e ∈ [ 1, phi(N) - 1 ],使得 gcd( e, phi(N)) = 1;
4) 计算它的逆 d,使得 [ e * d mod phi(N) ] = 1;
5) 输出私钥和公钥 sk = ( N, d ), pk = ( N, e );

b) 加密
c = m^e mod(N)

c) 解密
m = c^d mod(N)

标准银河字母

游戏《指挥官基恩》系列

仿射密码 affine cipher

# Q: y = 17x-8 flag{szzyfimhyzd}
 
flag = "szzyfimhyzd"
 
flaglist = []
 
for i in flag:
    flaglist.append(ord(i)-97)
 
flags = ""
for i in flaglist:
    for j in range(0,26):
        c = (17 * j - 8) % 26
        if(c == i):
            flags += chr(j+97)
print('flag{'+ flags + '}')

可能会提示你是放射密码 affine,公式: y = k * x + b mod 26 (跟一元一次函数似的)
后面的取模,如果都是英文字母的话是26,不排除有其他形式,比如ASC II 什么的,取模可能会换。

进制转换

二进制 b开头,八进制 o开头,十进制 d开头,十六进制 x开头

s = 'd87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e'
ss = s.split()
sss = []
print(ss)
for i in ss:
    if i[0] == 'd':
        i = i[1:]
        i = int(i,10)
        i = chr(i)
        sss.append(i)
    elif i[0] == 'x':
        i = i[1:]
        i = int(i,16)
        i = chr(i)
        sss.append(i)
    elif i[0] == 'o':
        i = i[1:]
        i = int(i,8)
        i = chr(i)
        sss.append(i)
    elif i[0] == 'b':
        i = i[1:]
        i = int(i,2)
        i = chr(i)
        sss.append(i)
print(sss)
flag = ''.join(sss)
print(flag)

标签:字符,加密,--,汇总,flag,Ook,密码,CTF,.....
From: https://www.cnblogs.com/fupo1/p/18359533

相关文章

  • git一些问题汇总
    普通文件夹成为git项目并和网上关联1、先在网上建立一个仓库,获得地址2、gitinit3、gitadd.4、gitcommit-m'firstcommit'5、gitremoteaddorigin复制的远程代码仓库地址6、gitpull--rebaseoriginmaster获取远程库与本地同步合并(如果远程库不为空必须做这一步,......
  • NSSCTF [GXYCTF 2019]Ping Ping Ping
    ping命令,这是老朋友了,经常碰见,先进题目界面看看 先试试直接输入一个地址,127.0.0.1,看看有没有回显 那就是一个ping命令了,直接先试试管道'|',look一下有没有被过滤掉,输入"127.0.0.1|ls" 出来了,说明管道命令可以用,那接下来就简单了。直接查看一下flag.php,输入"127.......
  • [NSSCTF 2022 Spring Recruit]ezgame
    首先查看本题描述:js分析,源码泄露,信息收集,大致了解了题的解法方向,进入题目页面查看一下,是一个射击游戏,查看源码发现要获得65分才能拿到成绩,一般来说这种游戏基本不可能拿到给定的分数,通常是对源码进行分析然后用bp抓包改包以此来进行分数获得。 结合前面题解的描述,我们先对js文......
  • Java 代码本地设置Hadoop用户名密码
    在Hadoop环境中,通常使用Kerberos进行身份验证。但在一些开发或测试环境中,我们可能需要在本地代码中设置用户名和密码来模拟或进行简单的测试。虽然这不是一个安全的做法,因为它违背了Kerberos的使用原则,但在某些场景下(如单元测试或本地开发)可能是必要的。方法一:使用Hadoop的API来......
  • NSSCTF WEB nizhuansiwei
    进入题目页面,先看一眼标签,发现本题的标签是反序列化,php伪协议。这些标签是做过题的人共同选出来的,所以具有一定参考价值进入到题目地址,发现是一段php源码,源码都给了,那当然是先来一手代码审计。<?php$text=$_GET["text"];$file=$_GET["file"];$password=$_GET["pas......
  • C++中STL用法汇总
    1什么是STL? STL(StandardTemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++StandardLibrary)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++......
  • Vulnhub JIS-CTF靶机详解
    项目地址https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/修改靶机的网卡开机时长按shift,进入此页面选择root模式进入将只读模式改为读写模式mount-oremount,rw/查看本机的网卡名称ifconfig-a修......
  • 【Python-办公自动化】几秒搞定几天的工作量之根据指定要求汇总求和排序成278张表格
    欢迎来到"花花ShowPython",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。自我介绍:我热衷于将复杂的技术概念以简单易懂的方式呈现给大家,......
  • CTFHub~SQL注入超简单详细教程
    0x01整数型注入#本题告诉我们是整数型,所以就很容易了#判断字段数量1orderby2#判断回显点-1unionselect1,2#查询全部数据库名-1unionselect1,group_concat(schema_name)frominformation_schema.schemata#判断数据库中的表名-1unionselec......
  • 宝塔面板常用Linux命令汇总
    Windows用户无需查看,该命令仅限Linux用户使用。管理宝塔停止面板服务/etc/init.d/btstop启动面板服务/etc/init.d/btstart重启面板服务/etc/init.d/btrestart修复面板/etc/init.d/bt16卸载面板服务/etc/init.d/btstop&&chkconfig--delbt&&rm-f/etc/init......