渗透测试面试准备

网络协议

TCP协议

  1. TCP 协议是一个面向连接,可靠的,字节流服务的协议

  2. TCP连接的两端:套接字、插口、端口。(不同叫法)形式:{IP+端口号}

  3. 格式
    渗透测试面试准备_第1张图片

  4. 三次握手
    假设两端为A和B;
    第一次握手:A给B发送syn=1;seq=x(x随机生成)
    第二次握手:B给A发送seq=y;ack=x+1
    第三次握手:A给B发送ACK=y+1
    三次握手是建立安全连接的最少次数,如果A和B第一次握手,B给A回复了但是因为网络问题,导致A迟迟没有收到B的答复,那么A将再次发送syn请求建立连接,而此时B的回复恰好到来,并且B等待A继续发送数据;但是此时A已经开始了新的连接,不会理睬B发来的回复,这导致B又要再次等待A发数据,客户端等待服务端发回复。

  5. 四次挥手
    渗透测试面试准备_第2张图片

第一次挥手:客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。
第二次挥手:服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。
客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。
第三次挥手:.服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
四次挥手:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

  1. 等待两个MSL
    确保第四次挥手的ACK报文可以到达服务器。
  2. SYN泛洪
    原理:三次握手中发送的数据包的源IP是虚假的,导致服务器的回复报文无法到达,进而使服务器在关闭此次连接前处于等待状态,如果发送成千上万的此类数据包给服务器,那么服务器将会资源耗尽。
  3. 滑动窗口
  4. 拥塞控制:慢开始、拥塞避免、快重传、快恢复

UDP协议

  1. 是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。

OWASP TOP10原理和防御

注入

XSS(本质还是注入)

同源策略(两个网页具有相同的URI、主机名、端口号)
反射型XSS

如页面中存在如下代码

 echo "

hello,$_GET['user']

"
; ?>

访问时,将user参数向如下设置

xxxxxx/?user=</p><script>alert("hack")</script><p>

那么构造的恶意代码就回被解析执行。
漏洞成因:用户可控输入,输入的参数未被严格过滤,输入的内容拼接到web要执行的代码中。
攻击流程:
渗透测试面试准备_第3张图片

存储型XSS

常发生在留言板、聊天室等,攻击者只需要提交恶意XSS,恶意XSS被存储存在服务器,导致用户和管理员访问资源时执行了恶意代码。

CSRF

  1. 验证Toke
  2. 使用验证码
  3. 检测Http referer

攻具使用

sqlmap使用

Burpsuite使用

代理抓包
重放(repeter)
Intruder(暴力破解)

DDOS攻击原理

权限提升

常见中间件漏洞

IIS6.0解析漏洞

文件名解析漏洞

IIS6.0读取文件是从左向右的,当读取到“;”的时进行内存截断。例如“test.asp;.jpg”实际读取的就是“test.asp”。

目录名解析漏洞

IIS6.0网站下建立文件夹名字为".asp"、".asa"结尾的文件夹,其目录下的任何扩展名的文件都被IIS当成asp来执行。

Struts2框架漏洞

Structs是java开发的一种web框架,存在很多能直接系统命令的漏洞。
Struct2框架在处理用户发送的请求时,通过geeter/setter方法来处理请求中的参数,会把每个参数申明称ONGL对象。而在ONGL表达式中有一个构造map的功能,构造map对象这个功能支持action/redirect、redirectAction等动作,这些动作中包含的对象允许用户调用java.lang.Runtime.getRuntime()去执行系统命令。

Tomcat控制台暴露漏洞

Tomcat默认安装后作为一个系统服务运行。当Tomcat以系统管理员身份或作为系统服务运行时,java取得了系统用户或系统管理员的全部权限。而且Tomcat管理的默认的账户和密码为tomcat.攻击者可以利用默认口令获取后台管理权限,通过部署war包将木马写入到服务器上,进一步控制服务器权限的目的。

Weblogic JAVA反序列化漏洞

java序列化和反序列化:在网络上传输数据时,数据会转成二进制序列。因此当两个Java进程通信时要先将数据进行序列化,转化成二进制字节序列,大概接收到数据时,将字节序列进行反序列化,回复java对象。
反序列化漏洞原理:java中进行反序列化的是common-collections.jar,这个jar文件并未对二进制文件进行过滤而是直接反序列化,因此当攻击者将包含恶意代码的二进制字节流发至服务器,服务器将其反序列化导致恶意代码执行。

JBoss java反序列化漏洞

危害:攻击者可利用该漏洞在服务器端执行系统命令,并可写入木马控制服务器。

心脏滴血漏洞

OpenSSL中存在一个心跳机制,客户端用户通过向服务器发送心跳包来维持TLS连接,但是在代码中没有做边界检测,导致攻击者课构造恶意心跳包来获取服务端内存中的数据。(每次获得的数据量在16KB—64KB)

补充

什么是CC攻击

CC攻击是DDOS的一种,CC攻击很难见到真实的源IP,而且见不到特别大的异常流量。CC攻击原理是控制大量的主机,不停地向服务器发送大量数据包耗尽服务器资源,知道宕机崩溃。

Web服务器被入侵后,怎样排查
  1. 查看日志
  2. 检查端口,查看是否有异常端口开放
  3. 使用安全够等安全软件进行清扫
0Day漏洞

信安中指那些在官方发布安全补丁之前已被了解和掌握的漏洞信息。

蜜罐技术

蜜罐技术本质上是对攻击方进行欺骗的技术。通过布置一些诱饵服务器或其他网络资源诱使攻击来来攻击,从而对攻击者的攻击方式、攻击工具、所利用的漏洞和攻击意图进行分析。进而使自己了解自己所面对的网络安全风险,提高真实系统的防御能力。

HTTP和HTTPS

HTTPS = http + SSL/TSL(传输层安全性协议)

作用:

  1. 身份认证(CA证书)
  2. SSL、TSL进行加密传输,保证信息安全
    区别:
    http-----80端口
    https-----443端口
    https在http的基础上保证了安全性。
震网病毒

一种蠕虫病毒,是第一个专门定向攻击真实世界中基础(能源)设施的“蠕虫” 病毒,比如核电站,水坝,国家电网。只要电脑操作员将被病毒感染的 U 盘插入 USB 接口,这种病毒就会在神不知鬼不觉的情况下(不会有任何其他操作要求或者提示出现)取得一些工业用电脑系统的控制权。

与传统的电脑病毒相比,“震网”病毒不会通过窃取个人隐私信息牟利。无需借助网络连接进行传播。这种病毒可以破坏世界各国的化工、发电和电力传输企业所使用的核心生产控制电脑软件,并且代替其对工厂其他电脑“发号施令”。极具毒性和破坏力。“震网”代码非常精密,主要有两个功能,一是使伊朗的离心机运行失控,二是掩盖发生故障的情况,“谎报军情”,以“正常运转”记录回传给管理部门,造成决策的误判。

你可能感兴趣的:(安全,安全)