-
开篇
协会纳新的人数越来越多,也直播了一些基础课程,不知道大家有没有全部看懂.初入信息安全不知道如何学是很常见的,我们竞赛的类型主要是CTF(cross the fire (o゚v゚)ノ2333开玩笑。。。。好吧是夺旗战 这是针对0基础的同学写的入门篇目,请大佬们轻喷~~
-
CTF介绍
CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。(好想去DEFCONヾ(≧へ≦)〃... ...咳)
CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag”,也可意译为“夺旗赛”。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容(格式一般为 flag{XXXXXX} ),并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。
总而言是这种赛事就是通过技术手段(pwn 逆向分析 decode等)从 程序或者数据中 找到关键的字符串(flag)并正确提交。。。(●ˇ∀ˇ●)
-
水了半天了,下面进入正题。
-
(初入CTF建议先从密码学入手,下面开始讲解):
-
古典密码学:
- 凯撒密码(移位密码):通过明文在字母表中的偏位位数加密
例如偏移量为3位的时候:A对应D,B对应E,C对应F等。。。
这个很好懂,在这里就不详细说了。
偏移量为13位的时候凯撒密码又叫 回转密码(ROT13):明文加密得到密文,密文再加密就会得到明文(因为偏移量为13位一共 26个字母,加密两次就会回到明文了),在CTF中题目关键字眼 会有回转、回旋、十三踢等字眼。
- 摩尔斯电码(又译为摩斯密码,Morse code)用 “ . ” 和 “ - ”的排列表达26个字母和数字0-9
例如:-.-. - ..-. .. ... --. --- --- -..
明文:ctfisgood
- 当铺密码:王夫 井工 夫口 由中人 井中 夫夫 由中大 (题目链接)
- playfair密码 用5x5的表格,格子放26个字母(I 和J算一个格子 )正好放满25个格子。有密钥的话先往各自中不重复的顺序填入再按照26个字母顺序填入密钥中没有的其他字母 例如密钥为:crazy dog
C
|
D
|
F
|
M
|
T
|
R
|
O
|
H
|
N
|
U
|
A
|
G
|
I ( J )
|
P
|
V
|
Z
|
B
|
K
|
Q
|
W
|
Y
|
E
|
L
|
S
|
X
|
先整理明文:将明文每两个字母组成一对。如果成对后有两个相同字母紧挨或最后一个字母是单个的,就插入一个字母X(或者Q)
- 1.使用python的一个第三方库:pycipher 里的Playfair模块 (安装:pip install pycipher)
- 栅栏密码就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)
- 一般比较常见的是2栏的栅栏密码。
比如明文:THERE IS A CIPHER
去掉空格后变为:THEREISACIPHER
两个一组,得到:TH ER EI SA CI PH ER
先取出第一个字母:TEESCPE
再取出第二个字母:HRIAIHR
连在一起就是:TEESCPEHRIAIHR
为了生成密码,需要使用表格法。这一表格(如图1所示)包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。
常见编码/加密方式:
DES/AES/3DES/RC4加密 特点为常见以U2FsdGVkX1开头:
U2FsdGVkX1/l5+tEGEch+uPDGCc3P/P1xUoBSKEcePvrB6eaMKTQxvX9tMFk6v3n
vEOfd6aQcZg=
- base64/32/16/58/36/62/91/85 base全加桶 以base64编码最为常见:QmFzZTY0JXU2NjJGJXU3RjUxJXU3RURDJXU0RTBBJXU2NzAwJXU1RTM4JXU4OUMxJXU3Njg0JXU3NTI4JXU0RThFJXU0RjIwJXU4RjkzOEJpdCV1NUI1NyV1ODI4MiV1NzgwMSV1NzY4NCV1N0YxNiV1NzgwMSV1NjVCOSV1NUYwRiV1NEU0QiV1NEUwMCV1RkYwQ0Jhc2U2NCV1NUMzMSV1NjYyRiV1NEUwMCV1NzlDRCV1NTdGQSV1NEU4RTY0JXU0RTJBJXU1M0VGJXU2MjUzJXU1MzcwJXU1QjU3JXU3QjI2JXU2NzY1JXU4ODY4JXU3OTNBJXU0RThDJXU4RkRCJXU1MjM2JXU2NTcwJXU2MzZFJXU3Njg0JXU2NUI5JXU2Q0Q1JXUzMDAyJXU1M0VGJXU2N0U1JXU3NzBCUkZDMjA0NSV1RkY1RVJGQzIwNDkldUZGMEMldTRFMEEldTk3NjIldTY3MDlNSU1FJXU3Njg0JXU4QkU2JXU3RUM2JXU4OUM0JXU4MzAzJXUzMDAy
ZGFkZGFkYXdnZw==
base64中包含大写字母(A-Z)、小写字母(a-z)、数字0——9以及+/;
base64索引表:
base32中只有大写字母(A-Z)和数字234567
base32索引表:
base16中只有数字0-9以及大写字母ABCDEF。
base16索引表:
在base家族中有小写的是base64,没有189的是base32,“=”是凑位数的。 原文链接
unicode:\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064\u0021 (Hello World!)
-
Brainfuck/Ook!:++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>. (Hello World!)
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. (Hello World!)
-
JSFuck:
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()
- aaencode: ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ [\'_\']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: \'_\' ,゚ω゚ノ : ((゚ω゚ノ==3) +\'_\') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ \'_\')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +\'_\')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +\'_\') [c^_^o];(゚Д゚) [\'c\'] = ((゚Д゚)+\'_\') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) [\'o\'] = ((゚Д゚)+\'_\') [゚Θ゚];(゚o゚)=(゚Д゚) [\'c\']+(゚Д゚) [\'o\']+(゚ω゚ノ +\'_\')[゚Θ゚]+ ((゚ω゚ノ==3) +\'_\') [゚ー゚] + ((゚Д゚) +\'_\') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +\'_\') [゚Θ゚]+((゚ー゚==3) +\'_\') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) [\'c\']+((゚Д゚)+\'_\') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) [\'o\']+((゚ー゚==3) +\'_\') [゚Θ゚];(゚Д゚) [\'_\'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +\'_\') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+\'_\') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +\'_\') [o^_^o -゚Θ゚]+((゚ー゚==3) +\'_\') [゚Θ゚]+ (゚ω゚ノ +\'_\') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]=\'\\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +\'_\')[c^_^o];(゚Д゚) [゚o゚]=\'\"\';(゚Д゚) [\'_\'] ( (゚Д゚) [\'_\'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) (\'_\');
上面那一堆表情解密后就是:
-
BubbleBabble :
明文:flag
密文:xinik-samak-loxox