CTF常见密码汇总
栅栏密码
fg2ivyo}l{2s3_o@aw__rcl@-->flag{w22_is_v3ry_cool}
所谓栅栏密码,就是把要加密的明文分成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家族

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
XXencode编码
hS5VZPaBjN4IU6G2VFqZqNG-tPrJm64NgMKQuEa3nNIBIFbh0MLBZEpF4LqZn
9LpBjLoRjPqEV6Lo+
-->
xxencode !!!Give your flag:BaseCTF{BaseCTF_is_So_Good!!}
http://web.chacuo.net/charsetxxencode

UUencode编码
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
相当于二进制编码
摩斯电码变形
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
特点: 在原来字符上进行一定的偏移
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)
CTF常见密码汇总的更多相关文章
- 李洪强iOS开发之OC常见错误汇总
// // main.m // 16 - 常见错误汇总 // // Created by vic fan on 16/7/13. // Copyright © 2016年 李洪强. All r ...
- flume常见异常汇总以及解决方案
flume常见异常汇总以及解决方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际生产环境中,我用flume将kafka的数据定期的往hdfs集群中上传数据,也遇到过一系列的坑 ...
- 大数据常见端口汇总-hadoop、hbase、hive、spark、kafka、zookeeper等(持续更新)
常见端口汇总:Hadoop: 50070:HDFS WEB UI端口 8020 : 高可用的HDFS RPC端口 9000 : 非高可用的HDFS RPC端口 8088 ...
- css 17-CSS3的常见边框汇总
17-CSS3的常见边框汇总 #CSS3 常见边框汇总 <!DOCTYPE html> <html lang="en"> <head> < ...
- [CTF]当铺密码
[CTF]当铺密码 --------------------- 作者:adversity` 来源:CSDN 原文:https://blog.csdn.net/qq_40836553/articl ...
- [CTF]栅栏密码学习
[CTF]栅栏密码学习 即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码.栅栏密码是一种置换密码. 例如密文:TEOGSDYUTAENNHLNETAMS ...
- [CTF]培根密码
[CTF]培根密码 --------------------- 作者:adversity` 来源:CSDN 原文:https://blog.csdn.net/qq_40836553/articl ...
- [CTF]栅栏密码
[CTF]栅栏密码 --------------------- 作者:adversity` 来源:CSDN 原文:https://blog.csdn.net/qq_40836553/articl ...
- [CTF]猪圈密码
[CTF]猪圈密码 -------------------- 百度百科 本词条由"科普中国"百科科学词条编写与应用工作项目 审核 . https://baike.baidu.com ...
- CTF-Tools 一款CTF古典密码加解密工具
CTF-Tools 一款CTF古典密码加解密工具 工具截图 工具简介 一款CTF编码.解码.加密.解密工具. 支持的编码解码: URL-UTF-8 URL-GB2312 Unicode Escape( ...
随机推荐
- Android7以上https抓包
1. 问题描述 1.1 运行环境 1.2 问题描述 virtualXposed 不一定支持Android模拟器 无法抓包 https 请求 1.3 问题原因 Android7 以后,系统分了系统证书和 ...
- docker容器内使用sudo 报错bash: sudo: command not found
解决办法: 先查看linux系统版本: cat /proc/version 1.RedHat系主要有RedHat,Fedora,CentOs等: RedHat系列的包管理工具是yum,执行 yum i ...
- Qt开源作品11-屏幕录制控件
一.前言 在平时的写作过程中,经常需要将一些操作动作和效果图截图成gif格式,使得涵盖的信息更全面更生动,有时候可以将整个操作过程和运行效果录制成MP4,但是文件体积比较大,而且很多网站不便于上传,基 ...
- Qt编写安防视频监控系统33-onvif云台控制
一.前言 云台控制也是onvif功能中最常用的,最常用的功能排第一的是拿到视频流地址,排第二的就是云台控制了,云台控制的含义就是对带云台的摄像机进行上下左右的移动,一般云台摄像机都是带有一个小电机,一 ...
- AOP拦截日志
首先对于AOP切面编程,我也是刚学习,了解不深,这边先引用老张的博客,方便大家学习. 首先想一想,如果有这么一个需求,要记录整个项目的接口和调用情况,当然如果只是控制器的话,还是挺简单的,直接用一个过 ...
- JavaScript中find()和 filter()方法的区别小结
前言 JavaScript 在 ES6 上有很多数组方法,每种方法都有独特的用途和好处. 在开发应用程序时,大多使用数组方法来获取特定的值列表并获取单个或多个匹配项. 在列出这两种方法的区别之前,我们 ...
- SpringBoot集成开源IM框架MobileIMSDK,实现即时通讯IM聊天功能
一.前言 MobileIMSDK 是什么? MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协 ...
- Verilog5_有限状态机
一.有限状态机(Finite State Machine, FSM)基本概念 有限状态机是由寄存器组和组合逻辑构成的硬件时序电路: 其状态只能在同一时钟跳变沿从一个状态转向另一个状态: ...
- 聊一聊 C#异步中的Overlapped是如何寻址的
一:背景 1. 讲故事 前段时间训练营里的一位朋友提了一个问题,我用ReadAsync做文件异步读取时,我知道在Win32层面会传 lpOverlapped 到内核层,那在内核层回头时,它是如何通过这 ...
- nginx平台初探-1
初探nginx架构(100%) 众所周知,nginx性能高,而nginx的高性能与其架构是分不开的.那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧. nginx在启动后,在un ...