快手 网络安全工程师 二面总结(归档,凉经)

1. TCP和UDP的区别

都是传输层通信协议:

TCP(Transmission Control Protocol) 传输控制协议

面向连接的,可靠的,数据格式是基于字节流的

面向连接

TCP三次握手的过程如下:

  • 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
  • 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
  • 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。

四次挥手

1) 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。

可靠的—流量控制,拥塞控制

重传策略
窗口确认
配置TCP—修改建立TCP连接的超时时间

UDP(User Data Protocol) 用户数据包协议

无连接,不可靠的;面向报文;结构简单----网络开销小,传输速度快;

总结:
在这里插入图片描述

对可靠性要求高的通信系统往往使用 TCP 传输数据。比如 HTTP 运用 TCP 进行数据的传输;文件传输,邮件传输,远程登录等。
对实时性和效率有要求的话往往使用UDP传输数据,比如qq聊天,在线视频,网络语音通话和DNS协议。
注意:
DNS协议也会用到TCP协议,以下两个场景会用到

当传输字节的长度大于512字节时,使用TCP----UDP报文的最大长度为512字节
当区域传输时,使用TCP

辅助域名服务器会定时(一般是3个小时)向主域名服务器进行查询以便了解数据是否有变动,如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数据量要多得多。其次可靠的连接,也保证数据的准确性。

UDP 发送的报文长度是应用进程给出的

TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节

TCP字节流和UDP数据报区别
两者的区别在于TCP接收的是一堆数据,TCP有一个缓冲(窗口),数据块太长,TCP就可以把它分片(IP协议中DF和MF字段)再传输,而UDP发的是数据报,报文长度是应用进程给出的,一次发送整个数据包,因为无连接和无序。

总结:

安全性:UDP漏洞少,TCP漏洞多
传输速度:TCP慢,UDP快,TCP三次握手,四次挥手,流量控制和拥塞控制
连接对象数量:TCP一对一,UDP多对多。

2. TCP的三次握手和四次挥手

3. OSI的七层模型

应用层----为用户提供接口
表示层----数据传输格式:翻译,加密和压缩数据
会话层----建立,管理和终止会话
传输层-----报文段的端到端的传输
网络层------路由选择,分组传输
数据链路层-----透明传输,物理寻址,提供数据帧从节点到节点的传输
物理层-----通过接口以二进制的数据格式在物理媒体上传输数据

4. 一般的网络攻击出现在哪些层

ARP欺骗----数据链链路层
网络嗅探;阻止目标的数据包通过网关

IP欺骗—无认证协议—网络层
ICMP–ping–DDOS攻击—网络层—利用”回送(echo)请求和回答“报文进行网络扫描或拒绝服务攻击

TCP–SYN包–DDOS攻击/网络扫描—传输层
一台主机或服务器所允许建立的TCP连接数是有限的,因此,攻击者常常用TCP全连接(完成三次握手过程)或半连接(只完成二次握手过程)来对目标发起拒绝服务攻击,如SYN Flood攻击和TCP连接耗尽型攻击等。

网络扫描,攻击者可以利用TCP连接请求来进行端口扫描,从而获得主机上的网络服务状态,进一步发起有针对性的攻击。
UDP协议–风暴型拒绝服务器攻击—传输层
DNS—DNS欺骗----应用层
HTTP—明文传输—应用层

5. 常见的端口扫描技术

TCP扫描—TCP全连接扫描,TCP-SYN包,TCP FIN扫描
FIN=1,端口监听,不回应;端口关闭,回复RST标志位设置为1的报文复位连接
TCP NULL 扫描,TCP Xmas扫描
NULL,发送的扫描报文中所有标志为0;
Xmas,FIN,URG和PUSH标志被设置为1。
URG —紧急位,紧急数据
PSH–推送位,急迫位,
FIN—终止位,释放一个连接
FIP扫描
UDP扫描
关闭,发送错误信息,ICMP_PORT_UNRACH;监听,无响应

ICMP分为差错报告报文和询问报文

ping 命令使用 ICMP 回送请求和应答报文–询问报文

路由分析诊断程序 tracert 使用了 ICMP时间超过报文–差错报告报文

6. SSRF漏洞

形成原理
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞
服务端提供了从其他服务器获取数据功能并且没有对目标地址做过滤和限制才造成的

php下面函数的使用不当可能会导致SSRF

curl()
file_get_contents()
fsockopen()

从指定URL获取网页加载图片下载

哪些功能点可能存在SSRF–访问第三方,返回页面内容

危害

  • 端口扫描–http,https,dict
  • 攻击内网或本地存在漏洞的服务–Gopher协议攻击内网FTP,telnet,redis,也可以进行GET,POST请求。
  • 对内网Web应用进行指纹识别及攻击其中存在漏洞的应用–独特的文件和目录—识别应用类型和版本
  • 文件读取–file
  • 命令执行–expect

SSRF支持哪些协议

HTTP—访问端口
file—文件读取
except—命令执行
Gopher—get,post请求

修复方法

  • 限制请求特定域名
  • 禁止请求内网IP
  • 禁止协议
  • 对返回内容进行识别
    绕过
  • P地址,八进制,十进制,十六进制,和IP地址省略
  • 配置域名
  • 通过@绕过正则—http://example.com@evil.com

SSRF验证方式和常见地方

  • 通过抓包分析发送的请求是否是由服务器的发送来判断
  • 在页面源码中查找访问的资源地址,如果资源地址类型存在第三方地址就可能存在 http://www.xxx.com/a.php?image=(地址)

常见的功能点

  • 分享:通过URL地址分享网页内容
  • 转码服务
  • 在线翻译(通过URL地址翻译对应文本的内容。)
  • 图片加载与下载:通过URL地址加载或下载图片
  • 图片、文章收藏功能
  • 未公开的api实现以及其他调用URL的功能
  • 从URL关键字中寻找–url,source,link,src,share

CSRF

形成原理
CSRF是服务器端没有对用户提交的数据进行严格的把控,导致攻击者可以利用用户的Cookie信息伪造用户请求发送至服务器。

CSRF 利用的是网站对用户网页浏览器的信任。
欺骗用户浏览器,让其以用户的名义运行操作。
web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

必备条件:
一个浏览器,两个网站

登录受信任网站A,并在本地生成Cookie。
在不登出A的情况下,访问危险网站B。
危险网站B向登录受信任网站A发送请求

修复方法–referer,token,验证码

校验referer—服务器
referer:标明请求来源于哪个地址,同源策略:域名,协议,端口号

请求地址中增加token验证—服务器
token和cookie存储在客户端,token是一个伪随机数
服务器在接受操作请求的时候,只要验证token是不是上传访问留下的即可判断是不是可信请求,
因为如果没有访问上一个页面,是无法得到这个token,除非结合XSS漏洞或者其他手段能获得通信数据。
由于CSRF的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在cookie中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行CSRF攻击
正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过CSRF传来的欺骗性攻击中,攻击者无从事先得知这个伪随机数的值,服务端就会因为校验token的值为空或者错误,拒绝这个可疑请求。

在 HTTP 头中自定义属性并验证–jwt
增加验证码—客户端
二次验证,用户体验不好,一般用在敏感操作的页面,比如登录页面

XSS漏洞

注入型漏洞

输入变量可控,输入变量代码可执行
XSS插入HTML代码中
分类:反射,存储,dom

存储型XSS:你发送一次带XSS代码的请求,以后这个页面的返回包里都会有XSS代码;—持久性
反射型XSS:你发送一次带XSS代码的请求,只能在当前返回的数据包中发现XSS代码;----非持久性
DOM型XSS:你发送一次带XSS代码的请求,在返回包里压根儿就找不到XSS代码的影子;----DOM XSS 是由于浏览器解析机制导致的漏洞,服务器不参与,而存储型与反射型都需要服务器响应参与

危害
cookei;蠕虫,钓鱼
和CSRF结合,存储型更容易触发蠕虫
防御:输入过滤,输出转义。

手撕代码

#关键点,输入获取,风格,split("."),zip()同时比较
if __name__ == '__main__':
    ver = input().split(' ')
    #print(ver)
    vera = ver[0].split('.')
    verb = ver[1].split('.')
    #print(vera,verb)
    # min(len(vera),len(verb))
    # max(len(vera), len(verb))
    temp=abs(len(vera)-len(verb))
    if len(vera)>len(verb):
        for i in range(0,temp):
            verb.append(0)
    if len(vera)<len(verb):
        for i in range(0,temp):
            vera.append(0)

    flag = 0
    for va, vb in zip(vera,verb):
        if int(va) > int(vb):
            flag = 1
            break
        elif int(va) < int(vb):
            flag = -1
            break

    if flag == 1:
        print('1')
    elif flag == -1:
        print('-1')
    else:
        print('0')

# 1.0 1.0.0
#0
#0.1 1.1
#-1
#1.0.1 1
#1
#7.5.2.4 7.5.3
#-1

信息收集的获取原理
whois,端口扫描,IP,域名,子域名,操作系统,

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值