目录
一般在学习工作时最好使用firefox浏览器,它被称为“渗透测试专用浏览器”,因为它支持的插件较多。前期要安装JAVA,burp,python环境,搭建网站基础服务,搭建靶场,最后配置火狐浏览器的插件,如Hackbar等。它官方的使用方法是按F12即可,但笔记本的话,要按Fn加F12,Hackbar才会调用起来
CTF(Capture The Flag)中文一般译作夺旗赛,在 网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式
CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯”
一般有解题,攻防,混合三种模式
HTTP的基础知识
HTTP协议
http协议属于应用层协议,当你在浏览器进行访问操作时,就会触发http协议
在渗透层面来说,web一般都用http和https这两种协议
客户端发送(request)请求到服务端,服务端回复一个响应 (response),它们之间传递的是数据包会涉及HTTP请求头,使用burp分析
如当前你在浏览器中搜索你想要的数据,会在网站内部进行处理,然后把结果返回至客户端,本质来说,网站返回的是代码,网页则是由浏览器渲染出来的
OSI七层模型
应用层 | 为应用程序提供服务,包括文件传输(FTP),远程登录(Telnet),超文本传输(HTTP),电子邮件(SMTP),简单电子邮件传输(SMTP)等协议 |
表示层 | 数据格式转化,数据加密,确保一个系统应用层的信息可以被另一个系统的应用层读懂,照片编码(JPEG),音视频压缩协议(MPEG),通信(ASI)协议等 |
会话层 | 建立,管理和维护会话,主要在系统间发起会话或接受会话,有数据库网络配置(SQL),远程过程调用(RPC),SMTP协议,DNS协议等 |
传输层 | 定义了一些传输数据的协议和端口号,主要是将下层接收的数据进行分段和传输,到达目的地之后再重组,使用传输控制(TCP),用户数据(UDP)协议等 |
网络层 (IP地址) | 主要功能是通过ARP协议将网络地址翻译成物理地址(MAC地址),并决定如何将数据从发送方的路由传到接收方 |
数据链路层 (MAC地址) | 主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送发路由传到接收方路由控制网络层和物理层的通信,主要功能是如何在不可靠的物理线路上进行数据的可靠传递 提供了介质访问和链路管理,如交换机,网桥 |
物理层 | 定义物理设备的标准的接口类型,光纤的接口类型,各种戒指的介质的传输速率,主要功能是利用传输介质为数据链路层提供物理连接,实现比特流的透明传输,如网线,网卡,中继器,集线器,网关 |
IPv4地址大概有25.68亿个地址,因分布不均,故国内发明了nat协议,可以通过该协议去上网
上网通过外网IP上网,别人访问你也是通过外网IP,局域网的IP不是在同一个局域网的话ping不通
在浏览器输入IP即可查看你当前的外网IP,在windows dos窗口会显示内网IP
网站是搭建在服务器上的,当访问一个网站的时候,可以输IP地址,通过DNS协议对应的域名也可以访问该网站,相比IP地址,域名显然更加友好
计算机之间的通信都是通过IP进行的,所以所有的域名最后都会转化为IP
IP选址及路由选择,如路由器,IP可通过ifconfig en0 在cmd进行查询,其中inet是无线网卡的IP,由四位八进制组成,有可能是10段,172段,192段的,这些都是内网IP(即局域网的IP)
外网IP是出口IP,即流量通过此IP流出,内网IP是在局域网内的IP地址
表示层和会话层主要负责数据封包和解包
访问网站的过程
- 应用层——在浏览器中输入域名(URL),经过DNS协议,将域名解析为IP,由于DNS服务器是基于UDP的,所以也会用到UDP协议。知道IP地址之后,浏览器就会构造一个请求报文,因此会用到HTTP协议,如果采用HTTPS协议,还将先对HTTP的数据进行加密,随后将报文传递给传输层
- 传输层——传输层会向服务端发起TCP连接,在建立连接之前会进行TCP三次握手。为了方便传输,会对数据进行分割(以报文段为单位),并标记编号,方便服务器接受时能够准确还原报文信息。所以在传输层用到了TCP协议
- 网络层——网络层将来自传输层的TCP报文段打包,并加入源及目标的IP地址,因此用到了IP协议,随后根据路由表一跳一跳的发送到目标地址,如果目标地址与源地址在同一个网段,则根据MAC地址发送,因此要用到ARP协议查询MAC地址
- 数据链路层——数据链路层将网络层传输的数据分成以“帧”为单位的数据包,因此用到了以太网协议,利用MAC地址及广播的形式进行数据帧的传递
- 物理层——透明地传送比特流
- 服务器接收请求,接收过程就是把上述步骤逆转过来,同时服务器返回HTTP响应报文
- 浏览器根据其请求到的资源,数据渲染画面,最终向用户呈现一个完整的页面
- 结束链接
访问网站的过程
🔖TCP协议和UDP协议的区别
TCP协议 | UDP协议 | |
握手与否 | 三次握手(建立连接) | 无握手(直接发送) |
传输模式 | 流模式 | 数据包模式 |
正确性 | 保证正确性 | 不保证正确性 |
数据顺序 | 保证顺序 | 不保证顺序 |
要求资源 | 较多 | 较少 |
TCP协议三次握手可靠但慢,QQ,微信使用的UDP协议,因为UDP更快,但UDP只是负责传输,在收到信息的那一刻原样转发,网络拥堵后不会进行流量控制,丢包也不会重发,乱序也不会去纠正,如果需要这些细节,只能交给UDO应用程序去处理
URL(统一资源定位符)
也可称为网址,也会出现 &用于分割参数,网站下的所有网页都是名下资源,一般打网站时,要去搜集网站名字资源,寻找突破口