网络安全面试基础知识点梳理
DDos 攻击
分布式拒绝服务,分布式拒绝服务攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动 DDoS 攻击,从而成倍地提高拒绝服务攻击的威力。
什么是 XSS 攻击
跨站脚本攻击 在网页中嵌入客户端恶意脚本,常用 s 语言,也会用其他脚本语言
属于客户端攻击,受害者是用户,网站管理员也属于用户,攻击者一般也是靠 管理员身份 作为跳板
什么是 CSRF 攻击
程序在开发的时候,未对相关页面进行 token 和 REFERER 判断,造成攻击者可构造自己的 URL 地址欺骗目标用户进行点击
什么是文件上传漏洞
任意文件上传漏洞是指由于程序员在对 用户文件上传部分 的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的 动态脚本文件
什么是 SQL 注入攻击
前端代码未被解析被代入到数据库导致数据库报错
重要协议分布图

arp 协议的工作原理
地址解析协议 在任何时候,一台主机有 IP 数据报文发送给另一台主机,它都要知道接收方的逻辑(IP)地址。但是 IP 地址必须 封装成帧 才能通过物理网络。这就意味着发送方必须有接收方的 物理(MAC)地址,因此需要完成逻辑地址到物理地址的映射。而 ARP 协议可以接收来自 IP 协议的逻辑地址,将其映射为相应的物理地址,然后把物理地址递交给 数据链路层。
什么是 RARP?工作原理
在计算机网络中,每个设备都有一个 唯一的物理地址(MAC地址),用于在本地网络上标识设备。然而,要在网络上进行通信,每个设备还需要有一个唯一的 IP 地址。通常,IP 地址是手动配置的,但在某些情况下,可能需要 自动分配IP地址。这时,就需要使用 RARP 协议。
1、当一个设备 启动 时,它会向网络上发送一个 RARP请求,请求获取自己的 IP 地址。
2、RARP 服务器收到请求后,会查找设备的 MAC 地址,并将其对应的 IP地址 返回给设备。
3、设备收到 IP 地址后,可以开始在网络上进行通信。
需要注意的是,RARP 协议只适用于 局域网内部,因为它需要在 同一物理网络 上的所有设备之间进行通信。在较大的网络中,通常会使用 DHCP 协议来自动分配 IP 地址。
DNS 是什么? DNS 的工作原理
DNS 域名解析系统 是一种将域名映射到 IP 地址的分布式命名系统。DNS 的主要作用是将用户友好的域名转换为计算机可以理解的 IP 地址,以便将用户的请求路由到正确的服务器。
DNS 的工作原理:
1、用户在浏览器中输入一个域名,例如 www.example.com。
2、操作系统向本地 DNS 服务器发送一个 DNS 查询请求,询问域名 www.example.com 的 IP 地址。(本地查询)
3、如果本地 DNS 服务器具有存储在其缓存中的 www.example.com 的 IP 地址,它将返回该 IP 地址。(有则返回)
4、如果本地 DNS 服务器不知道 www.example.com 的 IP 地址,它将向根 DNS 服务器发出查询请求。(没有查根)
5、根 DNS 服务器将指导本地 DNS 服务器转到负责.com 域的顶级 DNS 服务器。(根指导查询)
6、本地 DNS 服务器将向.com 顶级 DNS 服务器发出查询请求,请求 www.example.com 的 IP 地址。(查询顶级)
7、.com 顶级 DNS 服务器将指导本地 DNS 服务器转到负责 example.com 的权威 DNS 服务器。(顶级指导查询)
8、本地 DNS 服务器将向 example.com 的权威 DNS 服务器发出查询请求,请求 www.example.com 的 IP 地址。(查询权威)
9、权威 DNS 服务器将返回 www.example.com 的 IP 地址,本地 DNS 服务器将缓存该结果并将其返回给操作系统。(权威发回地址)
10、操作系统将使用 IP 地址来连接到 www.example.com 的服务器,以获取所需的网页或其他资源。
RIP 协议是什么? RIP 的工作原理
RIP 是一种 基于 距离向量 的路由协议,用于在局域网或广域网中交换路由信息,并计算出 最佳的路由路径。RIP 是一种较为简单的路由协议,常用于小型网络环境。
RIP 协议的工作原理:
1、RIP 协议将整个网络分成若干个网络段,每个网络段有一个唯一的标识符,称为 网络号。
2、每个路由器都会 维护 一个路由表,记录着到达不同网络的距离和下一跳路由器的信息。
3、路由器会 周期性 地向相邻路由器 广播自己的路由表信息,让相邻路由器了解到自己的路由情况。
4、当一个路由器接收到相邻路由器的路由信息后,会将自己的路由表与之 比较,如果相邻路由器提供了一条更短的路径,那么就更新自己的路由表,并将这条信息广播给相邻路由器。
5、路由器会不断地更新自己的路由表,直到所有路由信息都已经传播到网络中的每个路由器,并且网络中的所有路由表都一致。
RIP 的缺点
1、收敛速度慢:当网络中发生故障或拓扑结构变化时,RIP 协议需要较长的时间才能使整个网络的路由表更新。这是因为 RIP 协议的更新周期较长,而且它使用的是距离向量算法,无法快速适应网络变化。
2、不支持大型网络:RIP 协议只能支持较小规模的网络,当网络规模变大时,RIP 协议会产生大量的路由信息,从而消耗大量的带宽和处理能力,导致网络性能下降。
3、不支持VLSM:RIP 协议只能支持固定长度的子网掩码,无法支持 可变长度子网掩码(VLSM),这限制了 RIP 协议在复杂网络环境中的应用。
4、安全性差:RIP 协议没有对路由信息进行验证和加密,容易受到欺骗和攻击,从而导致网络安全问题。
OSPF 协议? OSPF 的工作原理
OSPF 是一种路由协议用于在一个单一自治系统(AS)中实现最短路径优先(Shortest Path First,SPF)算法,以决定数据包的传输路径。
OSPF 协议的工作原理:
1、邻居发现:OSPF 协议在邻居发现阶段,通过发送和接收 Hello 消息来确认邻居关系。如果两个路由器之间建立了邻居关系,它们将开始交换路由信息。
2、链路状态数据库同步:每个 OSPF 路由器将它们的链路状态信息存储在一个本地的 链路状态数据库(Link State Database,LSDB)中。当两个邻居路由器建立邻居关系后,它们将交换各自的链路状态信息,并将其存储在本地的 LSDB 中。此时,每个路由器都会尝试同步它们的 LSDB。
3、SPF 计算:在每个路由器都有完整的 LSDB 后,它们将使用 SPF 算法来计算最短路径树(Shortest Path Tree),并将其存储在路由表中。最短路径树是指从某个路由器出发到其他所有路由器的最短路径。
4、路由更新:每个路由器都会定期发送更新消息来通知其它路由器它们的链路状态发生了变化。当一个路由器收到一个更新消息时,它会更新自己的 LSDB,并重新计算最短路径树。
5、数据传输:当数据包到达一个路由器时,该路由器将使用最短路径树来确定下一个路由器,并将数据包转发到该路由器。
TCP 与 UDP 区别总结?
1、连接:TCP 是面向 连接 的协议,而 UDP 是 无连接 的协议。这意味着 TCP 在发送数据之前需要建立连接,而 UDP 则不需要。
2、可靠性:TCP 提供 可靠 的数据传输,因为它使用确认和重传机制来确保数据传输的正确性。而 UDP 没有这个机制,因此 可能会丢失数据包。
3、速度:UDP比TCP更快,因为它没有建立连接和确认机制,数据可以更快地传输。
4、带宽:TCP 具有自适应拥塞控制,可以动态调整传输速率以适应网络状况,从而最大化利用可用带宽。而 UDP 则没有这个功能。
5、适用范围:TCP 适用于需要可靠传输和有序交付的应用程序,例如电子邮件、文件传输和 Web 浏览器。而 UDP 适用于需要快速传输和实时性的应用程序,例如视频流、游戏和音频通话。
什么是三次握手四次挥手?
- 三次握手指的是在 TCP 建立连接时,客户端和服务器之间需要进行
三次数据交换的过程。
1、客户端向服务器发送一个 SYN 数据包,表示请求建立连接。
2、服务器收到 SYN 请求,向客户端发送一个 SYN+ACK 数据包,表示确认请求并同意建立连接。
3、客户端收到服务器的 SYN+ACK 请求,向服务器发送一个 ACK 数据包,表示确认连接已建立。
- 四次挥手指的是在 TCP
关闭连接时,客户端和服务器之间需要进行四次数据交换的过程。
1、客户端向服务器发送一个 FIN 数据包,表示请求关闭连接。
2、服务器收到 FIN 请求,向客户端发送一个 ACK 数据包,表示确认收到请求。
3、服务器向客户端发送一个 FIN 数据包,表示服务器也请求关闭连接。
4、客户端收到服务器的 FIN 请求,向服务器发送一个 ACK 数据包,表示确认收到请求,连接正式关闭。
TCP 为什么要三次握手?
主要是为了保证连接的 可靠性。在建立连接的过程中,需要确保双方的收发能力正常,否则连接建立后无法正常通信。通过三次握手,可以确保客户端和服务器之间的信息传递正常,并且防止网络中的延迟数据包误认为是有效的连接请求。
GET 和 POST 的区别
1、GET 请求用于 获取资源,通常不会改变服务器上的数据。GET 请求通过 URL传递数据,数据会附加在 URL 的末尾,形成查询字符串。查询字符串以问号 ? 开头,参数之间用 & 符号连接,由于数据以 明文 形式传递,因此不适合传输敏感数据。此外,URL 的长度有限制,不同浏览器对 URL 长度的限制也不同。
2、POST 请求用于 提交数据,通常会改变服务器上的数据。POST 请求通过请求正文传递数据,数据不会附加在 URL 上。因为数据被包含在 请求正文中,所以 POST 请求不会有 URL 长度的限制。POST 请求适合用于传输大量数据或敏感数据。GET 请求适合用于请求数据,而 POST 请求适合用于提交数据。
Cookies 和 session 区别
Cookies 和 Session 的主要区别在于:Cookies 是在 客户端存储数据的技术,而 Session 是在 服务器端存储数据 的技术。Cookies 可以存储简单的信息,而 Session 可以存储任意类型的数据。此外,Cookies 可以在多个浏览器之间共享,而 Session 只能在同一浏览器之间共享。
session 的工作原理?
1、当用户访问一个需要进行 身份验证的页面 时,服务器会创建一个唯一的 Session ID,并将该 ID 存储在一个称为 Session 对象的数据结构中。
2、服务器会将 Session ID 发送到客户端的浏览器,通常是通过在 HTTP 响应头中设置一个名为"Set-Cookie"的标头来实现。
3、当客户端的浏览器接收到服务器发送的 Session ID 时,它会将该 ID 存储在一个称为 Cookie 的数据结构中,以便在后续的请求中将该 ID 发送回服务器。
4、当用户进行其他请求时,浏览器会自动将包含 Session ID 的 Cookie 发送回服务器。服务器会根据 Session ID 找到对应的 Session 对象,并读取或存储与该 Session 对象关联的用户数据。
5、当用户关闭浏览器或者 Session 超时时,Session 对象和 Session 数据将被从服务器内存中删除,以释放服务器资源。
一次完整的 HTTP 请求过程
1、DNS 解析:当浏览器发起一个 URL 请求时,首先需要将 URL 中的域名转换成对应的 IP 地址,这个过程叫做 DNS 解析。浏览器会先检查缓存中是否有该域名的 IP 地址,如果没有则向本地 DNS 服务器发起请求。
2、建立 TCP 连接:一旦浏览器得到目标服务器的 IP 地址,就需要建立一个 TCP 连接。TCP 连接是一个可靠的连接,通过三次握手来建立连接。
3、发起 HTTP 请求:TCP 连接建立后,浏览器会向服务器发送 HTTP 请求。HTTP 请求包括请求方法(GET、POST、PUT、DELETE 等)、URL、HTTP 版本号、请求头等信息。
4、服务器响应:服务器接收到请求后,会根据请求内容进行处理,并向浏览器返回 HTTP 响应。HTTP 响应包括响应状态码、响应头、响应正文等信息。
5、接收响应内容:浏览器接收到服务器返回的 HTTP 响应后,会根据响应头中的 Content-Type 字段来判断响应正文的类型,然后将响应正文解析成对应的格式,并进行渲染。
6、关闭 TCP 连接:当响应内容传输完毕后,TCP 连接会被关闭,释放资源。
HTTPS 和 HTTP 的区别
HTTP 是 超文本传输协议,它是一种用于传输数据的基本协议,但它不提供任何数据加密或身份验证功能。这意味着 HTTP 传输的数据可以被窃听或篡改,因此不适合传输敏感数据,如信用卡号码、密码等。
而 HTTPS 是基于 HTTP 的安全协议,通过在 HTTP 之上添加 SSL/TLS 加密来保证数据的安全性。HTTPS 通过使用 数字证书 对 Web 服务器进行身份验证,并使用 公钥加密算法 来加密数据传输,以确保数据在传输过程中不被窃听或篡改。这使得 HTTPS 非常适合传输敏感数据,如信用卡号码、密码等。
20、OSI 的七层模型都有哪些?

http 长连接和短连接的区别
HTTP 短连接是指客户端向服务器发送一次请求后,服务器返回响应后立即关闭连接。这种方式的优点是可以节省服务器资源,但每次请求都需要建立新的连接,可能会增加请求的延迟,降低性能。
HTTP 长连接是指客户端和服务器之间建立一次连接后,在此次连接上进行多次请求和响应。这种方式的优点是可以减少建立连接的开销,提高性能,但会增加服务器资源的占用。
需要注意的是,HTTP 长连接并不是一直保持开放的连接,而是在一定时间内保持连接状态。在超过一定时间后,如果没有新的请求和响应,连接会自动关闭,以释放服务器资源。
TCP 如何保证可靠传输?
1、序列号和确认应答机制:每个 TCP 报文段都有一个 唯一的序列号,用来标识报文段在数据流中的位置。TCP 接收方收到报文后,会发送一个 确认应答,告诉发送方哪些数据已经接收到。如果发送方没有收到确认应答,会重发该报文段。
2、滑动窗口机制:TCP 使用滑动窗口机制来控制发送方发送的数据量。接收方会告诉发送方自己的接收 窗口大小,发送方就会根据接收方的窗口大小来发送数据。如果发送方发送的数据量超过接收方的窗口大小,接收方就会 拒绝接收多余 的数据。
3、超时重传机制:如果发送方没有收到确认应答,就会认为该数据丢失了,会重新发送该数据。发送方会根据计时器来确定重传的时间间隔和次数,以保证数据的可靠传输。
4、拥塞控制机制:TCP 使用拥塞控制机制来控制网络中的流量,以防止网络拥塞。如果网络中出现拥塞,TCP 会降低发送方的发送速率,以减少网络拥塞的程度。
常见的状态码有哪些?
1xx(信息性状态码):表示请求已经被接收,继续处理。
100 Continue: 请求已经接受,客户端应该继续请求。
101 Switching Protocols: 请求的协议已经改变。
2xx(成功状态码):表示请求已经被成功接收、理解、接受。
200 OK: 请求已成功处理。
201 Created: 请求已经成功处理,并且创建了资源。
202 Accepted: 服务器已经接受请求,但是未处理完成。
204 No Content: 请求已经成功处理,但是没有响应内容。
3xx(重定向状态码):表示需要客户端进行进一步操作以完成请求。
301 Moved Permanently: 请求的资源已经被永久移动到新的位置。
302 Found: 请求的资源已经被临时移动到新的位置。
304 Not Modified: 请求的资源没有被修改,客户端可以使用本地缓存。
4xx(客户端错误状态码):表示客户端提交的请求有错误。
400 Bad Request: 请求无效,服务器无法解析请求。
401 Unauthorized: 请求需要身份验证。
403 Forbidden: 请求被服务器拒绝。
404 Not Found: 请求的资源不存在。
5xx(服务器错误状态码):表示服务器在处理请求时出现错误。
500 Internal Server Error: 服务器内部错误。
503 Service Unavailable: 服务器当前无法处理请求,一般是服务器过载或正在维护。
什么是 SSL? https/ssl 是如何保证数据传输的安全
SSL 用于在网络上进行 安全通信。SSL 的主要目的是为了保护在网络上传输的数据的安全性、完整性和机密性。
HTTPS 是在 HTTP 协议上加入 SSL/TLS 协议的安全协议,可以确保网站与客户端之间的通信是加密的、安全的。
HTTPS 是如何保证数据传输的安全呢?
1、加密:SSL/TLS 协议使用 对称加密和非对称加密结合 的方式,保证数据在传输过程中的安全性。对称加密 用于 加密数据 ,非对称加密 用于在客户端和服务器之间 交换密钥。
2、鉴别:证书机构颁发的证书用于验证服务器的身份和公钥,防止中间人攻击和欺骗。
3、完整性:SSL/TLS 协议使用 消息摘要算法,通过对消息进行哈希运算生成消息摘要,以确保在传输过程中的数据完整性。
如何保证公钥不被篡改?
1、数字签名:在公钥发布之前,将公钥使用私钥进行数字签名,这样在验证公钥时,只需验证数字签名即可确定公钥的真实性。
2、公钥基础设施(PKI): PKI 是一组 技术和协议,用于管理数字证书和公钥,确保公钥的安全性和可靠性。
3、公钥哈希:将公钥进行哈希处理,然后将哈希值公布出来,这样可以确保公钥未被篡改。
4、物理保护:将公钥存储在物理设备中,如智能卡或 USB 密钥,可以保护公钥免受篡改。
php 爆绝对路径方法?
1、dirname(FILE) 或 dirname(FILE):这两个函数都可以获取当前脚本的目录名,也就是当前脚本所在的文件夹的路径。然后可以使用 realpath() 函数来将目录名转换为绝对路径。例如:$absPath = realpath(dirname(FILE));
2、$_SERVER['DOCUMENT_ROOT']:这个变量包含当前脚本所在的文档根目录的绝对路径。可以使用这个变量和$_SERVER['PHP_SELF'] 变量来获取当前脚本的绝对路径。例如:$absPath =$_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'];
需要注意的是,使用 $_SERVER['PHP_SELF'] 变量时需要注意安全性,因为它可能会受到恶意用户的攻击。建议使用$_SERVER['SCRIPT_NAME'] 或 $_SERVER['SCRIPT_FILENAME'] 变量来代替$_SERVER['PHP_SELF']。
你常用的渗透工具有哪些,最常用的是哪个?
1、Burp Suite
2、SQLmap
3、Nmap
4、kali linux
5、Hydra
6、瑞士军刀
xss 盲打到内网服务器的利用
盲打 XSS 是指攻击者没有先进行漏洞探测,而是直接尝试利用 已知 的 XSS 漏洞进行攻击。在某些情况下,攻击者可能会通过盲打 XSS 攻击内网服务器。
攻击者可能会利用 XSS 漏洞注入恶意代码,使得在受害者的浏览器中执行该代码后,向攻击者控制的服务器发送请求,以获取内网服务器的 敏感信息。这种攻击方式通常需要攻击者事先准备一个恶意服务器,以接收发送到该服务器的请求并获取敏感信息。
鱼叉式攻击和水坑攻击
1、鱼叉攻击是指黑客通过伪装成一个可信来源的方式来欺骗特定目标,以获取敏感信息或者进行其他恶意活动的攻击方式。这种攻击通常是通过电子邮件或社交媒体等通信方式实施的,黑客会针对某个特定的人或组织,通过伪造信任的方式来引导受害者点击链接或者下载附件等,从而让受害者泄露出机密信息或者安装恶意软件。
2、是指黑客通过攻击受害者经常访问的网站,以获取敏感信息或者进行其他恶意活动的攻击方式。这种攻击通常是通过对目标网站进行攻击,使得访问该网站的用户受到感染或者被重定向到恶意网站,从而让黑客获得用户的敏感信息或者控制用户的计算机。
简讲:鱼叉式攻击是一种针对个人或组织的攻击,而水坑攻击则是一种针对广泛用户的攻击。
什么是虚拟机逃逸?
指攻击者利用虚拟化软件或操作系统中的漏洞,从虚拟机(VM)环境中获得对物理主机的控制权。攻击者可以通过虚拟机逃逸攻击,绕过安全措施,获取对整个物理主机的访问权限,并访问所有存储在其中的敏感数据。
中间人攻击?
指攻击者在通信过程中 窃取 双方通信的数据,并尝试篡改或者重放数据的一种攻击方式。攻击者通常会在用户和服务器之间插入一个恶意的中间节点,这个节点会伪装成正常的通信节点,使得双方都认为他们在与对方直接通信。
TCP 三次握手过程?
1.客户端向服务器发送连接请求(SYN)包,其中包含客户端的初始化序列号(ISN)。
2.服务器接收到请求后,回复一个带有确认序列号(ACK)的 SYN 包,其中包含服务器的初始化序列号(ISN)。
3.客户端再次发送一个带有确认序列号(ACK)的包,确保连接已经建立。
七层模型?
物理层 --> 数据参数层 --> 数据链路层 --> 网络层 --> 传输层 --> 表示层 - > 应用层
对于云安全的理解
云安全是指在 云计算环境下 保护云端和云端相关资源的安全性。云安全包括保护云计算基础设施的安全、云服务提供商和云用户之间的安全关系、以及云中存储和处理的数据的安全性。
云安全需要采取一系列的措施来保障云计算环境的安全性,这些措施包括但不限于:
1、认证和访问控制:确保只有授权的用户能够访问云服务和云中存储的数据。
2、数据保护:采用数据加密、备份、灾备等措施来保护云中存储的数据的安全性。
3、网络安全:保障网络的可靠性和安全性,防止网络攻击。
4、合规性:确保云服务的合规性,满足相关的法律法规和标准要求。
5、安全监控和日志审计:通过监控和审计云中的操作和活动,发现和应对安全事件和威胁。
了解过 websocket 吗?
了解过
WebSocket 是一种在单个 TCP 连接上进行全双工通信的 网络协议。它使得浏览器和服务器之间的实时数据传输变得更加容易。与 HTTP 请求-响应协议不同,WebSocket 连接保持打开状态,允许双向通信,因此可以通过 WebSocket 连接 实时更新数据,而无需通过不断的 HTTP 请求来获取更新。
WebSocket 连接的建立需要经过一个握手过程,客户端和服务器在握手期间交换信息以建立连接。在成功建立连接之后,客户端和服务器可以相互发送消息,这些消息可以是文本、二进制数据或 JSON 等格式。在服务器端,通常使用 WebSocket API 来处理接收到的消息并响应客户端的请求。
由于 WebSocket 协议是在单个 TCP 连接上运行的,因此可以降低网络延迟和带宽消耗。它还允许服务器推送数据给客户端,这对于实时数据更新和即时通讯非常有用。
常被用在 web 开发当中
DDOS 是什么?有哪些?CC 攻击是什么?区别是什么?
1、DDOS 是一种网络攻击方式,攻击者通过控制多台计算机或设备,向目标服务器或网络发起 大量的请求,使其无法正常处理合法的网络流量,导致 服务不可用。攻击者的目的通常是让目标系统无法提供正常服务,从而造成经济损失或者影响其声誉等。
2、常见的 DDOS 攻击方式包括:
SYN Flood:利用 TCP 三次握手协议中的漏洞,发送大量的 SYN请求,耗尽服务器资源。
ICMP Flood:利用 ping命令,向目标服务器发送大量的 ICMP请求,耗尽服务器资源。
UDP Flood:利用 UDP 协议的特性,发送大量的 UDP数据包,占用服务器带宽和 CPU 资源。
3、CC 攻击(HTTP Flood)是一种特殊的 DDOS 攻击方式,其主要针对的是 Web 服务器。攻击者通过 伪造HTTP请求,向 Web 服务器发送 大量的请求,模拟用户访问,从而使得服务器过载,无法正常处理合法的网络流量
4、区别:
攻击对象不同:DDoS 是针对 IP的攻击。CC 攻击针对的是 网页。
危害不同:DDoS 攻击危害性较大,更难防御。CC 攻击的危害不是毁灭性的,但是持续时间长。
门槛不同:DDoS 攻击门槛高,攻击者一般需要在攻击前搜集被攻击目标主机数目、地址情况、目标主机的配置性能等资料,盲目攻击可能导致 效果不佳。CC 攻击门槛低,利用更换 IP 代理工具即可实施攻击,且 目标比较明确,黑客水平比较低的用户也能进行。
流量大小不同:DDoS 攻击比 CC 攻击所需要流量更大,且 CC 攻击有时不需要很大的流量。
land 攻击是什么?
1、如果你是在计算机安全领域提到“land 攻击”,那么它指的是一种早期的拒绝服务攻击(DoS 攻击)技术,攻击者向目标计算机发送特制的 IP 数据包,其中源 IP 地址和目标 IP 地址都被设置成目标计算机的 IP 地址。这种攻击会导致目标计算机陷入死循环,最终无法响应其他的网络请求。这种攻击现在已经很少见了,因为现代的操作系统已经修复了这个漏洞。
2、如果你是在网络游戏领域提到“land 攻击”,那么它指的是一种利用游戏引擎漏洞的攻击方式,攻击者可以利用这些漏洞来让目标玩家的游戏客户端崩溃或卡死。这种攻击也可以被视为一种 DoS 攻击。
你会如何进行信息收集?
收集二级域名,ip 敏感信息收集,指纹,waf 识 ,CDN 识别,旁注 C 段
什么是 CRLF 注入攻击?
CRLF 注入攻击是一种 Web应用程序漏洞,它允许攻击者在 HTTP 头中注入恶意 HTTP 响应头。攻击者可以使用 CRLF 注入攻击来操纵 HTTP 响应,从而获得服务器的访问权限,或者攻击者可以 绕过安全控制,以访问未经授权的敏感信息。
防止 XSS,前端后端两个角度思考?
前端:
1)使用 HTTPS 协议来保护用户数据和传输数据。
2)使用 转义字符 来过滤用户输入的特殊字符,以防止攻击者注入恶意的 JavaScript 代码。
3)禁止用户上传 可执行文件,如.exe、.vbs 等。
4)使用 HTTP 头来限制网页内容的加载,以防止 XSS 攻击。
后端:
1)使用参数校验来检查用户输入的数据是否符合要求,如果不符合要求,则拒绝访问。
2)使用 预编译语句 来执行 SQL 查询,以防止 SQL 注入攻击。
3)使用安全的 加密算法 来加密数据,以防止数据泄露。
4)使用安全的 HTTP 头来限制网页内容的加载,以防止 XSS 攻击。
如何防护一个端口的安全?
- 使用防火墙:防火墙可以阻止未经授权的网络流量进入网络,从而保护端口安全。
- 安装安全软件:安装安全软件可以检测和阻止恶意软件和病毒的入侵,从而保护端口安全。
- 实施安全策略:实施安全策略可以限制用户访问特定端口,从而保护端口安全。
- 定期更新操作系统:定期更新操作系统可以修复漏洞,从而保护端口安全。
- 加密数据传输:使用加密技术可以保护数据传输,从而保护端口安全。
webshell 检测思路?
- 检查文件名:检查文件名是否与 webshell 相关,如果是,则可能是 webshell。
- 检查文件内容:检查文件内容是否包含 webshell 特征,如果是,则可能是 webshell。
- 检查文件权限:检查文件权限是否被更改,如果是,则可能是 webshell。
- 检查文件时间:检查文件的创建时间和修改时间,如果有异常,则可能是 webshell。
- 检查文件大小:检查文件的大小,如果文件大小异常,则可能是 webshell。
GPC 是什么?开启了怎么绕过
GPC 是 GET、POST、COOKIE 的简写,用于描述在进行 URL 提交时,用户可以提交的三种类型的数据。如果想要绕过 GPC,可以使用 URL 重写、伪静态、XMLHttpRequest 等技术。
URL 重写可以将 URL 参数放在 URL 路径中,但不会显示在 URL 里,从而避免被 GPC 过滤。
伪静态可以将普通的 URL 重新排列,从而使它看起来更加有吸引力,也可以隐藏 URL 参数,从而绕过 GPC 过滤。
XMLHttpRequest 可以将 POST 请求发送到后台,而不需要发送任何 URL 参数,从而避免被 GPC 过滤。
web 常用的加密算法有什么
- MD5:Message-Digest Algorithm 5,
信息摘要算法,常用于文件校验。 - SHA:Secure Hash Algorithm,
安全散列算法,常用于数字签名等安全认证场景。 - HMAC:Hash Message Authentication Code,
散列消息鉴别码,常用于消息完整性校验。 - AES:Advanced Encryption Standard,
高级加密标准,常用于数据加密。 - RSA:Rivest-Shamir-Adleman,常用于数字签名和加密。
- DES:Data Encryption Standard,数据加密标准,常用于加密和解密。
- 3DES:Triple DES,三重数据加密算法,是 DES 的一种改进版本。
- Blowfish:一种对称加密算法,可以用来加密大量数据。
- Twofish:一种对称加密算法,可以用来加密大量数据。
- RC4:一种流加密算法,可以用来加密大量数据。
- PBKDF2:Password-Based Key Derivation Function 2,基于密码的密钥派生函数 2,常用于加密口令。
- Bcrypt:一种密码散列函数,可以用来加密口令。
- SCrypt:一种密码散列函数,可以用来加密口令。
- Argon2:一种密码散列函数,可以用来加密口令。
XSS 除了获取 cookies 还能做什么?
XSS 可以用来做的其他事情有:
- 劫持用户会话:通过 XSS 攻击,攻击者可以访问受害者的用户会话,从而获取用户的登录凭据或其他敏感信息。
- 修改网页内容:XSS 攻击可以用来修改网页内容,从而欺骗受害者。
- 破坏网站结构:XSS 攻击可以用来破坏网站结构,从而影响网站的正常运行。
- 获取用户数据:XSS 攻击可以用来获取用户的敏感信息,比如用户的个人信息、财务信息等。
- 执行恶意脚本:XSS 攻击可以用来执行恶意脚本,从而对网站进行攻击或进行其他恶意活动。
- 传播蠕虫:XSS 攻击可以用来传播蠕虫,从而在受害者网络中传播恶意程序。
- 劫持浏览器:XSS 攻击可以用来劫持浏览器,从而控制用户的浏览习惯。
- 弹出恶意广告:XSS 攻击可以用来弹出恶意广告,从而影响用户的正常使用。
- 注入恶意代码:XSS 攻击可以用来注入恶意代码,从而影响网站的正常运行。
- 操纵搜索结果:XSS 攻击可以用来操纵搜索结果,从而让受害者访问攻击者想要让他们访问的网站。
- 传播木马程序:XSS 攻击可以用来传播木马程序,从而攻击网站或窃取用户信息。
- 劫持网站:XSS 攻击可以用来劫持网站,从而控制网站的内容和功能。
运营商(或其他)网络劫持
1、当网络劫持发生时,请求被运营商(或其他劫持者)拦截,由他们发送响应。劫持者可能会插入恶意内容,植入广告,并通过注入脚本对内容进行修改。劫持者可能会拦截特定的内容以及用户的 HTTP 请求,从而控制用户的浏览体验。
2、网络劫持可能会导致安全和隐私问题,因为劫持者可以收集用户的敏感信息,例如用户凭据和登录信息。它还可能导致网络流量减少,并且由于广告和注入的脚本,网页可能会变得非常缓慢。
3、要避免网络劫持,可以使用 SSL/TLS 协议保护通信,在发送敏感数据之前进行网站验证,并使用一款受信任的 VPN 来加密通信。此外,还应该定期更新设备的操作系统和浏览器,并只从可信的源下载软件或应用程序。
4、要继续防止网络劫持,应该禁用网络中的一些危险的功能,例如域名服务器(DNS)的动态更新,DNS 重定向,以及远程访问功能。另外,还应设置安全软件来帮助检测潜在的网络劫持活动。最后,运营商可以设置灰度测试策略来帮助发现违规活动。
DNS 欺骗是什么
DNS 欺骗是一种网络攻击技术,可以改变 Internet 上查找 Web 服务器和其他 Internet 资源的本地 DNS(域名系统)表。攻击者通过更改服务器上的 DNS 记录,可以将 Internet 流量重定向到攻击者控制的服务器,用于盗取数据,植入恶意软件,或重新定义未经授权的网络配置。
缓冲区溢出原理和防御
缓冲区溢出是一种软件漏洞,在这种漏洞中,攻击者可以利用保存数据的内存单元越界访问其他内存空间,访问此类内存导致系统崩溃或可执行恶意代码。
要防止缓冲区溢出攻击,可以采用多种措施,包括使用堆栈保护机制(如堆栈溢出保护、边界检查缓冲区),使用隔离内存技术(ASLR),以及使用深度检查技术(如恶意代码检查、反编译检查)。另外,还可以使用动态分析技术(如在线分析),以及代码审计技术来防御缓冲区溢出。
网络安全事件应急响应
网络安全事件应急响应是指在发生网络安全事件时,企业应组织有关部门统一协调,根据网络安全应急响应计划或网络安全事件预案的要求,及时采取相应的应对措施。
它包括:
(1)应急预案设计:进行安全事件预测和分析,制定网络安全应急响应计划和网络安全事件处置预案,以应对网络安全事件。
(2)故障消除:组织资源进行安全故障分析,查明故障原因并消除故障源。
(3)事件处理:对网络安全事件进行识别,分析和处理,以及健全后续处理流程。
(4)控制措施落实:制定、落实有效的管理措施,防止网络安全事件的再次发生。
(5)风险预警:建立网络安全风险预警系统,严格完善网络安全管理,从而及时防范网络安全事件。
(6)数据处置:收集、处理和存储处置期间涉及的所有数据,避免安全事件再次发生。
(7)应急测试:分析处理后的网络安全状态,实施应急测试,确保安全恢复后的网络安全可用性。
(8)应急评估:对安全事件处置作出总结,评估应急处置效果,并采取有效的改进措施,减少安全事件的发生几率。
(9)安全意识培训:对员工进行网络安全意识培训,增强员工的网络安全意识,使其熟悉网络安全技术、安全风险评估技术及网络安全威胁信息处理技术,预防网络安全事件发生。
(10)复查审计:定期复查审计网络安全事件及应急响应活动,以及建立长期的安全应急响应机制。
企业内部安全
企业内部安全管理是指企业内部管理机构对企业内部安全状况的管理,包括安全管理制度、安全管理措施、安全管理机构和安全管理人员等。
1、制定安全管理制度:企业应制定安全管理制度,明确安全管理的职责、权限和程序,确保安全管理的有效实施。
2、实施安全管理措施:企业应根据安全管理制度,采取有效的安全管理措施,确保企业内部安全状况的稳定。
3、建立安全管理机构:企业应建立安全管理机构,负责安全管理工作,确保安全管理的有效实施。
4、培训安全管理人员:企业应定期对安全管理人员进行培训,使其具备安全管理的知识和技能,确保安全管理的有效实施。
5、定期检查安全状况:企业应定期检查企业内部安全状况,及时发现安全隐患,采取有效措施,确保企业内部安全状况的稳定。
6、及时处理安全事故:企业应及时处理安全事故,分析事故原因,采取有效措施,防止安全事故的发生。
7、定期评估安全管理:企业应定期评估安全管理的效果,及时发现安全管理中存在的问题,采取有效措施,确保安全管理的有效实施。
8、定期更新安全管理制度:企业应定期更新安全管理制度,使其与企业实际情况相适应,确保安全管理的有效实施。
9、定期开展安全宣传:企业应定期开展安全宣传,使员工充分了解安全管理的重要性,确保安全管理的有效实施。
10、建立安全档案:企业应建立安全档案,记录安全管理的相关信息,便于安全管理的有效实施。
业务上线前,怎么测试,从哪些角度测试
首先,你需要知道你的网站是否正常运行。如果你的网站出"错误提示"来查看。如果你的网站正常运行,你可以通过测试你的网站的功能来测试它的效果。例如,你可以测试你的网站的页面加载速度和页面的显示效果。
其次,你需要知道你的网站的内容是否正确。如果你的网站内容出现问题,可以通过测试你的网站的内容的格式和数据的结构来测试它的效果。例如,你可以测试你的网站的内容的格式和数据的结构。
最后,你需要知道你的网站是否正确的链接。如果你的网站链接出现问题,可以通过测试你的网站的链接的结构和功能来测试它的效果。例如,你可以测试你的网站的链接的结构和功能。
应用有漏洞,但是无法修复和停用,你怎么办
- 尽快通知应用的开发者,让他们尽快修复漏洞。
- 尽量减少应用的使用,以降低漏洞的影响。
- 将应用的使用权限限制在最低,以降低漏洞的影响。
- 定期检查应用的安全性,及时发现漏洞并采取有效措施。
- 将应用的使用限制在可信任的环境中,以降低漏洞的影响。
CSRF 怎么防护?
1、在用户每次登录的时候设置唯一的会话标识符(类似与令牌);
2、在表单提交前把这个会话标识符附加到表单中;
3、在接受表单提交后,使用会话标识符与之前存储在服务器上的值进行比对;
4、在验证成功之后,这个标识符将被删除或者重新生成新的标识符;
5、如果验证失败,请求将被拒绝,把用户重定向回到登录页面,或者给出警告。
文件上传绕过方法?
1、文件扩展名绕过:将文件后缀改为常见的文件扩展名,例如.js、.jpg、.exe 等;
2、根据文件头信息修改文件扩展名:一些图片文件,如 png、gif、jpg 等,都有自身的文件头,可以在文件开头修改其文件头;
3、使用 base64 编码上传:将需要上传的文件用 Base64 编码,再结合 XMLHttpRequest 上传;
4、字符串文件上传:根据文件格式将其转换为字符串,再利用 eval 等函数取值;
5、“多部分/表单编码(multipart/form-data)”信息:一般 Web 应用都是采用此种格式上传文件,利用多级分割,传一个字符串 $_FILES 文件域数组;
6、采用数据库存储文件:可以把文件当做二进制数据,存在数据库里,再获取路径下载;
7、遗漏文件类型:尝试上传各类类型文件,以不合法文件类型方式绕过限制,如 JSP 等;
8、Exe 反射:Exe 反射加载是将非托管代码(如 C + +)编译成可执行模块并从可执行程序中加载到当前应用程序域中。
验证码相关利用点
- 注册功能绕过:
可以使用工具给指定页面中的包含验证码的表单提交 HTTP 请求,破解验证码,最终实现注册成功,但是手机收不到短信验证信息,从而绕过手机绑定等操作。
- 访问受限功能:
利用验证码可以不正当的访问受限的功能,在功能已经设计好的情况下,只有特定的用户可以访问,但若利用破解等手段,可以实现非法访问。
- 前台表单提交:
在前台表单提交时,利用验证码来破解系统的正确提交,从而实现只要破解正确的验证码,可以无限制的提交表单,最终导致后台的系统负载异常。
- 获取礼品:
破解验证码可以获取大量的礼品,甚至一些比较特殊的,但又具有一定价值的礼品,从而达到攻击者的利益目的。
验证码的防御方式
- 精确验证:
在验证码和用户输入的验证码进行对比时,精确到比较到空格及标点符号,从而减少验证码被破解几率。
- 使用图片验证码:
图片验证码由于使用了真实图片,从而增加验证难度,因此可以更好的防止机器人攻击及被脚本破解的可能性。
- 动态调整验证码:
动态调整验证码的形式,使验证码每一次显示均不同,不仅可以骗过机器,而且也可以减少暴力破解的可能性。
- 及时更新、更新验证码策略:
随着技术的不断发展,究竟何种能有效的破解验证码也在不断变换,所以建议验证码应该及时更新,并使用加长、加复杂性的验证码,尽可能将破解算法及尽可能难以被破解。
cookie 你会测试什么内容
- 检查 cookie 值是否符合预期。
- 测试 cookie 是否按照设定的有效期,被正确删除。
- 检查 cookie 是否存在安全漏洞。
- 测试 cookie 是否以安全的方式存储在客户端。
- 检查 cookie 的值是否跨站点跟踪,该类型的 cookie 用于非法目的。
- 测试 cookie 在不同浏览器上的兼容性。
- 检查 cookie 的值是否已编码,以防止攻击者获取有效数据。
- 检查 uri 路径是否正确设置,以确保 cookie 正确发送。
- 检查 cookie 的首选项设置是否严格,以确保安全性。
- 检查发送到 cookie 的所有数据是否被编码、压缩或加密,以防止未经授权的第三方访问。
说出几个业务逻辑漏洞类型?
- 权限控制漏洞:攻击者利用漏洞绕过系统的访问限制,获取高权限的未授权的访问权限。
- 功能攻击漏洞:攻击者恶意篡改文件结构或系统信息,达到辅助操作的想要的效果。
- 越权漏洞:攻击者利用漏洞获取具有非授权访问权限的受保护的系统资源访问权限。
- 数据控制漏洞:攻击者可以利用漏洞篡改系统中一些受保护的数据和信息,更改其原有的用途。
- 虚拟化漏洞:通过攻击者获取被保护的虚拟机资源或访问被控制的专用虚拟机中的数据。
- 特权升级漏洞:攻击者以一般用户的身份登录,通过漏洞获得系统的最高权限。
- 数据库漏洞:攻击者也可以通过注入、数据库暴力破解等手段访问系统的受保护的数据库信息。
- 覆盖签名攻击:攻击者篡改交互双方通信中的数据,伪造返回信号以达到冒充另一方的目的。
- 缓冲区溢出漏洞:攻击者利用缓冲区内容溢出获取系统内存中的受保护数据。
- 会话固定漏洞:攻击者利用会话固定技术,获取其他用户的身份信息。
简述文件包含漏洞
文件包含漏洞是一种导致服务器上的文件被非法访问的安全漏洞,这种漏洞通常是由不当的 Web 编程实现引起的,允许攻击者从外部文件中读取服务器上的数据。在 Web 应用中,比如表单和 URL 参数,开发人员通常允许提交带有特定值的信息,包括文件的路径和文件名,这样网页应用程序就可以加载相应的文件。如果攻击者能够控制提供的文件名,就能够从服务器获取有敏感信息的文件。
业务逻辑漏洞,用户任意密码重置有什么例子,因为什么因素导致的?
一个典型的用户任意密码重置漏洞例子是,注册时用户没有填写安全的邮箱或设置密保问题,但仍然可以任意重置密码。这种漏洞一般是因为一些应用系统缺乏完善的安全验证机制,没有设置足够的安全防护措施来防止未经认证的用户从外部重置密码,从而导致了这种安全漏洞的发生。
渗透测试过程中发现一个只能上传 zip 文件的功能,有什么可能的思路?
- 试图绕过扩展名限制,上传其他文件类型,如 asp/PHP/exe 文件,来尝试访问文件或执行程序;
- 将恶意的 php 文件做成 zip 形式压缩,再上传;
- 尝试更改 zip 的文件结构,破解内部的文件;
- 通过 zip 文件木马注入,把恶意程序传播到其他用户或系统;
- 尝试解密除压缩密码保护的 zip 文件,在不可见的地方体现第二层后门;
- 通过提取 zip 文件的文件信息,尝试获取隐藏的恶意代码和信息;
- 尝试上传 zip 文件后仍保持压缩包原本完整的形式;
- 尝试发现不处理 zip 中的文件信息,出现漏洞;
- 尝试从 zip 中提取出有副作用的附加代码;
- 检测上传文件大小,尝试把太大的文件压缩后再上传;
- 尝试结合压缩文件本身的特性,对目标系统进行 DoS(拒绝服务)攻击;
- 对 zip 文件进行逆向工程,在字符序列中寻找内容可利用的信息;
- 尝试魔盒攻击,上传 zip 文件,当它被下载时被篡改,短期内使";
为什么 aspx 木马权限比 asp 大?
因为 ASP 页面的权限只有简单的可执行权限,而 ASPX 页面拥有类似于完整文件系统的权限,可以让攻击者实现更多的功能,比如:访问系统文件、查看远程数据库、添加新用户等。
只有一个登录页面有哪些思路?
- 检测页面中的客户端和服务端漏洞,如 XSS,SQL 注入等。
- 枚举管理员用户名,尝试常见密码。
- 测试 HTTP 头中的信息,如 HTTP 头允许跨站脚本(XSS),防止缓存信息等。
- 尝试暴力密码破解,不断尝试登录直到获得正确的用户名和密码。
- 尝试在登录表单中注入有效载荷,以绕过认证流程。
- 检查并测试所有可用 API,以确定是否存在任何漏洞。
- 检查登录页面的 SSL/TLS 证书是否有效。
- 尝试在登录页面访问特定的文件夹,以查看是否存在任何可以利用的权限问题。
- 检查是否有明文存储用户名和密码。
- 尝试通过擦除 cookie、修改 cookie 和请求头信息等,让浏览器在登录表单中注入有效载荷。
请求头中哪些是有危害的?
恶意的 HTTP 头包括:
1、X-Forwarded-For:此头表示 HTTP 请求中客户端的 IP 地址。某些 client 看到此标头并将其发送到 Web 服务器,以弱化客户端安全性。
2、Cookie:Cookies 是 Web 应用程序标识用户的唯一方法,如果攻击者可以篡改 Cookie 并将恶意值植入其中,它可能会导致未经授权的访问。
3、User-Agent:某些攻击者可能会改变此标头,以隐藏他们的硬件及操作系统的型号。
4、Referer:此标头跟踪用户来自哪里,恶意攻击者可能会使用此标头向用户发送恶意网站的链接。
谈谈水平/垂直/未授权越权访问的区别?
水平越权访问指的是当一名用户尝试访问另一名用户或资源,但其等级不比他以上,因此无法实现。水平越权对于维护安全性是非常重要的,用户只能访问自己的内容,而不能访问另一个用户的内容。
垂直越权访问是指一个用户经过授权可以获得更高一级的权限,即不允许访问更高级别,但是允许访问更高层级的权限。例如,一个可以查看某个网站的文章,但可以添加和修改文章的用户,他就经过了垂直越权访问。
未授权越权访问指的是一个用户尝试访问另一个未经授权的用户或资源,这是一种非法的行为,一旦发现便立即拒绝该访问。未授权的越权行为可能会破坏系统完整性,或者丢失私人数据,因此这是一个非常严重的问题。
xss 有什么?执行存储型的 xss 的危害和原理
XSS(跨站脚本攻击)是一种常见的网络攻击,是一种经典的前端漏洞,可溯源于服务器端指令处理过程中的参数没有做安全过滤引起的。XSS 有多种类型,执行存储型 XSS 攻击的危害有:
- 可被攻击者控制的完全执行,无需用户互动就可以实现;
- 将可执行代码存储在服务器上,从而通过脚本技术获取用户信息;
- 将恶意代码附加到正常页面以及向用户提供他们不想要的第三方内容,或弹出虚假的宣传窗口。
执行存储型的 XSS 的原理是:服务器端在处理参数时没有过滤掉特殊字符,将恶意脚本注入到服务器端;当用户访问具有恶意脚本的页面时,该脚本被自动执行,从而允许攻击者控制用户的会话,实施更多攻击。
主机疑似遭到入侵,要看哪里的日志
要看哪里的日志,取决于具体的操作系统,通常可以看/var/log 下的各类日志文件,如操作系统的安全日志、应用程序的日志文件等。此外,也可以检查系统防火墙的日志,包括拒绝服务器上的访问记录,以及网络流量日志等。
python 常用的标准库
- 操作系统接口:os、os.path、subprocess、shutil;
- 文件通配符:glob;
- 字符串处理:re、string、difflib、textwrap、unicodedata;
- 数据编码和处理:base64、codecs、csv、xml;
- 数学:decimal、fractions、math、random、statistics;
- 日期和时间:datetime、time;
- 拆分合并数据:collections、 copy、heapq、bisect;
- 数据压缩和归档:zlib;
- 文件加载器:fnmatch;
- 流控制和种子:itertools;
- 线程和进程:threading、multiprocessing;
- 调试器:pdb;
- 软件包:pkgutil、modulefinder、zipimport;
- 系统及环境:sys、warnings、contextlib、platform、getopt、argparse;
- Internet 数据处理:urllib、urllib2、http、smtplib、poplib、imaplib、ftplib、telnetlib;
- 其他:struct、copyreg、shelve、weakref。
reverse tcp 和 bind tcp 的区别?
TCP 建立连接时有两种方式:Reverse TCP 和 Bind TCP。
Reverse TCP 是客户端服务器之间“相反”的连接,因为客户端将尝试连接服务器,然后服务器返回一个确认连接。这是最常见的传输控制协议(TCP)连接模型,比如客户端浏览器和服务器之间的 HTTP 连接。
Bind TCP 是服务器等待客户端的连接,服务器主动发出“绑定”请求,然后等待客户端响应,如果客户端响应,连接建立成功。这是客户端登录 FTP 服务器时使用的模型,即服务器监听某个端口并等待客户端接入。
oauth 认证过程中可能会出现什么问题,导致什么样的漏洞?
- 认证过程中可能出现的漏洞包括:认证信息不正确、认证信息不安全、认证回调不可靠、对认证信息的滥用等。
- 这些问题可能会导致攻击者窃取访问令牌,注入恶意请求,篡改网络数据,窃取用户的隐私信息等漏洞。
做了 cdn 的网站如何获取真实 IP
- 添加通过 X-Forwarded-For 获取真实 IP:如果您的 CDN 服务器可以设置 X-Forwarded-For 头部,我们可以在服务器端获取到客户真实 IP 地址。
- 使用 CDN API:某些 CDN 服务提供了 API 接口,可以直接通过 API 接口获取客户真实 IP 地址。
- 通过 HTTP 头部获取真实 IP:如果 CDN 服务器添加了 HTTP 头信息,您可以通过获取 HTTP 头信息获取客户的真实 IP 地址。
- 使用 Google 开放的 API:可以使用 Google 的开放的地理定位 API,用客户的 IP 地址获得结果,可以轻松获取到客户的真实 IP 地址。
- 使用第三方 IP 查询 API:可以使用第三方的 IP 查询 API 获得客户的真实 IP 地址。
- 直接检查 HTTP 请求数据包:在服务器端抓取 HTTP 请求数据的源 IP 地址,从而可以获得客户的真实 IP 地址。
- 使用 IPv6 地址识别方法:对 IPv6 地址进行检测可以识别端用户的真实 IP 地址。
- 通过防火墙日志获取真实 IP:可以从防火墙日志中获取客户的真实 IP 地址。
- 通过服务器日志获取真实 IP:通过服务器日志也可以识别出客户的真实 IP 地址。
- 使用 NETGEAR ACE API 获取真实 IP:可以使用 NETGEAR ACE API 获取客户的真实 IP 地址。
如何实现跨域?
跨域是指浏览器禁止从一个源加载来自另一个源的内容,这些内容可能是静态文件,如 JavaScript 和 CSS,也可能是由服务器上的数据动态生成的。
使用 JSONP 实现跨域:
JSONP (JSON with Padding)在仅看 html 内容的时候,将另一个域加载到当前页面的一种技术,它允许跨域调用脚本文件,从而实现跨域的数据传输。
使用 CORS 实现跨域:
CORS(跨源资源共享/跨域资源共享)是一种用于实现跨源请求的技术,它使浏览器可以发送和接收跨源 http 请求,从而进行跨域数据传输。
使用 Nginx 代理实现跨域:
使用 Nginx 代理是针对 ajax 发起的 http 请求,利用 Nginx 的反向代理的能力,将客户端向服务器端发起的请求,由 Nginx 服务器端转发到源服务器,客户端得到的返回值仍然是由 Nginx 服务器返回的,从而达到跨域的目的。
jsonp 跨域与 CORS 跨域的区别?
- JSONP 是一种可以解决跨域问题的脚本,可以在不支持 CORS 的浏览器中使用,而 CORS 则是一种机制,它允许浏览器将一个在一个域名中的资源发送到另一个域名。
- JSONP 不是传统意义上的 Ajax 请求,而 CORS 是传统意义上的 Ajax 请求。
- JSONP 跨域的过程由浏览器来发起,而 CORS 跨域过程由服务器来发起。
- JSONP 有自己的 script 标签和 callback 函数,而 CORS 是基于 HTTP 头信息来进行跨域操作的。
- JSONP 只支持 get 请求,而 CORS 支持所有类型的 HTTP 请求。
算法?了解过什么排序?
排序算法一般分为内排序和外排序两类。
内排序:冒泡排序、插入排序、选择排序、希尔排序、归并排序、快速排序、堆排序等。
外排序:外部排序(外部排序)、记录聚合排序(记录聚合排序)、桶子排序(桶子排序)、文件合并排序(文件合并排序)等。
我了解的排序算法有:冒泡排序、插入排序、选择排序、快速排序、希尔排序、归并排序、堆排序、桶排序、记录聚合排序和外部排序。
SSRF 漏洞利用?
SSRF 漏洞利用是一种攻击技术,它利用服务器端请求伪造(Server Side Request Forgery)漏洞,允许攻击者构造特殊的 HTTP 请求,从而访问内部网络上的服务器资源。攻击者可以利用 SSRF 漏洞来获取内部网络上的敏感信息,甚至可以控制内部网络上的服务器。
常见后门方式?
- 后门程序:攻击者可以在系统中安装后门程序,以便获取系统的访问权限。
- 后门账号:攻击者可以创建一个后门账号,以便获取系统的访问权限。
- 后门服务:攻击者可以在系统中安装后门服务,以便获取系统的访问权限。
- 后门端口:攻击者可以在系统中打开一个后门端口,以便获取系统的访问权限。
- 后门文件:攻击者可以在系统中创建一个后门文件,以便获取系统的访问权限。
- 后门网络:攻击者可以在系统中创建一个后门网络,以便获取系统的访问权限。
- 后门脚本:攻击者可以在系统中创建一个后门脚本,以便获取系统的访问权限。
- 后门程序替换:攻击者可以在系统中替换一个后门程序,以便获取系统的访问权限。
open basedir 访问目录限制绕过方法?
- 利用 open_basedir 的绝对路径:攻击者可以利用 open_basedir 的绝对路径来绕过 open_basedir 的限制,从而访问系统上的其他目录。
- 利用 open_basedir 的相对路径:攻击者可以利用 open_basedir 的相对路径来绕过 open_basedir 的限制,从而访问系统上的其他目录。
- 利用 open_basedir 的路径穿越:攻击者可以利用 open_basedir 的路径穿越来绕过 open_basedir 的限制,从而访问系统上的其他目录。
- 利用 open_basedir 的路径枚举:攻击者可以利用 open_basedir 的路径枚举来绕过 open_basedir 的限制,从而访问系统上的其他目录。
- 利用 open_basedir 的路径替换:攻击者可以利用 open_basedir 的路径替换来绕过 open_basedir 的限制,从而访问系统上的其他目录。
PHP 代码审计中容易出问题的点?
- 数据库查询:SQL 注入、跨站脚本攻击(XSS)、远程文件包含(RFI)等。
- 文件上传:文件上传漏洞、文件包含漏洞等。
- 权限控制:越权访问、未授权访问等。
- 数据传输:数据加密、数据签名等。
- 网络安全:网络攻击、恶意代码等。
- 系统安全:系统漏洞、恶意程序等。
- 其他:缓冲区溢出、路径遍历攻击等。
红蓝对抗中蓝队反杀红队场景和姿势?
钓鱼、蜜罐、蚁剑 RCE
linux 计划任务,黑客隐藏自己的计划任务会怎么做?
- 使用 crontab -e 命令编辑 crontab 文件,将计划任务添加到文件中,但不要使用明文,而是使用加密的形式,如 base64 编码。
- 将计划任务放在一个隐藏的文件夹中,并且给文件夹设置一个隐藏的名字,以防止其他人发现。
- 使用 Linux 的隐藏文件功能,将计划任务文件设置为隐藏文件,以防止其他人发现。
- 使用 Linux 的文件权限功能,将计划任务文件设置为只读,以防止其他人修改。
- 使用 Linux 的文件属性功能,将计划任务文件设置为不可见,以防止其他人发现。
- 使用 Linux 的文件系统加密功能,将计划任务文件加密,以防止其他人破解。
- 使用 Linux 的隐藏进程功能,将计划任务进程设置为隐藏,以防止其他人发现。
- 使用 Linux 的隐藏端口功能,将计划任务端口设置为隐藏,以防止其他人发现。
- 使用 Linux 的隐藏网络功能,将计划任务网络设置为隐藏,以防止其他人发现。
- 使用 Linux 的隐藏文件系统功能,将计划任务文件系统设置为隐藏,以防止其他人发现。
Redis 未授权常见 getshell 的几种方式?
- 利用 Redis 未授权访问漏洞,通过写入 webshell 的方式获取远程控制;
- 将 webshell 文件上传到 Redis 服务器,然后在 Redis 中读取文件内容;
- 利用 Redis 未授权访问漏洞,通过在 Redis 服务器执行任意命令,获取远程控制;
- 利用 Redis 未授权访问漏洞,通过将木马文件作为字符串存入 Redis,然后在 Redis 中调用木马,获取远程控制。
- 如果 Redis 启用了 RDB 模式备份功能,可以将 webshell 文件隐藏在备份文件中,然后在 Redis 中读取文件内容;
- 如果 Redis 启用了 AOF 模式持久化功能,可以将 webshell 文件作为执行命令写入 AOF 文件,然后在 Redis 中读取文件内容;
- 如果 Redis 启用了主从结构,可以将 webshell 文件作为数据传输到从库,然后在 Redis 中读取文件内容。
- 如果 Redis 开放了允许客户端执行脚本,可以将 webshell 文件作为脚本传输到 Redis,然后在 Redis 中执行脚本,获取远程控制。
- 利用 Redis 消息队列功能,将 webshell 文件作为消息发送到 Redis,然后在 Redis 中读取文件内容。
- 如果 Redis 开放了允许客户端使用 EVAL 命令,可以将 webshell 文件作为 LUA 脚本发送到 Redis,执行脚本获取远程控制。
JWT 的攻击手法? (头部、负载、签名)
- 利用 JWT 覆盖攻击:利用另一个 JWT 覆盖前一个 JWT,使会话维持在老 JWT 中,而服务器端无法感知到这种覆盖行为,从而给攻击者制造可行性漏洞。
- 利用 JWT 加密攻击:由于 JWT 明文保存,因此攻击者可以尝试破解 JWT,盗用令牌,解码并发送请求以访问受保护的资源。
- 利用 JWT 篡改攻击:篡改 JWT 中的负荷或头部信息,从而改变请求的内容或范围。
- 利用 JWT 负载更新攻击:攻击者通过添加额外的负载到 JWT 中更新它的权限,进而获得无权访问的资源。
- 利用 JWT 签名攻击:攻击者可以利用恶意的签名以未经授权的方式令 JWT 可信任,并使用更改的 JWT 来访问应用程序中的保护资源。
- 尝试暴力破解:攻击者可以尝试多次猜测和破解 JWT 的密钥,以获取会话令牌。
- 生存时间攻击:攻击者可以制造一个 JWT,使其拥有比实际权限过期时间更长的生存时间。
- 利用 JWT 缓存攻击:JWT 可能会被缓存在代理服务器或浏览器中,因此攻击者可以从其中获取有效的 JWT。
- 利用 JWT 重放攻击:攻击者可以拦截受保护资源的请求,获取 JWT 并重新发送它来获取访问权限。
- 利用 JWT 中绝对路径攻击:因为 JWT 可能使用绝对路径而不是相对路径,因此攻击者可以利用这种绝对路径获取更高的权限。
JAVA 中间件漏洞举几个例子?
1、Apache Tomcat Cipher Transformation Connection 配置不当漏洞(CVE-2015-5351)
2、Apache Tomcat 反射性文件上传漏洞(CVE-2017-12615)
3、Apache Tomcat HttpOnly 标记缺失漏洞(CVE-2008-5515)
4、Apache ActiveMQ 反射性命令执行漏洞(CVE-2015-1830)
5、Apache Struts2 无效转义漏洞(CVE-2016-3087)
6、Apache HTTP Server 协议处理不当漏洞(CVE-2016-8743)
7、IBM WebSphere Application Server LDAP 注入漏洞(CVE-2016-9458)
8、IBM WebSphere Application Server XFF 头信息泄露漏洞(CVE-2015-2080)
9、IBM WebSphere Application Server 参数注入漏洞(CVE-2017-1393)
10、Oracle WebLogic Server 弱口令漏洞(CVE-2018-2628)
DNS 外带可以用在哪些漏洞?
1、SQL 注入:使用 DNS 外带,攻击者可以读取受保护的服务器上的数据库文件,从而检索有意义的信息。
2、跨站脚本攻击:攻击者可以利用 DNS 外带,在受害者的浏览器端安装恶意脚本来获得帐号信息。
3、XML 外部实体攻击:通过 DNS 外带,攻击者可以对受害者的系统进行恶意代码注入,从而让攻击者获得更多权限。
4、DNS 欺骗/劫持:通过利用 DNS 外带,攻击者可以劫持目标系统的 DNS 解析,将请求重定向到恶意服务器。
5、XSS 攻击:攻击者可以利用 DNS 外带,将恶意的脚本注入到目标网站中,实施 XSS 攻击。
6、拒绝服务攻击:攻击者可以利用 DNS 外带来进行拒绝服务攻击,从而对目标系统造成压力。
中间件漏洞总结?
- 路由器及路由器 Web 管理界面弱口令漏洞:攻击者可通过暴力破解路由器的 web 管理接口登录密码,窃取路由器的敏感信息;
- 系统口令管理漏洞:系统管理员使用默认口令、易猜测口令,使攻击者可以更容易获取系统敏感信息;
- 中间件配置不当漏洞:系统管理员可能会将一些敏感信息,如接口配置、接口请求和传输加密等,配置不当,导致攻击者可以接触到这些敏感信息;
- 中间件远程服务漏洞:系统管理员可能已开放远程服务,攻击者可以攻击服务,进行暴力破解等;
- 中间件反序列化漏洞:在处理反序列化数据时,可能会忽略许多校验步骤,导致攻击者可以构造出恶意的代码;
- 中间件 XML 外部实体攻击漏洞:攻击者可以利用 XML 外部实体攻击,通过 XML 解析器对敏感信息进行访问;
- 中间件在线应用漏洞:攻击者可能会攻击在线应用,窃取中间件相关敏感信息;
- 访问控制不当漏洞:管理员可能会忽略对资源访问的限制,导致攻击者可以访问系统敏感信息;
- 中间件不安全编码漏洞:管理员可能会忽略将敏感信息进行加密,导致攻击者可以接触到系统敏感信息;
- 中间件调试漏洞:系统管理员可能会不当启用系统调试功能,导致攻击者获取中间件系统信息;
谈一谈 Windows 系统与 Linux 系统提权的思路?
Windows 系统提权的思路:
1、利用漏洞:以权限最高的管理员身份登录系统,搜集、利用 Windows 系统存在的漏洞(包括本地漏洞和远程漏洞)进行提权。
2、利用工具:通过利用一些提权工具(比如 FuzzySecurity 的提权工具),在有权限的状态下也可以对系统进行提权。
Linux 系统提权的思路:
1、利用漏洞:类似于 Windows 系统,利用存在的漏洞提权,但是 Linux 系统的漏洞更为严重,更容易提权。
2、利用工具:类似于 Windows 系统,可以使用脚本和业界发布的各种提权工具,在有权限的状态下也可以对系统进行提权。
python 有哪些框架,其中出现过哪些漏洞
Python 框架有:Django、Flask、Tornado、Pyramid、Web2py、Bottle、Hug、Cherrypy 等。
出现过的漏洞有:Django 中的 XML 实体注入漏洞、Flask 中的 Jinja2 模板注入漏洞、Pyramid 中的 XML 实体注入漏洞、Web2py 中的 SSL 加密数据泄露漏洞、Bottle 中的远程代码执行漏洞、Hug 中的路径遍历漏洞等。
小程序的渗透和普通渗透的差异
- 小程序渗透的特点是以应用层渗透为主,包括接口安全检测、登录验证、权限控制等,而普通渗透需要依托系统架构,从底层协议层渗透,包括端口拦截、补丁攻击、Web 安全检测、数据库审计等。
- 小程序渗透的目的是检测小程序的安全漏洞,以及检测小程序的安全性,而普通渗透的目的是检测系统的安全漏洞,检测系统的行为审计,并检测系统的安全性。
- 小程序渗透技术更专注于在应用层进行安全检测,而普通渗透技术主要集中于网络层及以上层的安全检测。
app 本身的漏洞测试四大组件
1、编译和构建工具:编译和构建工具可以帮助开发人员在特定的硬件平台上编译和构建 android app,这些工具可以在源代码中发现潜在的漏洞,例如:检查未使用的代码,未释放的资源,或者在非安全环境中使用的硬编码值。
2、应用脱壳:应用脱壳是一种静态分析技术,用于分析应用程序的源代码。它可以检测错误的输入校验,不正确的错误处理,使用未初始化的变量或者其他一些潜在问题。
3、模拟器:模拟器是一种动态分析技术,可以模拟应用程序在真实设备上的行为,并检测其中的异常情况,比如错误的内存访问,不正确的异常处理等。
4、测试框架:测试框架是一种结合了静态分析和动态分析的测试方法。它可以让开发者在实施测试前检查应用程序的代码,并可以帮助测试人员运行应用程序,以便检测其中的漏洞。
IDS/IPS 防护原理及绕过思路
IDS/IPS 防护主要采用常见的静态检测(静态分析)、动态检测和行为分析相结合的方式进行防护。
静态检测,关注的是恶意行为的特征,如标识性特征、连接特征、结构特征等,通过分析数据包,确认是否存在特定病毒特征,从而检测出病毒攻击。
动态检测,通过模拟系统环境或模拟病毒运行,观察病毒是否具有攻击性行为,从而判断病毒的攻击性。
行为分析,通过对网络行为的特征分析,判断是否存在攻击行为,从而判断是否存在病毒攻击。
绕过 IDS/IPS 防护的方式:
- 网络伪装:利用攻击者系统周围的流量作为网络基础设施,改变源地址或目的地址,以此为手段,绕过 IDS/IPS 系统;
- 增加数据包长度:攻击者可以利用增大数据包长度,将数据分片后传输,其中恶意数据包可以隐藏在其他数据包中,从而绕过 IDS/IPS 系统的检测;
- 使用特殊字符:攻击者可以使用特殊字符,将恶意数据包制作成不常见的特征,以此为手段,绕过 IDS/IPS 系统;
- 加密传输:攻击者可以利用加密传输,使恶意数据包在传输过程中不会被 IDS/IPS 系统识别出特征,从而绕过检测和阻断。
json 的 csrf 的利用
CSRF 是跨站请求伪造,是一种攻击,它利用用户已经登录一个网站的信任,诱使用户执行其不希望执行的操作。JSON 程序也可以被 CSRF 攻击。受害者在不知情的情况下,随意访问了攻击者准备好的 JSON 网页,从而将受害者的合法操作,变成了攻击者的非法操作。
要防止跨站请求伪造攻击,可以采取一些防御措施,比如在每个 JSON 请求中添加一个 CSRF 令牌,在每个请求头中添加一个 Referer 头来确认请求发起者的网站,在 JSON 客户端中添加一个安全令牌,启用 HTTPOnly 来防止 JSON 反序列化注入,编写坚固的代码来限制 JSON 请求的数量,以及启用内网环境的安全控制等。
json 格式的数据包可以测哪些漏洞
JSON 格式数据包可以测试服务端脚本注入漏洞、SQL 注入漏洞、XML 外部实体注入漏洞、XXE 漏洞、PATH 注入漏洞、反射性 XSS 漏洞、存储性 XSS 漏洞等多个漏洞。
内网服务器,如何进行信息收集?
- 通过搜索引擎进行信息收集:使用 Google,Bing 等搜索引擎可以搜索到有关内网服务器的信息;
- 通过 Whois 查询进行信息收集:Whois 查询可以查询出有关内网服务器的 IP 地址,所有者信息等;
- 利用 Netcraft 等网络调查公司的网站进行信息收集:Netcraft 等网络调查公司的网站可以查询出有关内网服务器的 IP 地址,操作系统版本,服务器类型等;
- 通过端口扫描程序进行信息收集:端口扫描程序可以查询出内网服务器的打开的端口,确定服务器运行的程序;
- 通过漏洞扫描程序进行信息收集:漏洞扫描程序可以查询内网服务器是否存在安全漏洞,确定服务器的漏洞情况;
- 通过抓包工具进行信息收集:抓包工具可以抓取服务器的网络数据包,查看服务器的运行情况。
如果拿下了内网边界层的某一个阿机器,如何对内网其他进行探测?
- 首先,应该分析获取到的内网机器,获取机器上的操作系统和硬件配置,以及安装的软件,以最大限度地发挥其作为内网攻击者的优势。
- 然后,应运行一些工具来发现周围的主机,启用内网中所有可用的端口,并查看他们提供的服务,以及对其他服务的响应。
- 通过扫描可用的 IP 地址空间,可以识别出另一台计算机的存在,并且可以判断这台机器的类型。
- 尝试连接到内网中的其他计算机,以及尝试登录内网中其他计算机的系统上的用户帐户。
- 尝试执行一些像病毒和木马程序这样的恶意软件,以便攻击内网中的其他计算机。
- 在目标内网中发起一系列攻击,以获取有用的信息,如可以用来访问系统或网络的凭据,或用于提升权限的突破点。
- 最后,应该尝试利用获取的信息来攻击内网中的其他计算机,以获取有效的信息和权限。
