0 录制文件
1 CTF简介
1.1 flag格式
一种方式无法提交,就试试换一种格式看看能不能提交,加上flag和中括号
总位数一般是32位
1.2 竞赛模式
攻防是分轮次的进行
每台机器都是一样的,有相同的漏洞和风险点
每个队伍的靶机该轮次只能获取一次flag进行提交加分
下一个轮次依然可以尝试先用相同漏洞去攻击,对方可能没有找到被攻击的漏洞风险点,没有进行修复加固
防守阶段:修复漏洞,做安全加固
攻击阶段:互相攻击,利用防守阶段搜集到的信息。挖掘漏洞风险点,得到对方这一轮次的flag。
攻击成功会加分,被攻击成功就会扣分
1.3 竞赛内容
1.4 常用工具
pwn需要预装python,java环境
crypto网站:
misc:需要先预装winhex,wireshark,binwalkStegSolve
.jar文件运行方式
密码学和杂项的工具先准备好。
2 CTF密码学
2.1 密码编码学
2.1.1 摩斯密码
由两种状态的符号,以及分隔符组成
只有三种状态的字符,可以考虑是不是摩斯密码,0-.,1--,2,- 。然后再找工具解码
2.1.2 ASCII编码
特征:纯数字,数字范围不超过127
Dec--十进制--ASCII编码(0-127)
Hx--十六进制--Hex编码(0-9,A-F)
Oct--八进制(0-7)
Binary--二进制(01)
Chr--字符
本地工具converter,进制转换工具
2.1.3 HEX编码
2.1.4 URL编码
特征:%开头
有些字符集支持中文,有些不支持
2.1.5 Base系列编码
Base16就对应16进制
Base32编码字符不够的时候需要自己补位
某个组不够就补上0
整组都没有就补成=
区别:
16:一堆数字0-9之间夹杂几个大写字母A-F
32:大写字母A-Z之间偶尔穿插数字2-7
64:有大写,有小写,有等号
2.1.6 Ook编码
2.1.7 Brainfuck编码
2.1.8 Unicode编码
与ASCII编码类似(数字提取出来就是)
2.2 古典密码学
2.2.1 凯撒密码
替换密码
特征:位置正确,字符不正确
差异就在于不一样的k值
这样提交还不正确,就加上四个-,8-4-12-12
本地自动遍历工具CTFcrack:
密码格式大全
2.2.2 栅栏密码
置换密码
特征:字符正确,位置不正确
2.2.3 当铺密码
替换数字的替换密码
2.2.4 培根密码
密文信息只带两种字体或符号或状态
密文长度是5的倍数
也可能a代表大写,b代表小写
最后查出来的结果应该是4种情况
每种方式两种情况
四种情况都解不出来,那就不是培根密码,是二进制代码
2.2.5 猪圈密码
图形化的替代密码
3 现代密码学
3.1 分组密码
3.2 RSA公钥算法
大素数非常大,一般是几十上百位那么大
所以只能用python算法
导入python库,Crypto,gmpy2
python要3.7-3.10
需要掌握的值:p,q 大素数,n =p*q,e=65537/0x10001,m 明文,c 密文,d 逆元
3.3 哈希算法
两个解题思路
1.题目里给了完整的md5和hash值,可以通过一些在线网站查询
2.题目里不完整,比如是这样的:
只能自己编写脚本