概念
1、会话层:在应用程序和应用程序之间建立、维持一个连接 A B
2、表示层:把上层不同格式、不同类型、不同属性的应用数据,转换成标准的数据格式
3、应用层:利用应用层的协议,产生不同的应用层数据
程序和协议是有区别的(程序是代码,程序是功能的集合,底层调用协议)
偏向于软件开发
应用层的典型服务模式
- 1、C/S client-server 完成执行计算任务的主要是在客户端完成的,服务端负责响应数据
- 2、 B/S browser-server 实际上就是一种C/S的变形,好处就是免去本地部署客户端,可以直接依托浏览器开展通信
- 3、 P-2-P 对等服务体 P-2-P下载(迅雷)
- 4、 HTTP(超文本传输协议):存放在不同主机中的数据,如何按照既定的规则和样式展现出来
- a) HTML(不是编程语言):用来规定,主机中的数据如何按照既定的框架显示
- b) CSS:规定,网页框架中,具体的内容外观,样式
- c) JavaScript:规定的是网页中,内容的展示表示方式
- a) 如何准确的给这些资源进行定位?
URI和URL 就好比是电脑中资源的具体地址 URI包含URL,URL是URI具体实现形式 - b) 具体用什么方法来实现?
- 请求报文:请求特定的资源
请求行:体现的是方法 GET 请求服务器返回响应的资源
POST 请求服务器提交响应的资源
请求头:体现的是客户端环境,验证
请求体:请求的内容 - 响应报文: 回应
响应行:体现的是状态 状态码200、404、302
响应头:体现的是服务器的环境信息
请求体:响应的具体内容
- 请求报文:请求特定的资源
HTTP特点
- 1、 无状态:不保存客户端的登陆状态
cookies 缓存文件存放在本地,本地存放的是状态信息,服务器生成状态信息 - 2、 无连接:不是没有连接,而是每一次请求都需要重新建立一个连接,会极大增加客户端服务端的处理开销,一次连接,多次请求,长连接
HTTP的管线化 - 3、 基于请求和响应
- 4、 简单快速灵活
- 5、 通信使用明文,没有验证,数据容易被窃取,容易被泄露
HTTP安全风险
- 1、 slowloris 以极低的速率向服务器发送请求,以恶意构造的不完整请求向服务器发送,造成拒绝服务
- 2、 HTTP header头部攻击(超长cookies文件发起)
- 3、 CC攻击
- 4、 HTTP 信息收集
- 5、 cookies劫持
- a) 首先保证虚拟机中的kali系统能够和外部网络通信
查看设置----虚拟网络编辑器----桥接无线网卡-------虚拟机有线设置DHCP - b) ifconfig命令查看IP------ping测试
- c) vim /etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib - d) dpkg --add-architecture i386 && apt-get update && apt-get install ferret-sidejack:i386
- e) Zenmap扫描存活的主机
应用程序—信息收集–zenmap 可选 - f) 用户的登录信息cookies
- g) echo 1 > /proc/sys/net/ipv4/ip_forward 开启kali路由转发功能
- h) arpspoof -i eth0 -t 网关 目标主机 中间人攻击
- i) wireshark保存窃取的流量为.pacp文件
在目标主机上登录相对应的网站,尽量选择安全性较低的,登录要留存过程 - j) ferret -r 处理流量,生成cookies文件hamster.text
- k) 启动hamster
- l) 打开浏览器选项中设置代理为127.0.0.1::1234
- m) 地址栏输入127.0.0.1:1234
- n) hamaster 找到目标IP ,登录目标用户的网站
只能有一个网络连接
抓包的时候,抓取的时间,尽量长
目标网站 百度
- a) 首先保证虚拟机中的kali系统能够和外部网络通信
单通道协议
http(80)、SMTP、telnet(53)、DNS(53)
多通道协议
FTP(20、21)21端口建立,三次握手;20建立数据通道(主动、被动)
DNS协议
- 1. 为什么要用域名?
- IP地址计算机的地址,地址对人来说不友好,简单,通俗易懂的地址名字,来去区分不同的站点
- 2. 要解决哪些问题?
- 首先要把起名字这件事进行统一规范,设立域名空间,依据树形结构展开
- a) 根:表示所有域名的总和
- b) 顶级:地区域(区分不同的地区)行业域(区分不同的组织团体).com.gov.edu
- c) 权限(权威)域:具体的解释一个域名baidu、sina、tencent
- 3. 名字谁来翻译?
- a) 根DNS服务器:指明对应的顶级域在哪,IPv4(13、10US、1UK、1SE、1JP)
假设外国把DNS服务中断,是否还能上网?能,不受影响,国内有备份 - b) 顶级域名服务器:指明权限域在哪里.cn.com
- c) 权限域名服务器:具体指明,一个域名的地址
- d) 本地域名服务器::翻译自己内部网络定义的域名地址;把互联网上域名翻译的请求转发给根域名服务器
- a) 根DNS服务器:指明对应的顶级域在哪,IPv4(13、10US、1UK、1SE、1JP)
- 4. 具体的方法?
- 请求:查询报文
- 响应:回应报文
- a) A www.tjise.com
- i. 主机自己先查询浏览器中的DNS解析缓存 否
- ii. 查询本地的hosts文件 否
- iii. 查询本地的域名服务器
- 1、本地域名服务器先看自己有没有对应的缓存 否
- 2、向前转发,根据要请求的域名,把请求交给域名服务器
- 3、园区网和小型局域网下,本地域名服务器部署在园区网的服务器区
- 4、在家庭网络中,本地域名服务器,通常指的是运营商面向用户的DNS
- iv. 根域名服务器处理
请求指向对应的顶级域名服务器 结果返回给本地 - v. 权限域名服务器
请求翻译具体的IP地址,结果返回给本地 - vi. 本地域名服务器
把具体的结果返回给主机
把域名地址缓存下来 - vii. 主机
- b) 主机到本地域名服务器 递归查询
- c) 本地域名服务器到根,到顶级,到权限 迭代查询
DNS特性特点
- a) NS:指向的是域名服务器
- b) A:正向解析 域名—IP
- c) PRT:反向解析 IP—域名 验证服务器身份
- d) CNAME:域名的别名
浏览器中输入www.tjise.com到返回页面的过程
- 1. 解析域名
- 2. 拿到地址
- 3. 传输层三次握手建立连接
- 4. 请求
- 5. 响应
- 6. 断开连接四次挥手
- 7. 浏览器解析HTML
- 8. 浏览器渲染页面