网络安全面试题

1.SYN攻击原理:
SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server则回复确认包,并等待Client确认,由于源地址不存在,
因此Server需要不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络拥塞甚至系统瘫痪。
SYN:同步序列编号,是TCP/IP建立连接时使用的握手信号
ACK 即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符

常见的防御 SYN 攻击的方法有如下几种:
缩短超时(SYN Timeout)时间
增加最大半连接数
过滤网关防护
SYN cookies技术

2.同源策略
同源策略是指在Web浏览器中,允许某个网页脚本访问另一个网页的数据,但前提是这两个网页必须有相同的URI、主机名和端口号,这两个网页就被认定为具有相同来源。
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

3.对称加密和非对称加密
对称加密:对称加密指的就是加密和解密使用同一个秘钥。对称加密只有一个秘钥,作为私钥。
非对称加密指的是:加密和解密使用不同的秘钥,一把是公钥,另一把是私钥。公钥加密的信息,只有私钥才能解密

4.xss有cookie一定可以无用户名密码登录吗?
基本可以。因为把cookie的值给浏览器,浏览器去访问页面会用已有的cookie,如果cookie有效,就会直接登录

5.如何防范 XSS 攻击
1)过滤输入的数据。
2)对输出的数据进行相应的编码转换
3)给关键cookie使用http-only

6.什么是DDOS攻击?
分布式拒绝服务(DDoS):指攻击者利用大量“肉鸡”对目标网站在较短的时间内发起大量请求,大规模消耗网络带宽

7.什么是cc攻击
CC主要是用来攻击页面的,就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作的页面,消耗的是服务器的CPU资源

8.Https的作用:
建立一个信息安全通道,来保证数据传输的安全;
身份认证确认网站的真实性
防止内容被第三方冒充或者篡改,数据完整性

9.HTTPS和HTTP的区别:
1.HTTP 协议传输的数据都是未加密的,也就是明文的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 http 协议安全。
2. https 协议需要到ca 申请证书
3用的端口也不一样,前者是 80,后者是 443

10.dll文件是什么意思,有什么用?
DLL文件,即动态链接库,也被人称为应用程序拓展
作用:就是把代码编译成分开的文件,这有助于促进代码重用和内存的有效使用

11.dll劫持:
如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,
那么Windows会尝试去按照顺序搜索这些特定目录来查找这个DLL,
如果攻击者能够将恶意的DLL放在优先于正常DLL所在的目录,那么就能够欺骗系统去加载恶意的DLL

12.如何防止DLL劫持?
指定系统DLL的位置,改变加载系统DLL的目录为系统目录

13.Web服务器被入侵后,怎样进行排查?
1.1 检查系统账号安全
1、查看服务器是否有弱口令,远程管理端口是否对公网开放。
2、查看服务器是否存在可疑账号、新增账号。
3. 查看服务器是否存在隐藏账号、克隆账号
4. 结合日志,查看管理员登录时间、用户名是否存在异常
1.2 检查异常端口、进程
1.3 检查启动项、计划任务、服务
1.4 检查系统相关信息
1.5 杀毒软件查杀
1.6 日志分析

14.什么是SQL注入攻击?
SQL注入是指web应用程序对用户输入数据的合法性判断不严格,攻击者可以构造sql语句带入数据库来实现对数据库的操作

15.什么是XSS攻击跨站点脚本攻击?
指攻击者通过篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式

16.什么是CSRF攻击?
CSRF攻击(跨站请求伪造):攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求

18.如何防范CSRF攻击?
1.验证reference,如果referer是以自己的网站开头的域名,说明该请求来自网站自己,是合法的
2.验证token 机制。在 HTTP 请求中进行 token 验证,如果请求中没有 token 或者 token 内容不正确,则认为 CSRF 攻击而拒绝该请求
3.设置验证码

19.什么是文件上传漏洞?
文件上传漏洞,指的是用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的漏洞

20.如何防范文件上传漏洞?
文件上传的目录设置为不可执行。
1)判断文件类型。在判断文件类型的时候,可以结合使用MIMEType,后缀检查等方式。因为攻击者可以将可执行文件的后缀名称改为图片或其他后缀类型,诱导用户执行。
2)对上传的文件类型进行白名单校验,
3)上传的文件需要进行重新命名,使攻击者无法猜想上传文件的访问路径,同时向shell.php.rar.ara这种文件,因为重命名而无法成功实施攻击。
4)限制上传文件的大小。
5)单独设置文件服务器的域名

23.拿到一个待检测的站,你觉得应该先做什么?
a、信息收集

  1. 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)
  2. 网站指纹识别(包括,cms,cdn,证书等) dns记录
  3. whois信息:注册商、注册人、邮件、DNS解析服务器、注册人联系电话
  4. 子域名收集,旁站,C段等
  5. 网站架构:间件,脚本语言,数据库,服务器,web容器
  6. 敏感文件
  7. 传输协议,通用漏洞,exp,github源码等

2、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的 cms 或
者其他漏洞。

3、查看服务器操作系统版本,web 中间件,看看是否存在已知的漏洞,比如 IIS,APACHE,NGINX 的
解析漏洞

4、查看 IP,进行 IP 地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh 弱口令等。

5、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如 php 探针

b、漏洞扫描
开始检测漏洞,如 XSS,XSRF,sql 注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,
下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等

c、验证漏洞
利用以上的方式拿到 webshell,或者其他权限

d、权限提升
提权服务器,比如 windows 下 mysql 的 udf 提权,serv-u 提权,windows 低版本的漏洞,如 iis6,pr,
巴西烤肉,linux 脏牛漏洞,linux 内核版本漏洞提权,linux 下的 mysql system 提权以及 oracle 低权
限提权

e、日志清理

f、总结报告及修复方案

24.判断出网站的CMS对渗透有什么意义?
查找网上已曝光的程序漏洞。
如果开源,还能下载相对应的源码进行代码审计。

25.常见的网站服务器容器。
IIS、Apache、nginx、Tomcat

26.mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?

27.为何一个mysql数据库的站,只有一个80端口开放?
站库分离:
数据库在内网,你处理的数据先传进主服务器,在传进数据服务器,主服务器和数据服务器在内网,主服务器接通外网,所以扫不到属于正常。
或者数据库和主服务器都在外网,一般数据库和网页都在不同的服务器,主服务器开启防火墙只允许数据库访问某端口,也会扫不到

28.3389无法连接的几种情况?(远程桌面的服务端口)
没开放3389端口
端口被修改
防护拦截
处于内网(需进行端口转发
超过了服务器最大连接数
管理员设置了权限,指定用户才能通过3389端口进行远程桌面访问

29.如何突破注入时字符被转义?
宽字符注入
hex编码绕过

30.在某后台新闻编辑界面看到编辑器,应该先做什么?
查看编辑器的名称版本,然后搜索公开的漏洞

32.安全狗会追踪变量,从而发现出是一句话木马吗?
是根据特征码.

33.提权时选择可读写目录,为何尽量不用带空格的目录?
因为exp执行多半需要空格界定参数

34.某服务器有站点A,B为何在A的后台添加test用户,访问B的后台。发现也添加上了test用户?
同数据库

35.注入时可以不使用and或or或xor,直接orderby开始注入吗?
and/or/xor,前面的1=1、1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省

36.某个防注入系统,在注入时会提示:系统检测到你有非法注入的行为。
已记录您的ipxx.xx.xx.xx时间:2016:01-23提交页面:test.asp?id=15提交内容:and1=1
如何利用这个防注入系统拿shell?
在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了,这个时候可以尝试寻找网站的配置文件直接上菜刀链接

37.上传大马后访问乱码时,有哪些解决办法?
浏览器中改编码
输入chcp 65001

38.审查上传点的元素有什么意义?
有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。

39.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
先爆破用户名,再利用被爆破出来的用户名爆破密码。其实有些站点,在登陆处也会这样提示所有和数据库有交互的地方都有可能有注入

40.目标站发现某 txt 的下载地址为 ,http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?
在 file=后面尝试输入 index.php 下载他的首页文件,然后在首页文件里继 续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址

41.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?
直接在网站二级目录/abc/下扫描敏感文件及目录

42.在有shell 的情况下,如何使用 xss 实现对目标站的长久控制?
后台登录处加一段记录登录账号密码的 js,并且判断是否登录成功,如果登录成功,就把账号密码记 录到一个生僻的路径的文件中或者直接发到自己的网站文件中。

43.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?
审查元素 把密码处的 password 属性改成 text 就明文显示了

44.在 win2003 服务器中建立一个 .zhongzi 文件夹用意何为?
隐藏文件夹,为了不让管理员发现你传上去的工具。

45.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?
有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过

46.审查元素得知网站所使用的防护软件,你觉得怎样做到的?
F12看HTML体部比如护卫神就可以在名称那看到内容

47.以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?
demo.do?DATA=AjAxNg==
DATA 有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行 base64 编码才能完成注入

48.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?

XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。
修复方式:
1)过滤输入的数据。
2)对输出的数据进行相应的编码转换
3)给关键cookie使用http-only

CSRF是跨站请求伪造攻击,攻击者会伪造一个请求(这个请求一般是一个链接URL),用户一旦点击了这个请求,整个攻击就完成了
修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer

XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,导致读取恶意文件,探测内网端口,攻击内网网站,发起DOS拒绝服务攻击,执行系统命令等
修复方式:
1.禁用外部实体
过滤用户提交的xml数据

49.CSRF、SSRF和重放攻击有什么区别?
CSRF是跨站请求伪造攻击,由客户端发起,
SSRF是服务器端请求伪造,由服务器发起
指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的

50.说出至少三种业务逻辑漏洞,以及修复方式?
1.短信邮箱轰炸漏洞:网站在对信息发送的次数、时间没有做限制,或者只在前端做了限制,导致可以无限制发送信息
修复建议:
合理配置后台短信服务器的功能,对于同一手机号码,发送次数不超过3-5次,并且可对发送的时间间隔做限制

支付订单:在支付订单时,可以篡改价格为任意金额,或者可以篡改运费或其他费用为负数,导致总金额降低
越权访问:通过越权漏洞访问他人信息或者操纵他人账号

51.sqlmap,怎么对一个注入点注入?
1)如果是get型号,直接,sqlmap-u"诸如点网址".
2)如果是post型诸如点,可以sqlmap-u"注入点网址”–data=“post的参数”
3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,然后sqlmap-r"文件地址

52.给你一个网站你是如何来渗透测试的?
在获取书面授权的前提下:
信息收集
漏洞探测
漏洞利用
内网转发
内网渗透
痕迹清除
撰写渗透测试保告

53.SQL注入的种类有哪些?
a. 按照参数可分为:数字型、字符串
b. 按照提交的方式分为:GET型、POST型、Cookie型、HTTP 头
c. 按照回显效果:基于报错、基于布尔的盲注、基于时间的盲注

55.盲注和延时注入的共同点?
都是一个字符一个字符的判断

56.如何拿一个网站的webshell?
文件上传,后台编辑模板,sql注入写文件,命令执行,代码执行,
一些已经爆出的cms漏洞,比如dedecms后台可以直接建立脚本文件,wordpress上传插件包含脚本文件zip压缩包等

57.sql注入写文件都有哪些函数?
函数load_file()
函数into outfile

58.OWASP的10个漏洞

1.注入攻击
2. 失效的身份认证
3. 敏感数据暴露
4. XML 外部实体 (XXE)
5. 失效的访问控制
6. 安全配置错误
7. 跨站脚本(XSS)
8. 不安全的反序列化
9.使用已知漏洞的组件
10. 日志记录和监控不足

59.SQL注入防护方法?
1、使用安全的API
2、对输入的特殊字符进行转义处理
3、使用白名单来规范化输入验证方法
4.使用预编译
5.安装waf

61.如何绕过waf?
①双写绕过
②大小写绕过
③编码绕过
④注释绕过
⑤使用不常用的函数
6.字符串拼接
7.空白符绕过

62.如何向服务器写入webshell?
1.上传漏洞写入
2.sql注入写入
3.远程文件包含写入
4.命令执行写

63.了解哪些漏洞?
详细回答上传文件漏洞

65.文件上传有哪些防护方式?
1.使用白名
2.修复 web 中间件的漏洞
3.禁止客户端存在可控参数
4.存放文件目录禁止脚本执行
5.限制后缀名 一定要设置图片格式 jpg、gif 、png
6.对上传的文件进行重命名随机

66.用什么扫描端口,目录
msscan
nmap
御剑
AWVS

67.如何判断注入?
加入单引号 ’提交,或者工具扫描

68.注入有防护怎么办?
尝试绕过waf

69.3306,1443,8080是什么端口?
3306 mysql的端口
1443SQL Server的端口
8080 代理端口

72网站渗透的流程
获得授权
明确目标
收集信息
漏洞扫描
验证漏洞
分析信息
渗透攻击
整理信息
编写测试报告

73mysql两种提权方式
udf提权,mof提权

74.常见加密方式?
对称性加密算法 AES DES
非对称性加密算法 RSA

75.ddos如何防护?

  1. 采用高性能的网络设备
    2、充足的网络带宽保证
    3、升级主机硬件和软件
    4、安装专业抗DDOS防火墙

76.有没有抓过包,会不会写wireshark过滤规则
wireshark简单的过滤规则过滤ip:
过滤源ip地址:ip.src1.1.1.1;,
目的ip地址:ip.dst
1.1.1.1;
过滤端口:过滤80端口:tcp.port80,源端口:tcp.srcport80,目的端口:tcp.dstport80
协议过滤:直接输入协议名即可,如http协议https,http
模式过滤:过滤get/post包http.request.mothod
"GET/POST"

77.清理日志要清理哪些?
清除登录系统信息:echo > /var/log/wtmp
清除命令历史记录:echo > /root/.bash_history
清除用户最后一次登录时间:echo > /var/log/lastlog
清除当前登录用户的信息:echo > /var/log/utmp
历史命令

78.为什么参数化查询可以防止sql注入原理:
使用参数化查询数据库服务器不会把参数的内容当作sql指令的一部分来执行,
是在数据库完成sql指令的编译后才套用参数运行

79.盲注是什么?怎么盲注?
SQL注入攻击过程中,服务器关闭了错误回显,通过服务器返回内容的变化来判断是否存在SQL注入和利用的方式。
盲注的手段有两种,一个是通过页面的返回内容是否正确(boolean-based),来验证是否存在注入。
一个是通过sql语句处理时间的不同来判断是否存在注入(time-based)

80.宽字节注入产生原理以及根本原因?
数据库编码与web应用的编码设置为不同的两个编码格式从而导致产生宽字节注入
如果数据库使用的的是GBK编码而PHP编码为UTF8就可能出现注入问题
解决方案:
解决办法统一数据库、Web应用、操作系统所使用的字符集,
避免解析产生差异,最好都设置为UTF-8,或对数据进行正确的转义

81.sql注入单引号被过滤怎么办?
对单引号进行编码
使用双引号

82.mysql的网站注入,5.0以上和5.0以下有什么区别?
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。5.0以下是多用户单操作,5.0以上是多用户多操做

83.三种类型的XSS原理:
反射型用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。需要诱使用户“点击”一个恶意链接,才能攻击成功
储存型存储型XSS会把用户输入的数据“存储”在服务器端。这种XSS具有很强的稳定性。
DOM型通过修改页面的DOM节点形成的XSS,称之为DOMBasedXSS。

84.DOMxss型和反射型xss的区别?
反射性:传入的恶意代码要经过服务器,攻击是一次性的
DOM型:不会和服务器交互,通过网页本身的JavaScript进行渲染触发的

86.token和referer做横向对比,谁安全等级高?
token安全等级更高,因为并不是任何服务器都可以取得referer,如果从HTTPS跳到HTTP,也不会发送referer。
并且FLASH一些版本中可以自定义referer。但是token的话,要保证其足够随机且不可泄露。

87.对referer的验证,从什么角度去做?如果做,怎么杜绝问题?
对header中的referer的验证,一个是空referer,一个是referer过滤或者检测不完善。
为了杜绝这种问题,在验证的白名单中,正则规则应当写完善

88.SSRF(Server-SideRequestForgery:服务器端请求伪造)?
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等

89.ssrf漏洞的修复?
防御:
限制不能访问内网ip
限制请求的端口为web端口,只允许访问http和https
屏蔽返回想信息

90.文件上传的绕过?
%00截断
0x00截断
黑名单绕过
文件拓展名绕过
.htaccess文件绕过
.user.ini.绕过 : 第一步,创建一个.user.ini文件并把它上传 第二步上传带木马的图片
配合解析漏洞
大小写绕过
空格绕过
MIME绕过 :使用bp抓包,修改上传的PHP的content-type为image/png
二次渲染
空格绕过
:: D A T A 绕过: : : DATA绕过::: DATA绕过:::DATA之后的数据当成文件流处理,不会检测后缀名
条件竞争:代码执行的过程是需要耗费时间的。如果我们能在上传的一句话被删除之前访问不就成,利用burp多线程发包,然后不断在浏览器访问我们的webshell,会有一瞬间的访问成功

92.文件包含原理:
文件包含的代码文件被写成了一个变量,且这个变量可以由前端用户传进来,这种情况下,如果没有做足够的安全考虑,则可能会引发文件包含漏洞

93.导致文件包含的函数
PHP:include(), include_once(), require(), re-quire_once(), fopen(), readfile(),
… ASP:include file, include virtual,

94.本地文件包含
能够打开并包含本地文件的漏洞,被称为本地文件包含漏洞

95金融行业常见逻辑漏洞:

数据的篡改(涉及金融数据,
由竞争条件或者设计不当引起的薅羊毛,交易/订单信息泄露,
水平越权对别人的账户查看或恶意操作,交易或业务步骤绕过

96.什么中间人攻击?
指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方 直接对话,但事实上整个会话都被攻击者完全控制
防御中间人攻击的方法:

97.ARP欺骗原理
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,
通过不断的发出伪造的ARP响应包,就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击
防护:
1.在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp-s网关IP网关MAC
2.在网关绑定主机MAC与IP地址
3.使用ARP防火墙

98.Redis未授权访问
产生原因Redis默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis服务暴露到公网上,
如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。
攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功在Redis服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器

利用条件和方法条件:
a、redis服务以root账户运行
b、redis无密码或弱密码进行认证
c、redis监听在0.0.0.0公网上
修复
密码验证
降权运行
限制ip/修改端口

99.入侵 Linux 服务器后需要清除哪些日志?
清理日志
清除登录系统信息:echo > /var/log/wtmp
清除命令历史记录:echo > /root/.bash_history
清除用户最后一次登录时间:echo > /var/log/lastlog
清除当前登录用户的信息:echo > /var/log/utmp
清除安全日志记录:cat /dev/null > /var/log/secure
清除系统日志记录:cat /dev/null > /var/log/messages
清除Web日志
历史命令,ip地址,访问的资源
隐藏用户

100.查看当前端口连接的命令有哪些?netstat 和 ss 命令的区别和优缺点
netstat -antp
ss -l
ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效

101.linux系统中,检测哪些配置文件的配置项,能够提升SSH的安全性。
/etc/ssh/sshd___config iptables配置

102.如何一条命令查看文件内容最后一百行?
tail-n100 filename

103.如何加固一个域环境下的Windows桌面工作环境?请给出你的思路
3.1 补丁管理。对系统进行扫描。更新系统补丁,在安装补丁前测试补丁是否影响业务,并做好备份随时回退。
3.2 减少系统无用账号,增强口令的复杂度以及锁定策略
3.3 授权。只允许管理员组远程关机和本地关机,只允许管理员组拥有取得文件和其他文件或对象所有权的权限,只有授权的账户才可以本地登陆和远程登陆
3.4 系统安全设置。设置屏保和远程连接挂起时间,禁止系统自动登录,隐藏最后登录名
3.5 开启服务与端口的配置。关闭不需要的服务和端口,关闭共享,网络访问权限。
3.6 使用NTFS文件系统。
3.7 日志配置与审核。增大日志量大小,保证日志完整,对系统时间进行审核

104.TCP三次握手的过程以及对应的状态转换
(1)客户端向服务器端发送一个SYN包,包含客户端使用的端口号和初始序列号x;
(2)服务器端收到客户端发送来的SYN包后,向客户端发送一个SYN和ACK都置位的TCP报文,包含确认号xx1和服务器端的初始序列号y;
(3)客户端收到服务器端返回的SYNSACK报文后,向服务器端返回一个确认号为yy1、序号为xx1的ACK报文,一个标准的TCP连接完成

105.TCP和UDP协议区别
TCP UDP
是否连接 面向连接 无连接
传输可靠性 可靠的 不可靠的
应用场景 传输大量数据 传输少量数据
速度 慢 慢 快
传输方式 面向字节流 面向报文
连接对象个数 只能一对一 可以一对多

106.https的建立过程
1.客户端想服务器发起HTTPS的请求,连接到服务器的443端口;

2.服务器将非对称加密的公钥传递给客户端,以证书的形式回传到客户端

3.服务器接受到该公钥进行验证,就是验证2中证书,如果有问题,则HTTPS请求无法继续;如果没有问题,则上述公钥是合格的。(第一次HTTP请求)客户端这个时候随机生成一个私钥,成为client key,客户端私钥,用于对称加密数据的。使用前面的公钥对client key进行非对称加密;

4.进行二次HTTP请求,将加密之后的client key传递给服务器;

5.服务器使用私钥进行解密,得到client key,使用client key对数据进行对称加密

6.将对称加密的数据传递给客户端,客户端使用非对称解密,得到服务器发送的数据,完成第二次HTTP请求。

107.php 中命令执行涉及到的函数
1,代码执行:eval()、assert()、popen() ,call_user_func_array(),create_function(),array_map()
2,文件读取: file_get_contents(),highlight_file(),fopen(),readfile(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等
3,命令执行:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()

108.一个成熟并且相对安全的CMS,渗透时扫目录的意义?
目录扫描可以发现网站存在多少个目录,多少个页面,探索出网站的整体结构。
通过目录扫描能扫描敏感文件,后台文件,数据库文件,和信息泄漏文件等等

109.说出至少三种业务逻辑漏洞,以及修复方式?
答:密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码;
身份认证漏洞中最常见的是会话固定攻击和Cookie仿冒,只要得到Session或Cookie即可伪造用户身份;
验证码漏洞中存在验证码允许暴力破解、验证码可以通过Javascript或者改包的方法来进行绕过。

110.SSRF利用方式?
对外网,服务器在内网,本地进行端口扫描
攻击运行在内网或本地的应用程序
对内网web应用进行指纹识别,识别企业内部的资产信息.
利用file协议读取本地文件

111.内网渗透思路?
代理穿透
权限维持
内网信息
收集口令
爆破凭据
横行和纵向
渗透拿下域控

112.蚁剑/菜刀/C刀/冰蝎的相同与不相同之处相同:
都是用来连接WebShell的工具不同:
相比于其他三款,冰蝎有流量动态加密

113.勒索软件Wanacry(永恒之蓝)的特征
中病毒后文件后缀被改为WNCRY
病毒使用的编译器是C++6.0
注册表被修改
任务管理出现了attrib.exe隐藏程序

114.序列化与反序列化的区别序列化:
把对象转化为可传输的字节序列过程称为序列化。
反序列化:字节序列恢复为对象的过程称为对象的反序列化。

115.正向代理和反向代理的区别
如果控制端去连接被控制端的话,就属于正向代理,
如果被控制端去连接控制端就是反向代理。

116.Windows提权提权可分为纵向提权与横向提权:
纵向提权:低权限角色获得高权限角色的权限;
横向提权:获取同级别角色的权限。

117.Windows常用的提权方法
系统内核溢出漏洞提权
数据库提权
错误的系统配置提权
组策略首选项提权
WEB中间件漏洞提权
DLL劫持提权
滥用高危权限
令牌提权第三方软件/服务提权等

118.数据库有哪些,关系型的和非关系型的分别是哪些关系型
MySQL:3306
SQLServer:1433
Oracle:1521
DB2:5000
MongoDB:27017
非关系型
Redis:6379

119.arp协议的工作原理?
地址解析协议,即ARP(AddressResolutionProtocol),是根据IP地址获取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源

120.dns是什么?dns的工作原理?
dns是域名系统
第一步:输入域名后,电脑首先看自己有没有对应域名的缓存,有缓存就直接用缓存里的ip访问。
第二步,如果缓存中没有,则去查询hosts文件,hosts文件在这里
第三步,如果hosts文件里也没找到想解析的域名,则将域名发往自己配置的dns服务器,也叫本地dns服务器
第四步,如果本地dns服务器有相应域名的记录,则返回记录。
第五步,如果电脑自己的服务器没有记录,会去找根服务器
第六步,顶级域服务器收到请求,会返回二级域服务器的地址。
第七步,以此类推,最终可以得到查询结果
最后一步,本地dns服务器,把最终的解析结果,返回给客户端
https://zhuanlan.zhihu.com/p/150417003

122.什么是三次握手四次挥手?tcp为什么要三次握手?
为了处理丢包的乱序问题?
建立一个发送缓冲区,从建立连接后的第一个字节的序列号为0,后面每个字节的序列号就会增加1,
发送数据时候,从发送缓冲区取一部分数据组成发送报文,在其tcp头中,会带序列号和长度
接受端在收到数据后,需要回复确认报文(ACK=序列号+长度),也就是下一包数据的起始序列号
切割发送,根据序列号和长度重组。假设丢失了某些数据包,可以要求发送端重传

四次挥手:
第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。客户端处于 终止等待1 状态。
第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。
第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 超时等待(TIME_WAIT)状态

为了防止已失效的请求报文,突然又传到服务器引起错误
假设用两次握手建立连接,客户端向服务端发送了一个SYN包,假如没有到达服务器,
为了建立连接客户端会重发syn包,这次的数据包正常送到服务器,服务端回复SYN+ACK后建立连接
这时,阻塞的网络节点又发送到服务器,这时服务端会认为客户端又发起了新的连接,从而在两次握手后,进入等待数据的状态
三次握手为了解决,网络信道不可靠的问题

123.GET和POST 的区别
1.get参数通过url传递,post放在request body中。
2.get请求在url中传递的参数是有长度限制的,而post没有。
3.get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。
4.get请求只能进行url编码,而post支持多种编码方式
5.get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
6.GET产生一个TCP数据包;POST产生两个TCP数据包。
7.get是从服务器上获取数据,post是向服务器传送数据。

124.Session和Cookie的区别?
1、数据存储位置:cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、安全性:cookie不安全,session比cookie安全。
3、服务器性能:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
4、数据大小:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、信息重要程度:可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

125.session的工作原理?
session的工作原理是客户端登录完成之后,服务器会创建对应的session,session创建完之后,会把session的id发送给客户端,客户端再存储到浏览器中。
这样客户端每次访问服务器时,都会带着session id,服务器拿到session id之后,在内存找到与之对应的session这样就可以正常工作了

126.一次完整的HTTP请求过程:
域名解析–>发起TCP的3次握手–>建立TCP连接后发起http请求–>服务器响应http请求,浏览器得到html代码并解析
并请求html代码中的资源(如js、css、图片等)–>浏览器对页面进行渲染呈现给用户

127.OSI的七层模型都有哪些?
物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
数据链路层:接收来自物理层的位流形式的数据,并封装成帧,传送到上一层
网络层:将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。
传输层:在源端与目的端之间提供可靠的透明数据传输
会话层:负责在网络中的两节点之间建立、维持和终止通信
表示层:处理用户信息的表示问题,数据的编码,压缩和解压缩,数据的加密和解密
应用层:为用户的应用进程提供网络通信服务

128.http的长连接和短连接的区别
一、长连接与短连接:
长连接:客户端与服务端先建立连接,连接建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯连接一直存在。
短连接:客户端与服务端每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此方式常用于一点对多点通讯。

129.TCP如何保证可靠传输?
三次握手。

130.什么是SSL?https是如何保证数据传输的安全(SSL是怎么工作保证安全的)

131.TCP对应的应用层协议
FTP:定义了文件传输协议,使用21端口.
Telnet:它是一种用于远程登陆的端口,23端口
SMTP:定义了简单邮件传送协议,服务器开放的是25号端口。
POP3:它是和SMTP对应,POP3用于接收邮件。

UDP对应的应用层协议
DNS:用于域名解析服务,用的是53号端口
SNMP:简单网络管理协议,使用161号端口

132.什么时候应该使用TCP:
当对网络通讯质量有要求的时候,
比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议

133.什么时候应该使用UDP?
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。比如,日常生活中,常见使用UDP协议的应用如下

134.IIS服务器应该做哪些方面的保护措施:
1.保持Windows升级:
2.使用IIS防范工具
3.移除缺省的Web站点
4.如果你并不需要FTP和SMTP服务,请卸载它们
5.检查你的管理员组和服务:
6.严格控制服务器的写访问权限
7.设置复杂的密码
8.减少/排除Web服务器上的共享
9.禁用TCP/IP协议中的NetBIOS:
10.使用TCP端口阻塞
11.仔细检查*.bat和*.exe文件:每周搜索一次*.bat
12.管理IIS目录
13.使用NTFS安全:
14.管理用户账户
15.审计你的Web服务器

135…什么是WebShell?
在入侵了─个网站后,通常会将后门文件与网站服务器WEB目录下正常的网页文件混在─起,
然后就可以使用浏览器来访问后门,得到─个命令执行环境,以达到控制网站服务器的目的

136.什么是网络钓鱼?
网络钓鱼攻击将收信人引诱到一个通过精心设计与目标组织的网站非常相似的钓鱼网站上,并获取收信人在此网站上输入的个人敏感信息

137.你获取网络安全知识途径有哪些?
csdn,知乎,博客园,百度,维基百科,问人,微信公众号,web安全攻防渗透测试实战指南,网易云课堂

138.0day漏洞?
是已经发现但是官方还没发布补丁的漏洞

139.Rootkit是什么意思?
一种病毒,凡是在系统启动的时候通过加载驱动的方式进行恶意目的的软件,都可以称之为rootkit

140.蜜罐
蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何攻击的

141.一句话木马?
php的一句话木马:
asp的一句话是: <%eval request (“pass”)%>
aspx的一句话是: <%@ Page Language=“Jscript”%>
<%eval(Request.Item[“pass”],“unsafe”);%>

142.手工查找后门木马的小技巧?
1.检查异常端口、进程
2.检查启动项、计划任务、服务
3.日志分析

143.主机被入侵,你会如何处理这件事自查解决方案:
1、病毒木马排查
1.1、使用netstat查看网络连接,分析是否有可疑发送行为,如有则停止
1.2、使用杀毒软件进行病毒查杀。
2、服务器漏洞排查并修复
2.1、查看服务器账号是否有异常,如有则停止删除掉。
2.2、查看服务器是否有异地登录情况,如有则修改密码为强密码
2.3查看WEB应用是否有漏洞,如有则请升级
2.4查看中间件有没有漏洞和弱口令

144.内网穿透
NAT穿透,采用端口映射,让外网的电脑找到处于内网的电脑,同时也可基于HTTP/2实现web内网穿透。
NAT(网络地址转换)协议

145.宏病毒?
宏病毒是利用系统的开放性专门制作的一个或多个具有病毒特点的宏的集合,这种病毒宏的集合影响到计算机的使用,并能通过文档及模板进行自我复制及传播

147.Linux提权有哪些方法?
内核漏洞提权
SUID提权
计划任务提权
sudo滥用提权
配置错误之利用/etc/passwd提权

148.如何识别CND?
a. 通过“ping”命令,看显示的ip地址是否唯一,如果不唯一,则这些ip地址为CDN的地址
b. 使用“nslookup”进行查询,看返回的域名解析情况。
c. 多地ping

149.描述一下外网打点的基本流程?
外网打点的基本流程主要分为:靶标确认、信息收集、漏洞探测、
漏洞利用、权限获取,其最终目的是为了获取靶标的系统权限/关
键数据。而在整个打点流程中,信息收集较为重要。掌握靶标情报
越多,后续就能够尝试更多的攻击方式进行打点。比如:钓鱼邮件、
Web漏洞、边界网络设备漏洞、弱口令等等

150.邮件钓鱼的准备工作有哪些?
a. 确定邮件钓鱼的形式:链接、文件
b. 收集目标相关邮箱
c. 编写钓鱼邮件文案
d. 匿名邮箱
e. 木马免杀测试、钓鱼站点搭建
f. 反溯源

151.在外网打点过程中,常用的信息收集工具有哪些?
名称 描述
ENScan 企业信息查询工具
Oneforall 子域名收集工具
水泽 信息收集自动化工具
FOFA、Goby 网络空间资产检索\攻击面测绘工具
Masscan 端口扫描工具
ARL 资产安全灯塔 快速侦察与目标关联的资产工具

152.Apache Log4j2的漏洞原理是什么?
由于Log4j2组件在处理程序日志记录时存在JNDI注入缺陷,未经授权的攻击者利
用该漏洞,可向目标服务器发送构造的恶意数据,触发Log4j2组件解析缺陷,
实现目标服务器的任意代码执行,获得目标服务器权限。
( JNDI(JAVA命名和目录接口)它是为JAVA应用程序提供命名和目录访问服务的API)

153.水坑攻击和鱼叉攻击的区别是什么?
水坑攻击指的是黑客通过分析被攻击者的网络活动规律,寻找被攻击者经常访问
的网站的弱点,先攻下该网站并植入攻击代码,等待被攻击者来访时实施攻击。

鱼叉攻击则是通常是指利用木马程序作为电子邮件的附件,发送到目标电脑上,
诱导受害者去打开附件来感染木马。

154.如何手工判断靶标站点是Windows/Linux?
a. 大小写检测:Windows大小写不敏感,而Liunx大小写敏感
b. PING指令:根据TTL值,Windows一般情况下>100、Linux则<100 ???

155.如何建立隐藏用户?
a. net user test$ 123456 /add [建立隐藏用户]
b. net localgroup administrators test$ /add [将隐藏用户加入管理组

156.文件上传功能的检测点有哪些?
a. 客户端JavaScript检测(文件后缀名检测)
b. 服务端检测(MINE类型检测、文件后缀名、文件格式头

157.常见的未授权访问漏洞有哪些?
a. MongoDB 未授权访问漏洞
b. Redis 未授权访问漏洞
c. Memcached 未授权访问漏洞
d. JBOSS 未授权访问漏洞
e. VNC 未授权访问漏洞
f. Docker 未授权访问漏洞
g. ZooKeeper 未授权访问漏洞
h. Rsync 未授权访问漏洞

159.正向Shell和反向Shell的区别是什么?
正向Shell 攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。
反向Shell 被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。

160.正向代理和反向代理的区别?
正向代理
当客户端无法访问外部资源的时候(比如Google、YouTube),可以通过一个正向代理去间接地访
问。正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取
得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并
将获得的内容返回给客户端。

反向代理
客户端是无感知代理的存在,以代理服务器来接受internet上的连接请求,然后将请求转发给内部
网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。此时代理服务
器对外就表现为一个服务器。

161.常见的中间件有哪些?它们有哪些漏洞?
• IIS:PUT漏洞、短文件名猜解、远程代码执行、解析漏洞
• Apache:解析漏洞、目录遍历
• Nginx:文件解析、目录遍历、CRLF注入、目录穿越
• Tomcat:远程代码执行、war后门文件部署
• JBoss:反序列化漏洞、war后门文件部署
• WebLogic:反序列化漏洞、SSRF任意文件上传、war后门文件部署
• Apache Shiro反序列化漏洞: Shiro rememberMe(Shiro-550)、Shiro Padding Oracle
Attack(Shiro-721)

162.常用的目录扫描工具有哪些?
• 御剑
• Dirsearch
• dirmap
• Webdirscan

163.Windows环境下有哪些下载文件的命令?
a. certutil -urlcache -split -f [url]
b. bitsadmin /transfer myDownLoadJob /download /priority normal [url] [存放路径]
c. powershell (new-object Net.WebClient).DownloadFile([url],[存放路径]

164.常见的端口有哪些?攻击点有哪些?
服务 端口号 攻击点
FTP 20、21 匿名上传下载、嗅探、爆破
Telnet 23 嗅探、爆破
SSH 22 爆破
Telnet 23 嗅探、爆破
sql server 1433 注入、弱口令、爆破
Oracle 1521 注入、弱口令、爆破
WebLogic 7001 Java反序列化、弱口令
Redis 6379 未授权访问、弱口令爆破
jboss 8080 反序列化、控制台弱口令
Zabbix 8069 远程执行、SQL注入
嗅探(窃听网络上流经的数据包)

165.木马驻留系统的方式有哪些?
a. 注册表
b. 服务
c. 启动目录
d. 计划任务
e. 关联文件类型
f.隐藏文件
进程注入

166.常用的Webshell检测工具有哪些?
a. D盾
b. 河马WEBSHELL
c. 百度 WEBDIR+
d. Web Shell Detector
e. Sangfor WebShellKill [深信服]
f. PHP Malware Finder

167.一般情况下,哪些漏洞会高频被用于打点?
a. Apache Shiro 相关漏洞
b. Fastjson 漏洞
c. Log4j
d. 上传漏洞
e. 边界网络设备资产 + 弱口令

168.Windows常用的命令有哪些?
命令 描述
type 显示文件内容
dir 显示当前目录内容
ipconfig 查看IP地址
net user 查看用户
netstat 查看端口
tasklist 查看进程列表
find 文件中搜索字符串
ping 检测网络连通情况

169.应急响应的基本思路是什么?
a. 收集信息:收集告警信息、客户反馈信息、设备主机信息等
b. 判断类型:安全事件类型判断。(钓鱼邮件、Webshll、爆破、中毒等)
c. 控制范围:隔离失陷设备
d. 分析研判:根据收集回来的信息进行分析
e. 处置:根据事件类型进行处置(进程、文件、邮件、启动项、注册表排查等)
f. 输出报告

170.Linux常用的命令有哪些?
命令 描述
cat 显示文件内容
ls 显示当前目录内容
ifconfig 查看IP地址
whoami 查看当前用户
netstat 查看端口
ps 查看进程列表
grep 文件中搜索字符串
ping 检测网络连通情况
crontal 检查定时任务

171.蓝队常用的反制手段有哪些?
a. 蜜罐
b. 对攻击目标进行反渗透(IP定位、IP端口扫描、Web站点渗透)
c. 应用漏洞挖掘&利用(菜刀、Goby、Xray、蚁剑)
d. id -> 社交特征关联
e. 钓鱼网站 -> 后台扫描、XSS盲打
f. 木马文件 -> 同源样本关联 -> 敏感字符串特

  1. Windows/Linux入侵排查思路?

1.1 检查系统账号安全

杀毒软件查杀
1、查看服务器是否有弱口令,远程管理端口是否对公网开放。
2、查看服务器是否存在可疑账号、新增账号
3、查看服务器是否存在隐藏账号、克隆账号
4、结合日志,查看管理员登录时间、用户名是否存在异常
5.检查异常端口、进程
6.检查启动项、计划任务、服务
7. 检查系统相关信息
8. 分析日志

  1. 挖矿病毒判断,中了挖矿病毒会有哪些特征?
    1、文件/定时任务删除失败-------------------文件只读属性保护

2、文件/定时任务删完又出现-----------------系统文件替换/下载进程残留

3、病毒进程刚刚删完又被拉起---------------恶意进程守护

4、主机严重卡顿但找不到挖矿进程-----------系统命令劫持

5、主机杀干净后一段时间又出现病毒---------ssh&漏洞再次入侵

175 是否有日志分析经验,如果拿到一个比较大的日志文件,应该如何分析处理?

  1. 在告警日志分析过程中,能否辨别常见漏洞的攻击特征?它们有哪些特点?

  2. Windows/Linux环境下的抓包工具有哪些?是否掌握基本的抓包分析手法?

178.JAVA反序列化了解吗?有没有了解过shrio反序列化?(最常 问,无论hvv还是工作面试)?

179.### PHP反序列化有了解吗?

序列化就是将一个对象转换成字符串,反序列化则反 之,将字符串重新转化为对象。

此外,PHP反序列化又可以简单分成两种,一种无 类,一种有类,无类利用就略微简单,如果源码会将 输入的值进行反序列化,那我们就需要提前将数据序 列化后再传入。而想要利用有类就要用到魔术方法, 而魔术方法就像一个潜规则一样,例如我们在创建对 象时,就会触发__construct(),并执行__construct()中的 代码。

180.### SQL注入原理的种类?防御呢?预编译原理?

原理:在数据交互中,前端的数据传入到后台处理 时,由于后端没有做严格的判断,导致其传入的“数 据”拼接到SQL语句中后,被当作SQL语句的一部分执 行。

种类:字符,数字,布尔,报错,延迟,联合,堆 叠,宽字节,XFF等

修复:使用预编译,PDO,正则表达式过滤,开启魔 术引号,加装WAF等

预编译原理:预编译将一次查询通过两次交互完成, 第一次交互发送查询语句的模板,由后端的SQL引擎进 行解析为AST或Opcode,第二次交互发送数据,代入 AST或Opcode中执行,
无论后续向模板传入什么参 数,这些参数仅仅被当成字符串进行查询处理,因此 杜绝了sql注入的产生

182.XXE漏洞的危害或利用方式?
导致可加载恶 意外部文件,造成文件读取、命令执行、内网端口、 攻击内网网站、发起dos攻击等危害

183.xss 如何盗取 cookie?

185.DVWA 是如何搭建的?
启动 xampp(XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站
集成软件包。)下的 apache 中间件和 mysql
将 dvwa 放到 xampp 下的 htdocs 目录下
在浏览器输入 http://127.0.0.1/dvwa 即可使用啦!
还有 owasp 的漏洞练习平台:https://sourceforge.net/projects/owaspbwa/files/

你可能感兴趣的:(web安全,网络,服务器)