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