网安面试三十道题(持续更新)

31,红队攻击和渗透测试最主要的区别是什么

## 红队的工作也与业界熟知的渗透测试有所区别。

## 渗透测试通常是按照规范技术流程对目标系统进行的安全性测试;点到即止

## 而红队攻击一般只限定攻击范围和攻击时段,对具体的攻击方法则没有太多限制。不择手段

## 渗透测试过程一般只要验证漏洞的存在即可,而红队攻击则要求实际获取系统权限或系统数据。

## 此外,渗透测试一般都会明确要求禁止使用社工手段(通过对人的诱导、欺骗等方法完成攻击),而红队

则可以在一定范围内使用社工手段。

32,护网 

分析思路:

## 查看告警详情,查看请求头、请求体内容,定位到触发告警攻击动作的payload,分析攻击动作是什么,

读取文件、打印输出内容、写入文件和尝试下载文件、执行函数或命令等,然后分析告警响应头、响应体、网

络行为是否有动作预期的结果,如符合预期则攻击成功。

常见漏洞:

## 弱口令、命令执行、反序列化、任意文件读取、sql注入等

红队攻击

蓝队防御:

## 蓝队分;监控组、事件分析、溯源、处置组

33 ,如何判断自己被getshell:

(1)webshell

## 查看web日志,分析攻击流量

## 用工具扫描webshell

## 排查网站目录,查看最近更改的文件

(2)主机shell

## 查看未知端口,未知进程

## 排查恶意流量,锁定感染进程

## 可以看安全设备

 34,怎么判断误报

## 查看请求头UA,XFF,URL,referer是否正常

## 内网ip一般是误报

## 分析响应体信息是否正常,有没有攻击的特征代码

35 ,信息收集用过哪些工具

ping/超级ping/nslookup

/黑暗搜索引擎(fofa\shodan\钟馗之眼)

/域名收集工具--layzer域名挖掘,jsFinder工具

/查看备案号的网站/ssl证书查询/威胁情报微步、绿盟、奇安信

/目录扫描工具--7kb,破壳,dirsearch/github/码云

/指纹识别工具--潮汐,云悉,wapperlazer/云盘/

 36,自己用什么搭建过网站

apache:部署Apache的页面

nginx:discuz,wordpress,转盘抽奖页面,

iis:Windows上的asp\aspx网页

phpstudy:皮卡丘、自己写的页面,discuz,可道云的网盘系统

 37,说一下钓鱼,原理,怎么实施

CSRF一些不知名的链接,邮件,CS生成的免杀程序,一些自解压程序,通过用户的不经意点击,使攻击者获取

到了他所需要的一些信息,造成用户的信息泄露

 38,linux给文件权限的命令

chmod  ## 给文件读写执行权限

chown  ## 修改文件的拥有者

39 ,检查某端口是否开放

netstat -lntup |grep 3306(端口号)

 40,tcp的三次握手过程

(1)首先客户端向服务端发送一段tcp报文,标记为syn,建立新的连接,生成随机序列号seq=x。 syn

 seq=x

(2)服务端收到来自客户端的tcp报文之后,并返回一段TCP报文,其中:标志位为SYN和ACK,就是告诉客户端,服务器收到了你的数据;随机序列号为seq=y,回应序列号为ack=x+1,表示收到客户端的序号Seq并将其值加1作为自己确认号Ack的值 。syn、ack   seq=y   ack=x+1

(3)客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的,并生成最后一段报文,标志位为ack,返回序列号为seq=x+1,确认号为ack=y+1。 ack  seq=x+1 ack=y+1

41 ,tcp协议

## TCP和UDP都是传输层协议

## TCP 是一种面向有连接的传输层协议,能够对自己提供的连接实施控制。适用于要求可靠传输的应用,例

如文件传输。面向字节流,传输慢  (可靠性,实时,效率低)

## UDP 是一种面向无连接的传输层协议,不会对自己提供的连接实施控制。适用于实时应用,例如:IP电

话、视频会议、直播等。以报文的方式传输,效率高 (不可靠,效率低)

 42,tcpdump

## TCPDump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端

口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息

 43,四次挥手

1、第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于FIN_WAIT1状态。

2、第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 + 1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT状态。

3、第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。

4、第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 + 1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的

ACK 报文之后才会进入 CLOSED 状态

5、服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。

 44,osi七层协议

物理层  信号转换的问题

数据链路层  Mac地址

网络层 ip地址

传输层 tcp/udp协议

会话层  会话层负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接

表达层  表达层把数据转换为能与接收者的系统格式兼容并适合传输的格式。

应用层 协议(http,https)

 45,ddos攻击

## DDOS攻击是什么,怎么防,做过DDOS攻击没

## 分布式拒绝式服务攻击,发生在三次握手过程中,通过发起大量的请求(典型的就是大量的syn包、fin包

等),使得服务器夯住或者瘫痪

## 防止DDoS攻击1、硬扛,靠自身大带宽的硬件硬扛,抗不过就没办法了。2、购买安全产品,防御攻击,和

卖保险的道理类似。3、已经打过来了,拔网线。

## 如何检测是DDoS攻击:bp抓包分析、冰盾等ddos攻击监控器或者防火墙、看任务管理器进程 CPU占用、

带宽占用、查看网卡接包与发送情况

 46,常见端口有哪些

#常用端口

ftp 21

ssh  22

telnet 23 TELNET 是一个简单的远程终端协议(又称终端仿真协议),也是互联网的正式标准。

smtp 25  简单邮件传输协议

dns(udp)  53

http/nginx 80

samba  139  445 共享文件夹

ntp 123  网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议,用来

使客户端和服务器之间进行时钟同步,提供高精准度的时间校正。

mysql 3306

pgsql 5432

Apache 80

VNC  5900 远程桌面控制软件,检查弱口令

tomcat/jboss(java)  8080

weblogic  7001

mssql  1433

oracle 1521

https  443

dhcp 68 67

windows远程登录  3389

redis的默认端口是**6379**

MongoDB  27017/27018

47 ,常见的状态码

200 OK

206 OK 文件拆分上传

301 永久跳转 缓存到浏览器

302 临时跳转 不缓存到浏览器 请求服务器

304 读取硬盘缓存

400 请求无效

401 身份认证没有通过(账号密码错误)

403 网站没有首页,deny,权限不够↓(没权限)Permission denied 权限拒绝

404 这个文件找不到 路径写错

413 上传文件过大

500 代码执行不下去了--服务端的代码问题

502 错误的网关--负载均衡的服务器都挂了 nginx抛给PHP处理而PHP没有启动

504 后端服务超时

 48,HTTP和HTTPS有什么区别?

## http是超文本传输协议,信息以明文进行传输

## HTTPS需要进行SSL加密传输协议,HTTPS需要获得CA的证书,通常需要付费,免费的较少

 49,reverse_tcp 和 bind_tcp 的区别

1)reverse_tcp

如果目标机器能够站出来与你的机器建立连接就可以使用反向连接。 **木马会主动连接目标服务器**

2)bind_tcp

如果目标属于深层网络,不能直接连通外网,也不能通过其他机器进行连接则可以使用正向连接。**木马会监

听本地的端口**

 50,常见的请求头信息

get:获取一个资源

POST:方法的主要作用是执行操作

Referer:表示发出请求的原始URL

User-Agent:消息头提供与浏览器或其他生成请求的客户端软件有关的信息

Host:代表访问别人域名和ip

Cookie:消息头用于提交服务器向客户端发布的其他参数

Origin:跨域Ajax求中,用于指示提出请求的域

Access-Control-Allow-Origin:这个消息头用于指示可否通过跨域Ajax请求获取资源

Location:这个消息头用于在重定向响应

secure:如果设置这个属性.则仅在HTTPS请求中提交cookie

HttpOnly:如果设置这个属性,将无法通过客户端JavaScript直接访问cookie

X-Forwarded-For:伪造IP地址,,,主要是为了让 Web 服务器获取访问用户的真实 IP 地址,但是这个IP却未必是真实的,

51,怎么安装的nginx

比如centos7的,使用epel源安装

yum install epel-release -y

yum install nginx -y

systemctl start nginx.service

systemctl enable nginx.service

 52,cookie session区别

(1)数据存放位置不同:

cookie数据存放在客户的浏览器上,session数据放在服务器上。

(2)安全程度不同:

cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

(3)性能使用程度不同:

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

(4)数据存储大小不同:

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,而session则存储与服务端,浏览器对其没有限制

 53,token令牌

## csrftoken:随机字符串,进行csrf攻击防范的

## jwt:身份认证的token,起到的作用和cookie是差不多的,只是生成和认证阶段的机制不同。只在服务

端保存一个secret_key密钥字符串,通过某种算法结合密钥进行加密,生成一个随机字符串,就是token

值,返回给客户端,客户端再发送请求的时候携带上token,后台通过计算来进行身份认证,认证前后都不需

要存储数据,所以效率很高,一般用在API接口认证中。

## token的安全问题:token重放攻击、token有效性不能太久(一般1小时左右)、关闭浏览器要让token失

 54,mysql数据库5.0和5.0后的区别

5.0之后有一个information_sechma系统数据库,里面存在着一些重要数据

## information_schema下面又包含了这几张表:schemata、tables、columns。这三张表依次分别存放着字段:(schema_name)、(table_name、table_schema)、(table_schema、table_name、column_name),其次就是5.0以上都是多用户,5.0以下是单用户。

schemata、tables、columns三张表介绍:

  1、SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。

  2、TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

  3、COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns  from schemaname.tablename的结果取之

 55,mysql和sqlserver 有什么相似

不同的数据库sql语句写法不同

默认端口号不同

通过不同数据库的特性来判断:特定的库名表名,不同的数据库内置的库是不同的

 56,给用户授权

grant all(权限名称) on blog.*(库名.表名) to blog@'192.168.56.%'(用户名@允许登录的主机IP);

57,GBK 和 UTF-8 编码的区别?

## GBK是中文编码字符集,是GB2312的升级版,主要是为了存储中文字符,存储单个中文和英文字母,都是固定的2个字节长度

## utf-8他是一种全球通用的字符集,可变长度,长度在1-4个字符,英文字母一个字节存储,中文是三个字节存储,支持所有国家的语言,市面上utf-8编码的项目居多

 58,跨域的五个标签(前端)?

iframe标签的src属性、img标签的src属性、link标签的href属性、a标签的href属性、script标签的src属性

 59,同源和跨域

同源:协议、域名、端口号相同的网址叫做同源

同源机制:是浏览器的一种安全机制,防止恶意网站非法窃取其他网站的数据,非同源的网址不能直接交互数据,确切的说是请求可以发出去,但是响应的数据会被浏览器拦截

跨域:绕过浏览器的同源机制叫做跨域,跨域的目的是,如果两个非同源的网站互相有交互数据的需求,那么就要跨域,跨域是可以控制的

跨域手法:

1、五大跨域标签,如上

2、corS跨域,CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing),简单来说就是响应数据的一方,在响应数据的时候,添加一个响应头键值对,比如针对简单请求添加这个键值对:Access-Control-Allow-Origin: http://www.jaden.com,针对复杂请求就需要额外添加其他几个键值对了。

3、JSONP跨域:前端js基于某些标签的特性,比如script的src属性来发送get请求,请求数据中涵盖一个callback=func1回调函数,后台设置一个func1函数来进行数据的返回。

60,代码审计 高危函数涉及到哪些

命令执行

     system()

     eval()

     exec()

     shell_exec()等

文件包含

    include

    include_once

    require等

sql注入

    $_GET

    $_POST

    $_REQUEST

等方法的下文有没有进行数据过滤

你可能感兴趣的:(安全,web安全,网络,面试)