CTF学习资源

这篇具有很好参考价值的文章主要介绍了CTF学习资源。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、buuctf靶场

网址:https://buuoj.cn/challenges
CTF学习资源,运维CTF学习资源,运维

1、MD5

CTF学习资源,运维CTF学习资源,运维

答案是flag{admin1}

2、一眼解密

下面的字符串解密后便能获得flag:
ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30= 注意:得到的 flag 请包上 flag{} 提交
显然是base64加密
flag{THE_FLAG_OF_THIS_STRING}

3、Url编码

CTF学习资源,运维

flag{and 1=1}

4、回旋踢

synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}
凯撒密码,13位
A换成N、B换成O、依此类推到M换成Z,然后序列反转:N换成A、O换成B、最后Z换成M。
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm
flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}

5、摩斯

… .-… — …- . -.-- — …-
iloveyou
flag{ILOVEYOU},摩斯密码需大写

6、Password

姓名:张三
生日:19900315

key格式为key{xxxxxxxxxx}
flag{zs19900315}

7、变异凯撒

加密密文:afZ_r9VYfScOeO_UL^RWUc
格式:flag{ }
str=“afZ_r9VYfScOeO_UL^RWUc”
k=5
for i in str:
print(chr(ord(i)+k),end=‘’)
k+=1
flag{Caesar_variation}

8、Quoted-printable

=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6
flag{那你也很棒哦}

9、Rabbit

U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI
flag{Cute_Rabbit}
解密工具是:http://www.jsons.cn/rabbitencrypt/

10、篱笆墙的影子

felhaagv{ewtehtehfilnakgw}
栅栏密码 2 加密
flag{wethinkwehavetheflag}

11、RSA

在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17
求解出d作为flga提交
(1)求n
473398607161 *4511491=2135733555619387051
(2)求m
φ (473398607160,4511490)=2135733082216268400
(3)求e
1<e<m gcd(e,m)=1 e,m互质,还是取17
(4)求d
1<d<m 17d-2135733082216268400y=1 取d=?,y=?

计算方法
import gmpy2

e = 17
p = 473398607161
q = 4511491

phi_n = (p-1)(q-1)
d = gmpy2.invert(e,phi_n)#即e
d mod phi_n = 1
print(d)

flag{125631357777427553}

12、丢失的MD5

CTF学习资源,运维

代码执行报错,这是改后的
import hashlib
for i in range(32,127):
for j in range(32,127):
for k in range(32,127):
m=hashlib.md5()
m.update((‘TASC’+chr(i)+‘O3RJMV’+chr(j)+‘WDJKX’+chr(k)+‘ZM’).encode(‘utf-8’))
des=m.hexdigest()
if ‘e9032’ in des and ‘da’ in des and ‘911513’ in des:
print (des)
flag{e9032994dabac08080091151380478a2}

二、ctf题型

1、PWN,Reverse

PWN,Reverse偏重对汇编,逆向的理解

1)Reverse

涉及 Windows、Linux、Android 平台的多种编程技术,要求利用常用工具对源代码及二进制文件进行逆向分析,掌握 Android 移动应用 APK 文件的逆向分析,掌握加解密、内核编程、算法、反调试和代码混淆技术。

2)pwn

CTF pwn中的目标是拿到flag,一般是在Linux平台下通过二进制/系统调用等方式编写漏洞利用脚本exp来获取对方服务器的shell,然后get到flag。

2、Crypto

Crypto偏重对数学,算法的深入学习,也要有脚本编写能力
密码学(Cryptography)一般可分为古典密码学和现代密码学。

1)古典密码学

古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没有对密码学原件进行清晰的定义。古典密码学主要包含以下几个方面:
单表替换加密(Monoalphabetic Cipher)
多表替换加密(Polyalphabetic Cipher)
奇奇怪怪的加密方式

2)现代密码学

现代密码学起源于 20 世纪中后期出现的大量相关理论,1949 年香农(C. E. Shannon)的经典论文标志着现代密码学的开始。现代密码学主要包含以下几个方面:
对称加密(Symmetric Cryptography),以 DES,AES,RC4 为代表。
非对称加密(Asymmetric Cryptography),以 RSA,椭圆曲线加密为代表。
哈希函数(Hash Function),以 MD5,SHA-1,SHA-512 等为代表。
数字签名(Digital Signature),以 RSA 签名,DSA 签名为代表。

3、web

Web偏重于对技巧沉淀,快速搜索能力的挑战
WEB 类的题目包括但不限于:SQL 注入、XSS 跨站脚本、CSRF 跨站请求伪造、文件上传、文件包含、框架安全、PHP 常见漏洞、代码审计等。

4、Misc

Misc则更为复杂,所有与计算机安全挑战相关的都在其中,也会包含很多脑洞
Misc 是英文 Miscellaneous 的前四个字母,杂项、混合体、大杂烩的意思。

1)Recon(信息搜集)

主要介绍一些获取信息的渠道和一些利用百度、谷歌等搜索引擎的技巧

2)Encode(编码转换)

主要介绍在 CTF 比赛中一些常见的编码形式以及转换的技巧和常见方式

3)Forensic && Stego(数字取证 && 隐写分析)

隐写取证是 Misc 中最为重要的一块,包括文件分析、隐写、内存镜像分析和流量抓包分析等等,涉及巧妙的编码、隐藏数据、层层嵌套的文件中的文件,灵活利用搜索引擎获取所需要的信息等等。

三、ctf学习资源

1、基础

Linux基础,计算机组成原理,操作系统原理,网络协议分析

2、A方向

IDA,OD,逆向工程,密码学,缓冲区溢出

1)推荐书籍

RE for Beginners(逆向工程入门)
IDA Pro权威指南
揭秘家庭路由器0day漏洞挖掘技术
自己动手写操作系统
黑客攻防技术宝典:系统实战篇

2)练习资源

WeChall   http://www.wechall.net/challs
http://canyouhack.it/
酷炫 https://microcorruption.com/login
http://smashthestack.org/
wargame集合 https://overthewire.org/wargames/	
老wargame https://exploit-exercises.com/
PWN游乐场 http://pwnable.kr/play.php

3、B方向

网络安全,内网渗透,Web安全,数据库等无所不学

1)推荐书籍

Web安全深度剖析
Web应用安全权威指南
Web前端黑客技术揭秘
黑客秘籍:渗透测试实用指南
黑客攻防技术宝典:Web实战篇
代码审计:企业级Web代码安全架构

2)练习资源

WeChall http://www.wechall.net/challs
CTF List http://captf.com/practice-ctf/
攻防世界 https://adworld.xctf.org.cn/
Bugku https://ctf.bugku.com/
i春秋 https://www.ichunqiu.com/
墨者学院 https://www.mozhe.cn/
网络信息安全攻防学习平台 http://hackinglab.cn/
XSS测试 http://prompt.ml/0
SQL挑战 http://redtiger.labs.overthewire.org/
https://github.com/truongkma/ctf-tools
https://github.com/Plkachu/v0lt
https://github.com/zardus/ctf-tools
https://github.com/TUCTF/Tools

4、CTF比赛

以练促赛:选择一场已经存在Writeup的比赛
以赛养练:参加一场最新CTF比赛
https://ctftime.org 国际比赛(包含一些比较基础的比赛)
http://www.xctf.org.cn 国内比赛(国内主流,但题目大部分偏难

5、业内网站推荐

渗透师 https://www.shentoushi.top/
安全圈 https://www.anquanquan.info/
纳威安全导航 https://navisec.it/
SecWiki https://www.sec-wiki.com/index.php

四、CTF密码学

1、密码学的三个发展阶段

1)古典密码阶段

古典密码阶段(1949年以前),早期的数据加密技术比较简单,复杂程度不高,安全性较低,大部分都是一些具有艺术特征的字谜。随着工业革命的到来和二次世界大战的爆发数据加密技术有了突破性的发展。出现了一些比较复杂的加密算法以及机械的加密设备。
通常包括单表替换加密,多表替换加密和其他的加密方法

a.摩斯密码

摩斯密码(Morse code)使用了两个基本的信号单位:点(·)和划(—)。通过这两个单位的组合,可以表达不同的字母、数字和标点符号。

① 字母

CTF学习资源,运维

② 数字

CTF学习资源,运维

③ 标点符号

CTF学习资源,运维

④ 非英文字符

CTF学习资源,运维

⑤ 特殊符号

CTF学习资源,运维

⑥ 加解密工具

CTF学习资源,运维

b.换位密码
① 栅栏密码

栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文
例子1:
明文: The quick brown fox jumps over the lazy dog
去空格: Thequickbrownfoxjumpsoverthelazydog
每2个字符为1组分组
分组: Th eq ui ck br ow nf ox ju mp so ve rt he la zy do g
第一组: Teucbonojmsvrhlzdg
第二组: hqikrwfxupoeteayo
密文: Teucbonojmsvrhlzdghqikrwfxupoeteayo
例子2:
密文: hrelldlioswmoe
Hr el ld li os wm oe
明文: helloworldisme
密文:felhaagv{ewtehtehfilnakgw}
Fe lh aa gv {e wt eh te hf il na kg w}
明文:flag{wethinkwehavetheflag}
加解密工具
http://www.hiencode.com/
CTF学习资源,运维

② 凯撒密码

将明文中的 每个字母 都按照其在字母表中的顺序向后(或向前)移动固定数目(循环移动)作为密文
向后位移三位
CTF学习资源,运维

密文: iodj{ehoor zrua} 位移三位
明文: flag{bello worx}
加解密工具
http://www.hiencode.com/
CTF学习资源,运维

③ 曲路密码

需要事先约定密钥(曲路路径)
CTF学习资源,运维

明文: flag{y0u_are_p1g@}(行或列为3)
f l a g { y
0 u _ a r e
_ p 1 g @ }
密文:}ey{r@gaga_1pulf0_

④ 列移位密码

列移位密码(Columnar Transposition Cipher)是一种比较简单,易于实现的换位密码,通过一个简单的规则将明文打乱混合成密文
以how are u在字母表中的出现的先后顺序进行编号,我们就有a为1,e为2,h为3,o为4,r为5,u为6,w为7,所以先写出a列,其次e列,以此类推写出的结果便是密文:
明文:Thequickbrownfoxjumpsoverthelazydog
按howare长度每7个字符分为1组
T h e q u i c
k b r o w n f
o x j u m p s
o v e r t h e
l a z y d o g
根据次序按列取数
CTF学习资源,运维

密文: qoury inpho Tkool hbxva uwmtd cfseg erjez

c.替换密码
① 单表替换加密

移位密码
与凯撒密码类似,区别在于移位密码不仅会处理字母,还会处理数字和特殊字符,常用 ASCII 码表进行移位。其破解方法也是遍历所有的可能性来得到可能的结果。
简单替换密码
将每个明文字母替换为与之唯一对应且不同的字母。它与恺撒密码之间的区别是其密码字母表的字母不是简单的移位,而是完全是混乱的,这也使得其破解难度要高于凯撒密码
CTF学习资源,运维

a对应p,b对应h,依次类推
此种加密方式密钥个数为26!,几乎不可能爆破
CTF学习资源,运维

② 多表替换加密
棋盘密码Polybius

明文 HELLO,加密后就是
23 15 31 31 34
CTF学习资源,运维

Vigenere 维吉尼亚密码

使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式
CTF学习资源,运维

例子1:
CTF学习资源,运维

加密过程:
对密钥填充至与明文长度一致
然后查表得密文
CTF学习资源,运维CTF学习资源,运维

密文:efktzfgrrltzn
例子2:
明文:nice to meet you
密钥:nice
n i c e t o m e e t y o u
n i c e n i c e n i c e n
密文:
A Q E I G W O I R B A S H
aqeigwoirbash

加解密工具

CTF学习资源,运维

d.其他类型加密
① 培根密码

培根密码是一种简单的替换密码,密文字符只有两个(a和b),每个明文字符都会被替换为一个由a和b组成的长度为5的字符串。
比如明文h被替换后的密文为aabbb
密文字符也可以选择任意两个其它字符
如果看到这种全部由两个字母组成的密文,那么就可以猜测可能是培根密码。
常规培根密码表
明文i和j、u和v所对应的密文是一样的。
CTF学习资源,运维

扩展培根密码表
包括所有26个字符。
CTF学习资源,运维

例子:http://ctf5.shiyanbar.com/crypto/enc1.txt
– — .-. … . …–.- … … …–.- -.-. — — .-… …–.- -… …- - …–.- -… .- -.-. — -. …–.- … … …–.- -.-. — — .-… . .-. …–.- -… -.-. -.-. -… -.-. -.-. -.-. -… -… -… -.-. -… -.-. -.-. -.-. -… -… -.-. -.-. -.-. -.-. -.-. -.-. -.-. -.-. -.-. -… -… -.-. -… -.-. -.-. -.-. -.-. -… -.-. -.-. -.-. -.-. -.-. / -.-. -… -.-. -.-. -.-. -… -.-. -.-. -… -.-. / -.-. -.-. -.-. -… -.-. -.-. -… -… -… -.-. -.-. -… -… -… -.-. -.-. -… -.-. -… -…
摩斯解码后
morse_is_cool_but_bacon_is_cooler_dccdcccdddcdcccddcccccccccddcdccccdccccccdcccdccdccccdccdddccdddccdcdd
取出dccdcccdddcdcccddcccccccccddcdccccdccccccdcccdccdccccdccdddccdddccdcdd
将c替换为a,d替换为b
baabaaabbbabaaabbaaaaaaaaabbabaaaabaaaaaabaaabaabaaaabaabbbaabbbaababb
然后使用培根密码解密得shiyanbaiscool,所以
明文:morse_is_cool_but_bacon_is_cooler_shiyanbaiscool

加解密工具

CTF学习资源,运维

② 埃特巴什码

字母倒序,26个字母倒叙输出
CTF学习资源,运维

明文:gsv jfrxp yildm ulc qfnkh levi gsv ozab wlt
密文:the quick brown fox jumps over the lazy dog

③ 猪圈密码

CTF学习资源,运维

密文:
CTF学习资源,运维

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

解密工具

CTF学习资源,运维

④ 键盘密码

CTF学习资源,运维

明文:35 16 13
密文:bye
CTF学习资源,运维

明文:vqz
密文:cjm

2)近代密码阶段

近代密码阶段 (1949-1975年),在这期间由于计算机的诞生,使得加密技术从机械时代提升到了电子时代。这使得复杂计算的加密技术成为可能,也使得加密算法在复杂程度和安全性上得到了很大的提高。
3)现代密码阶段
现代密码阶段(1976年至今),美国密码学专家Diffie和Hellman在1976年提出公开密钥密码体制的概念,这是现代密码学的重大发明,也为密码学提供了全新的方向。
主要包含:对称加密(DES,AES,RC4);非对称加密(RSA,ElGamal,椭圆曲线加密);哈希函数(MD5,SHA-1,SHA-512);数字签名(RSA签名,ElGamal签名,DSA签名)

a.对称密码

对称密码是一种常见的加密算法,具有以下特点:
单一密钥:对称密码使用相同的密钥进行加密和解密操作。发送者和接收者必须事先商定并共享相同的密钥。
加密速度快:对称密码算法通常具有较快的加密和解密速度,这使得其适用于大量数据的加密和解密操作。
实现简单:对称密码的实现相对较简单,所需的计算资源也较少。
加解密效率高:对称密码使用相同的密钥进行加密和解密,因此不需要进行密钥分发和管理,减少了额外的开销。
密钥长度较短:对称密码的密钥长度通常较短,一般情况下为几十到几百位。

① DES

DES:Data Encryption Standard,DES是一种对称加密算法,使用56位密钥对数据进行加密。由于密钥长度较短,已经被认为不够安全,逐渐被更强大的算法所替代。
64比特明文通过56比特密钥加密成64比特,每7位一个检验比特,每一个64比特称为一个分组,长度增长以后,如何迭代(反复)的方式称为模式

② 3DES

3DES(Triple Data Encryption Standard):3DES是对DES的加强版本,使用两次或三次的DES算法来加密数据。它可以提供更高的安全级别,但速度较慢。

③ 其他密码

AES(Advanced Encryption Standard):AES是当前最常用的对称加密算法之一,用于替代DES。它支持128位、192位和256位密钥,并提供较高的安全性和较快的加密速度。
RC4(Rivest Cipher 4):RC4是一种流密码算法,它将密钥和明文数据一次性地进行异或操作来生成密文。虽然在过去广泛使用,但由于存在安全性漏洞,已不再推荐使用

b.非对称密码

密钥的对称性:对非对称密码算法而言,加密和解密所使用的密钥是不同的。公钥用于加密数据,私钥用于解密数据。这样的密钥对有一个重要的特点,即无法通过公钥推导出私钥。
密钥的分发:在非对称密码中,公钥可以自由分发给其他人,而私钥必须保密,只有密钥的所有者可以访问。这样可使公钥广泛公开,而私钥只需安全地存储在密钥的持有者手中。
数字签名:非对称密码算法还可以用于生成和验证数字签名。数据的发送者可以使用其私钥对数据进行签名,接收者可以使用发送者的公钥验证签名的有效性。
密钥长度较长:相比对称密码算法,非对称密码算法使用的密钥长度通常较长,一般为几百到几千位。
RSA算法由两个密钥,即公钥和私钥组成
如果没有 RSA 算法,现在的网络世界毫无安全可言,也不可能有现在的网上交易。众所周知的 ssh 协议也是基于 RSA 加密算法才能确保通讯是加密的。
1976年以前,所有的加密方法都使用对称加密算法:加密和解密使用同一套规则。例如:甲使用密钥 A 加密,将密文传递给乙,乙仍使用密钥 A 解密。如果密钥 A 在甲传递给乙的过程中泄露,或者根据已知的几次密文和明文推导出密钥 A,则甲乙之间的通讯将毫无秘密。
甲使用公钥 A 加密,将密文传递给乙,乙使用私钥 B 解密得到明文。其中公钥在网络上传递,私钥只有乙自己拥有,不在网络上传递,这样即使知道了公钥 A 也无法解密。反过来通讯也一样。只要私钥不泄漏,通信就是安全的,这就是非对称加密算法。
加密
密文 = 明文 E mod N
公钥(E,N)
解密
明文 = 密文 D mod N
私钥(D,N)

密钥对的生成过程
随机找两个质数P和Q,P与Q越大,越安全。(例如:61和53)
计算p和q的乘积n。(n=61×53=3233,n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。)
计算 n 的欧拉函数φ(n)。(根据公式φ(n)=(p-1)(q-1)算出φ(3233)等于60×52,即3120)
随机选择一个整数e,条件是1<e<φ(n),且e与φ(n) 互质。(条件是1<e<φ(n),且e与φ(n) 互质。1到3120之间,随机选择了17。)
求一个整数d,可以使得ed 除以φ(n) 的余数为 1。(ed ≡ 1 (mod φ(n)),即17*2753 mode 3120=1)
将n和e封装成公钥,n和d封装成私钥。(n=3233,e=17,d=2753,所以公钥就是:3233,17,私钥就是:3233, 2753。)
本例中公钥为 (n,e) = (4757,101),私钥为 (n,d) = (4757,1601),仅(n,e) = (4757,101) 是公开的,其余数字均不公开。可以想像如果只有 n 和 e,如何推导出 d,目前只能靠暴力破解,位数越长,暴力破解的时间越长。

例题1:
(1)求n
41 * 83=3403(两个大大大质数)
(2)求m
φ (40,82)=3280
(3)求e
1<e<m gcd(e,m)=1 e,m互质(e和m的最大公约数为1) 取e=17(随便取,不要和3280太接近了)
(4)求d
1<d<m e*d%m= 1 得到 ed-my=1 取d=193,y=1
那公钥(n,e)=(3403,17) 私钥(n,d)=(3403,193)

加密(假设明文为123)
明文^e % n = 123^17 % 3403 = pow(123,17)%3403=943
解密(现在密文就为943)
密文^d % n = 943^193 % 3403= pow(943,193)%3403 = 123

例题2:
两个质数 p=7 q=33 e为17 求:
公钥(n,e)=(231,17)
私钥(n,d)=(231,113)
明文123
求密文 密文= 123^17 mod 231 =51
反推 求明文 明文=
(1)求n
7 * 33=231
(2)求m
φ (6,32)=192
(3)求e
1<e<m gcd(e,m)=1 e,m互质,还是取17
(4)求d
1<d<m 17d-192y=1 取d=?,y=?
加密(假设明文为123)
明文^e % n = 123^17 % 231=pow(123,17)%231=51
解密(现在密文就为943)
密文^d % n = 51^d % 231= ?

c.摘要算法

MD5
MD5(Message Digest Algorithm 5)中文名为消息摘要算法第五版,是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
MD5作为一种常用的摘要算法(或指纹算法),其具有以下几个重要的特点:
输入任意长度信息,输出长度固定:MD5 可输入任意长度的信息,其输出均为128位(bit)固定长度的二进制数据。
运算速度快:MD5的运算均为32位 与、或、非、位移等位运算,因此其运算速率快,几乎不消耗CPU时间。
不可逆:根据MD5的的散列结果,无法计算出原始数据(查字典除外)。
碰撞性:原始数据与其MD5散列结果并非一一对应,存在多个原始数据的MD5结果相同的可能性。
其他算法
SHA-1(Secure Hash Algorithm 1):生成160位(20字节)摘要,也常用于文件完整性校验。然而,由于易受到碰撞攻击,SHA-1已逐渐被淘汰。
SHA-256(Secure Hash Algorithm 256-bit):属于SHA-2系列的一种,生成256位(32字节)摘要。SHA-256及其衍生算法(如SHA-384、SHA-512等)应用广泛,是目前信息安全领域中常用的摘要算法之一。
SHA-3:称为Keccak算法,也是一种哈希函数系列。与SHA-2相比,SHA-3具有不同的结构和算法,提供更好的安全性和性能。
RIPEMD(RACE Integrity Primitives Evaluation Message Digest):是欧洲CRYPTREC项目的候选摘要标准之一。RIPEMD-160广泛应用于比特币和其他加密货币领域。

2、密码学的根本目标

机密性(Confidentiality)
完整性(Integrity)
可用性(Availability)
认证性(Authentication)
不可否认性(Non-repudiation)
前三者称为信息安全的CIA三要素

3、编解码

1)ASCII编码

第一部分是:ASCII非打印控制字符(参详ASCII码表中0-31);
第二部分是:ASCII打印字符,也就是CTF中常用到的转换;
第三部分是:扩展ASCII打印字符
CTF学习资源,运维

2)BASE家族

base64、base32、base16可以分别编码转化8位字节为6位、5位、4位。16,32,64分别表示用多少个字符来编码。
Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的email,email via MIME,在XML中存储复杂数据。
编码原理:Base64编码要求把3个8位字节转化为4个6位的字节,之后在6位的前面补两个0,形成8位一个字节的形式,6位2进制能表示的最大数是2的6次方是64,这也是为什么是64个字符(A-Z,a-z,0-9,+和/这64个编码字符,=号不属于编码字符,而是填充字符)的原因,这样就需要一张映射表,如下:

Base64映射表

CTF学习资源,运维

base64加密

先将明文参照ASCII码对照表,找到每个字符对应的ASCII码,之后转换为8位的二进制,最后将转换好的二进制按照6位分组,不够的补0,最后转换好的6位的二进制的位数一定要确保是6和8的倍数(位数一定要加上补上的0),如果不够6和8的位数,用“=”占位,一个“=”占6位,之后转换为十进制,最后的十进制的结果对照base64编码表进行转换。
例题:you进行base64编码
6和8的最小公倍数:24
可以使用python ord(‘y’)查得ascii码,使用bin(121)查得二进制,不够8位补0
CTF学习资源,运维

y:121 01111001
o:111 01101111
u:117 0111 0101
每隔6位为一组,前面补0凑够8位,然后对照base64表输出
00011110 30 e
00010110 22 w
00111101 61 9
0011 0101 53 1

所以密文是:ew91
如果明文是you i
y:121 01111001
o:111 01101111
u:117 0111 0101
I:105 01101001

00011110 30 e
00010110 22 w
00111101 61 9
0011 0101 53 1
00011010 26 a
00010000 16 Q
不包括前面补的2个0,上面一共有36个字符,不满足6和8的倍数,补=凑足条件需凑到48即需再加2个等号(一个等号6位)
所以最后密文是ew91aQ==

加解密工具

CTF学习资源,运维

3)ShellCode编码

ASCII编码,以\x开头
源文本: The quick brown fox jumps over the lazy dog
编码后:
#!shell
\x54\x68\x65\x7f\x71\x75\x69\x63\x6b\x7f\x62\x72\x6f\x77\x6e\x7f\x66\x6f\x78\x7f\x6a\x75\x6d\x70\x73\x7f\x6f\x76\x65\x72\x7f\x74\x68\x65\x7f\x6c\x61\x7a\x79\x7f\x64\x6f\x67

4)Quoted-printable 编码

多用途互联网邮件扩展(MIME) 一种实现方式
CTF学习资源,运维

5)URL编码

url编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码
源文本: The quick brown fox jumps over the lazy dog
编码后: %54%68%65%20%71%75%69%63%6b%20%62%72%6f%77%6e%20%66%6f%78%20%6a%75%6d%70%73%20%6f%76%65%72%20%74%68%65%20%6c%61%7a%79%20%64%6f%67

6)Unicode编码

Unicode是国际组织制定的,可以容纳世界上所有文字、符号的字符集
Unicode编码有以下四种编码方式:
源文本: The
&#x [Hex]: The
&# [Decimal]: The
\U [Hex]: \U0054\U0068\U0065
\U+ [Hex]: \U+0054\U+0068\U+0065

7)HTML实体编码

CTF学习资源,运维

五、ctf文件操作与隐写

1.文件类型识别

1)File

Linux file命令,可识别无扩展名的文件类型
如下图,将1.txt后缀名去掉后file仍然可以正确识别出其类型
CTF学习资源,运维

2)Winhex

Windows工具winhex,根据文件头判断文件类型
常见文件类型文件头
CTF学习资源,运维CTF学习资源,运维

将2.jpg改成2后仍然可以识别出文件头进而判断其类型
FF D8 FF E0
CTF学习资源,运维

用这个工具也可以修复文件头残缺或错误的文件,只需要在工具里编辑正确的文件头即可
使用粘贴零字节插入新的数据
CTF学习资源,运维

2.文件分离

1)Binwalk

Linux binwalk可以分析和分离文件,分离成功会生成一个”文件名_extracted”的文件夹
分析文件:binwalk filename
分离文件:binwalk -e filename
使用winhex查看发现有pk,说明可能有隐含文件,这时可以尝试分离文件
CTF学习资源,运维

2)Foremost

Kali formost也可以分离文件
formost filename -o dir

CTF学习资源,运维CTF学习资源,运维

kali安装:apt-get install foremost

3)dd

dd手动实现分离交叉分布的文件
CTF学习资源,运维CTF学习资源,运维CTF学习资源,运维

Skip跳过多少块
CTF学习资源,运维

4)Winhex

winhex也可以手动分离,复制出想要分离的部分数据,新建一个文档贴进去就行,记得删除新建文档的00
CTF学习资源,运维

3.文件合并

1)Linux下的文件合并

cat 合并的文件 >输出的文件
└─# cat payload_2.jpg archive-key.asc > c
CTF学习资源,运维

可以看出c确实合并了2个文件
CTF学习资源,运维

2)Windows下的文件合并

copy /b 要合并的文件1+要合并的文件2 输出的文件
CTF学习资源,运维CTF学习资源,运维

可以看出out又合并了一个jpeg图片,使用foremost分离可以看出2个图片都在jpg文件夹里
CTF学习资源,运维CTF学习资源,运维

4.文件完整性检测

1)Linux

md5sum 文件名
CTF学习资源,运维

2)Windows

certutil -hashfile 文件名 md5
CTF学习资源,运维

记住不同文件,内容一样哈希值是一样的

5.文件内容隐写

使用winhex,先看头尾,中间用flag或key搜索

6.图片文件隐写

隐写方式

图片混合隐写
隐写进图片的属性
隐写图片的大小
第18位开始是图片大小数值
CTF学习资源,运维

隐写图片的头部码
复合隐写
Gif隐写
Framebrowser

两张图片重叠在一起,使用工具:stegsolve.jar
CTF学习资源,运维

二维码图片可以使用工具QRresearch扫码

7.LSB最低有效位隐写

LSB隐写就是通过修改RGB颜色分量的最低位二进制(LSB),来进行信息的储存,人类的眼睛并不能感知到前后的变化每个像素可以携带3bit的信息

CTF学习资源,运维

检测工具:stegsolve.jar
CTF学习资源,运维

检测方法:将Red、Green、Blue三个位置的有多余信息的通道(这里是0通道)勾选并导出保存为png格式的文件
CTF学习资源,运维CTF学习资源,运维

六、压缩文件分析

1.伪加密

操作方法:使用winhex打开压缩文件,找到伪加密文件头开始第9第10个字符,将其修改为0000
a、Winhex搜索504b0102,可以看到每个加密文件的文件头字段
b、从50开始计算,第9和第10个字符改成0000,表示未加密
CTF学习资源,运维

2.暴力破解

可以使用archpr暴力破解加密rar
CTF学习资源,运维

攻击类型选择掩码可以进行复杂的爆破,比如知道密码前3位是abc后三位为数字,则可以在攻击类型选择掩码,掩码处输入abc???,暴力范围选择所有数字

七、流量包文件分析

1.Wireshark过滤器

常用的过滤命令

1)过滤IP

如源IP或目标X.X.X.X
Ip.src eq x.x.x.x or ip.dst eg x.x.x.x
或者ipaddr eq x.x.x.x

2)过滤端口

tcp.port eq 80 or udp.port eq 80
tcp.dstport80
tcp.srcport
80
tcp.port>=1 and tcp.port <=80

3)过滤协议

tcp/udp/arp/icmp/http/ftp/dns/ip…

4)过滤MAC

eth.dst==A0:00:00:04:c5:84

5)包长度过滤

udp.length26
tcp.len>=7
ip.len
94
fame.len==119

6)http模式过滤

http.request.method==”GET”
http.request.method==”POST”
http.request.uri==”/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”
http.request.method==”GET” && http contain “User-Agent:”
http contains “flag”
http contains “key”
tcp contains “flag”

八、SQL挑战

http://redtiger.labs.overthewire.org/

1.Level 1

CTF学习资源,运维文章来源地址https://www.toymoban.com/news/detail-690661.html

到了这里,关于CTF学习资源的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【学习资源】终身机器学习之增量学习

    从机器学习存在的问题谈起,介绍增量学习可以解决怎样的问题,增量学习的类别,实现增量学习的方法,增量学习的评价指标和常用数据集,类别增量学习典型方法和代码库以及参考资源,希望能帮助大家用增量学习提高图像分类、对象检测、语义分割、行为识别、对象重

    2023年04月27日
    浏览(40)
  • AIOPS学习资源

    2024年02月06日
    浏览(35)
  • 【CXL】学习资源整理

    🔥 点击查看精选 PCIe 系列文章 🔥 🔥 点击进入【芯片设计验证】社区,查看更多精彩内容 🔥 📢  声明 : 作者主页:【MangoPapa的CSDN主页】。 本文首发于CSDN,转载或引用请注明出处【https://mangopapa.blog.csdn.net/article/details/131338871】。 本文目的为 个人学习记录 及 知识分享

    2024年02月10日
    浏览(38)
  • python学习资源及路线

    python 代码调试软件 Python各类图像库的图片读写方式总结 Python学习手册 笔记 python_tutorials 教程 较全 待整合 python实现的全部算法 教程 以撸代码的形式学习Python 鱼C 零基础入门学习Python 鱼C 《极客首选之Python》 Python抓取股票信息 关于Python的面试题 Python语言特性 操作系统 数

    2024年02月12日
    浏览(39)
  • 学习笔记——SPARTAN 6 系列IO资源学习笔记

    学习笔记——SPARTAN 6 系列IO资源学习笔记 参考:《Spartan-6 FPGA SelectIO Resources》User Guide 所有Spartan-6 fpga都具有可配置的高性能SelectIO驱动器和接收器,支持各种标准接口。每个IOB都包含输入、输出和3态SelectIO驱动程序。这些驱动程序可以配置为各种I/O标准。 •单端I/O标准(LVC

    2024年02月03日
    浏览(68)
  • 机器学习 深度学习资料 资源machine learning

    Kaggle入门,看这一篇就够了 - 知乎 (zhihu.com) https://zhuanlan.zhihu.com/p/25686876 day1-1.什么是机器学习_哔哩哔哩_bilibili day1-1.什么是机器学习是10天学会机器学习从入门到深度学习的第1集视频,该合集共计62集,视频收藏或关注UP主,及时了解更多相关视频内容。 https://www.bilibili.com

    2024年02月21日
    浏览(54)
  • 控制台架构体系学习资源

    微软 微软官方教程:欢迎查看 Windows 控制台文档!

    2024年01月19日
    浏览(44)
  • Unity入门学习——资源导入

    Window - Asset Store- Search Online - 找到合适的资源 - 添加到我的资源 导入资源商店资源 Window - Pack Manager - My Asset - download - Import 导入桌面文件 选择资源直接拖动到Asset目录下

    2024年02月11日
    浏览(39)
  • [静态资源]学习笔记

    Tps:有免费的对象存储和cdn额度 用来存放项目的静态资源(如音频,视频,安装包,其他文件等),网站加速也行 用邮箱注册账号 实名认证 新建对象存储 存放文件资源 新建CDN CDN的域名管理-新建域名,绑定你的域名(我用的是申请的公司的二级域名) 等待申请通过 在新建的对象存储上

    2023年04月17日
    浏览(43)
  • 用户资源(菜单)控制学习使用

    效果图 第一步 需要再定义常量资源 第二部组装数据 第三步 定义接口 返回值模型 请求参数 返回值 效果图 将用户与资源关联 实体模型 数据库表数据 系统显示用户拥有的菜单 定义接口 Service服务+数据组装 返回值 效果图 请看最上面

    2024年01月24日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包