2024-11-19 11:39:10 +08:00
|
|
|
|
# Web安全、渗透测试面试题
|
2024-11-18 17:06:20 +08:00
|
|
|
|
|
2024-11-19 11:39:10 +08:00
|
|
|
|
#### 1、CSRF、XSS、XXE
|
2024-11-18 17:06:20 +08:00
|
|
|
|
|
|
|
|
|
- XSS:跨站脚本攻击,用户提交的数据中可以构造恶意代码,并且执行,从而实现窃取用户信息等攻击。
|
|
|
|
|
|
|
|
|
|
修复方式:
|
|
|
|
|
|
|
|
|
|
1. 对实体字符进行转义
|
|
|
|
|
2. 使用HTTP Only来禁止JavaScript读取cookie值
|
|
|
|
|
3. 输入时校验、浏览器与Web应用端采用相同的字符编码
|
|
|
|
|
|
2024-11-19 11:39:10 +08:00
|
|
|
|
- CSRF:跨站请求伪造攻击
|
|
|
|
|
|
|
|
|
|
修复方式:筛选出需要防范CSRF的页面,多然后嵌入Token、再次输入密码、校验referer。
|
|
|
|
|
|
|
|
|
|
- XXE:XML外部实体注入攻击,敏感文件读取
|
|
|
|
|
|
|
|
|
|
修复方式:XML解析库在调用时严格禁止对外部实体的解析。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 2、Log4Shell漏洞
|
|
|
|
|
|
|
|
|
|
漏洞编号是 CVE-2021-44228。这个编号用于标识Apache Log4j2中的Log4Shell漏洞,该漏洞允许远程代码执行(RCE),从而对系统安全构成严重威胁。
|
|
|
|
|
|
|
|
|
|
解决Apache Log4j2中的Log4Shell漏洞(CVE-2021-44228)的方法如下:
|
|
|
|
|
|
|
|
|
|
1. **升级Log4j库**:
|
|
|
|
|
|
|
|
|
|
- 对于Log4j 2.x版本,升级到2.15.0或更高版本(注意,2.15.0版本之后又发现了新的漏洞,建议直接升级到最新版本)。
|
|
|
|
|
- 对于无法立即升级的情况,可以应用官方发布的补丁。
|
|
|
|
|
|
|
|
|
|
2. **移除JndiLookup类**:
|
|
|
|
|
|
|
|
|
|
- 如果无法立即升级,可以通过删除或重命名Log4j2的JndiLookup类来缓解风险。具体操作是找到`log4j-core` JAR文件中的`org/apache/logging/log4j/core/lookup/JndiLookup.class`文件,并将其删除或重命名。
|
|
|
|
|
|
|
|
|
|
3. **设置系统属性**:
|
|
|
|
|
|
|
|
|
|
- 通过设置系统属性来禁用Log4j2的JNDI功能。可以在Java命令行中添加以下参数:
|
|
|
|
|
|
|
|
|
|
复制
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
-Dlog4j2.formatMsgNoLookups=true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 或者设置环境变量:
|
|
|
|
|
|
|
|
|
|
复制
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LOG4J_FORMAT_MSG_NO_LOOKUPS=true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. **限制JNDI访问**:
|
|
|
|
|
|
|
|
|
|
- 在Java环境中,可以通过设置安全策略来限制JNDI的远程访问。
|
|
|
|
|
|
|
|
|
|
5. **更新防火墙规则**:
|
|
|
|
|
|
|
|
|
|
- 在网络层面,可以通过防火墙规则来阻止恶意的JNDI LDAP请求。
|
|
|
|
|
|
|
|
|
|
6. **监控和审计**:
|
|
|
|
|
|
|
|
|
|
- 加强对日志和系统的监控,以便及时发现异常行为。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 3、鱼叉式攻击和水坑攻击?
|
|
|
|
|
|
|
|
|
|
鱼叉攻击:指利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马
|
|
|
|
|
|
|
|
|
|
水坑攻击:分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,将网站攻破并植入恶意程序,等待目标访问
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 4、中间人攻击
|
|
|
|
|
|
|
|
|
|
原理:
|
|
|
|
|
|
|
|
|
|
> 在同一个局域网中,通过拦截正常的网络通信数据,并进行数据篡改和嗅探
|
|
|
|
|
|
|
|
|
|
防御:
|
|
|
|
|
|
|
|
|
|
> 在主机绑定网关MAC与IP地址为静态 在网关绑定主机MAC与IP地址 使用ARP防火墙
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 5、TCP三次握手过程?
|
|
|
|
|
|
|
|
|
|
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认
|
|
|
|
|
|
|
|
|
|
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态
|
|
|
|
|
|
|
|
|
|
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 6、七层模型
|
|
|
|
|
|
|
|
|
|
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 7、对于云安全的理解
|
|
|
|
|
|
|
|
|
|
融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,传送到Server端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 8、了解过websocket吗?
|
|
|
|
|
|
|
|
|
|
WebSocket是一种在单个TCP连接上进行全双工通信的协议,最大特点是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 9、DDOS
|
|
|
|
|
|
|
|
|
|
分布式拒绝服务攻击,利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应
|
|
|
|
|
|
|
|
|
|
主要方式:
|
|
|
|
|
|
|
|
|
|
- SYN Flood
|
|
|
|
|
- UDP Flood
|
|
|
|
|
- ICMP Flood
|
|
|
|
|
- Connection Flood
|
|
|
|
|
- HTTP Get
|
|
|
|
|
- UDP DNS Query Flood
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 10、CC攻击
|
|
|
|
|
|
|
|
|
|
模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费,CPU长时间处于100%,网络拥塞
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 11、DDOS与CC攻击两者区别
|
|
|
|
|
|
|
|
|
|
- CC攻击网页,DDOS攻击服务器,更难防御
|
|
|
|
|
- CC门槛较低,DDOS需要大量服务器
|
|
|
|
|
- CC持续时间长,DDOS产生的影响大
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 12、land攻击是什么
|
|
|
|
|
|
|
|
|
|
局域网拒绝服务攻击,DDOS攻击的一种,通过发送精心构造的、具有相同源地址和目标地址的欺骗数据包,致使缺乏相应防护机制的目标设备瘫痪
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 13、你会如何进行信息收集?
|
|
|
|
|
|
|
|
|
|
服务器信息:ip、中间件、操作系统
|
|
|
|
|
|
|
|
|
|
域名whois、ipwhois、网段归属
|
|
|
|
|
|
|
|
|
|
子域名探测
|
|
|
|
|
|
|
|
|
|
网站目录扫描、接口信息扫描
|
|
|
|
|
|
|
|
|
|
端口扫描
|
|
|
|
|
|
|
|
|
|
各大引擎搜索相关信息
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 14、什么是CRLF注入攻击?
|
|
|
|
|
|
|
|
|
|
通过“回车”和“换行”字符注入HTTP流,实现网站篡改、跨站脚本、劫持等。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 15、防止XSS,前端后端两个角度?
|
|
|
|
|
|
|
|
|
|
前端:
|
|
|
|
|
|
|
|
|
|
> 用户输入特殊字符过滤转义为html实体 用户输出编码
|
|
|
|
|
|
|
|
|
|
后端:
|
|
|
|
|
|
|
|
|
|
> 实体化编码 函数过滤 限制字符长度
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|