从零学习CTF
本人大一小白一枚,对信息安全颇感兴趣,就将我的学习作为博客。若我日后成为大佬,我的博客是不是也会对以后的小白有所帮助呢,想想都有点小激动,哈哈哈哈。
我是分界线
首先
-
什么是CTF
CTF(夺旗赛)简介:
CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。 -
竞赛模式
解题模式
攻防模式(Attack-Defense)
混合模式(mix) -
题目类别
WEB(网络安全)
MISC(安全杂项)
Crypto(密码学)
Reverse(逆向工程)
PPC(编程类题目)
PWN(二进制安全) -
Burpsuit:
• BurpSuite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。
•所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。
•可以用于抓包,改包,数据爆破等多种功能
Burpsuit安装可见我一个学姐的博客 -
浏览器配置
火狐浏览器 选项–>>网络设置
就可以抓包了。 -
http协议
-
•什么是 HTTP?
•超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。
•HTTP 的工作方式是客户机与服务器之间的请求-应答协议。
•web
浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。
•举例:客户端(浏览器)向服务器提交
HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。
两种 HTTP 请求方法:GET和 POST
•在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和
POST。
•GET - 从指定的资源请求数据。
•POST - 向指定的资源提交要被处理的数据
请求报文,响应报文
- CTF中常见的编码和加密
1.ASCII编码
•ASCII编码大致可以分作三部分组成:
•第一部分是:ASCII非打印控制字符(参详ASCII码表中0-31);
•第二部分是:ASCII打印字符,也就是CTF中常用到的转换;
•第三部分是:扩展ASCII打印字符
Base64/32/16编码
•base64、base32、base16可以分别编码转化8位字节为6位、5位、4位。16,32,64分别表示用多少个字符来编码,这里我注重介绍base64。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的email,email via MIME,在XML中存储复杂数据。
•i love CTF
•aSBsb3ZlIENURg==
•重要特征,大部分base64后面有1-2个等号
原因:
• Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。
如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’。
URL编码
•url编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。
现在已经成为一种规范了,基本所有程序语言都有这种编码,
•编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如
空格字符,ascii码是32,对应16进制是’20’,那么urlencode编码结果是:%20。
•源文本:
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
MD5
•Message
Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护
•结果都是一个定长:16 、32、64。
•MD5
(“message digest”) = f96b697d7cb7938d525a2f31aaf161d0
等等