该文以web安全技术基础课培训面试问的问题展开
1、什么是信息安全?
国际标准化组织ISO定义:信息安全是为数据处理系统建立和采取的技术和管理的安全保护,保护计算机硬件,软件和数据不因偶然和恶意的原因而遭到破坏、更改和泄漏。
信息安全的CIA三要素:
- 机密性:确保信息没有非授权的泄漏,不非授权的个人、组织和计算机程序利用
- 可用性:确保授权的用户或程序可以及时、正常使用信息
- 完整性:确保信息没有遭到篡改和破坏
2、什么是web?它的作用?
web是万维网(word wide web,www)的简称,它利用http(超文本传输协议)来建立用户与服务器之间的标准交互方式。
它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务。是一种基于互联网的信息交流和共享平台。它由许多连接在一起的网络(包括电脑、手机和其他智能设备)组成,通过标准化的语言和协议(如HTML、HTTP等)来实现信息的传递和共享。
在Web上,用户可以通过浏览器访问和浏览各种网页和信息资源,进行各种网络交互和应用服务。Web的主要应用是提供各种信息和服务。
3、http请求方法你知道哪些?
面试官会随便抽一个请求方法问你它是用来干嘛的
- GET 请求获取Request-URI所标识的资源。
- POST 在Request-URI所标识的资源后附加新的数据。
- HEAD 请求获取由Request-URI所标识的资源的响应消息报头。
- PUT 请求服务器存储一个资源,并用Request-URI作为其标识。
- DELETE 请求服务器删除Request-URI所标识的资源。
- TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断。
- CONNECT 保留,将来使用。
- OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求。
4、get和post方法的区别?
- GET方法 通过在浏览器的地址栏中输入网址访问网页时,浏览器采用GET方法向服务器获取资源,对应的请求示例:GET/from.html HTTP/1.1 (CRLF)
- POST方法 要求被请求服务器接收附在请求后面的数据,常用于提交表单。
get和post是http请求的两种方法,它们的区别在于:
1、GET请求通过URL(请求行)提交数据,在URL中可以看到所传参数。POST通过“请求体”传递数据,参数不会在url中显示
2、GET请求提交的数据有长度限制(url长度根据浏览器及服务器的不同而有不同限制。 若要支持IE的话,最大的长度为2083字符,若是中文字符的话只有2083/9=231个字符),POST请求没有限制。
3、GET请求返回的内容可以被浏览器缓存起来。而每次提交的POST,浏览器在你按 下F5的时候会跳出确认框,浏览器不会缓存POST请求返回的内容。
4、GET对数据进行查询,POST主要对数据进行增删改!简单说,GET是只读,POST是写。
5、对于参数的数据类型,get只接受ASCII字符,而post没有限制。
5、常见状态码以及状态描述?
- 200:OK,客户端请求成功。
- 301:Permanently Moved,页面重定向。
- 203:Temporarily Moved ,页面临时重定向。
- 400:Bad Request,客户端请求有语法错误,不能被服务器所理解。
- 401:Unauthorized,请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用。
- 403:Forbidden,服务器收到请求,但拒绝提供服务。
- 404:Not Found,请求资源不存在,或者请求无法实现。
- 500:Internet Service Error,服务器发生不可预期的错误。
- 503:Service Unavailable,服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
403与404状态码的区别?
403 Forbidden(禁止访问):表示服务器已经理解了请求(请求资源存在),但是拒绝授权访问资源。这意味着客户端没有访问资源的权限(请求不合法),无论是因为未提供正确的身份验证凭据,还是因为访问被服务器配置为被禁止。
404:请求的资源不存在,表示服务器无法找到请求的资源。这可能是由于客户端提供了一个无效的URL,或者服务器上不存在该资源。换句话说,服务器无法找到客户端请求的资源。
6、常见的中间件都有哪些?分别存在哪些漏洞?
-
IIS:解析漏洞、短文件名枚举、远程代码执行、PUT漏洞
-
Apache:解析漏洞、目录遍历、shiro反序列化漏洞
-
Nginx:解析漏洞、目录遍历、CRLF注入、目录穿越
-
Tomcat:示例目录、远程代码执行、反向路径遍历、war后门文件部署
-
Jboss:反序列化、war后门文件部署
-
web Logic:反序列化、SSRF任意文件上传
web服务器的搭建你都使用过哪些工具?
- phpstudy:PHPStudy是一个基于Windows平台的开发环境集成工具,主要用于在本地搭建PHP开发环境。它集成了Apache、MySQL、PHP和phpMyAdmin等组件,简化了搭建和管理Web服务器的过程。
- Apache Http Server:这是一个广泛使用的开源Web服务器软件,可以在多种操作系统上运行。
- Nginx :这是一个高性能的开源Web服务器软件,适用于高负载环境。
- Microsoft IIS:这是一个微软开发的Web服务器软件,适用于windows操作系统。
- Lighttpd:这是一个轻量级的开源Web服务器软件,适用于高并发环境。
- Tomcat:这是一个开源的JAVA WEB服务器软件,适用于Java应用程序的部署。
- Caddy:这是一个现代化的开源Web服务器软件,具有自动化配置和https支持等特性。
- node.js:这是一个基于javascript的开源Web服务器软件,适用于高并发环境和实时应用程序。
- Jetty:这是一个开源的Java Web服务器软件,适用于轻量级的应用程序和嵌入式设备。
7、网站前台与后台的区别?
8、静态页面与动态页面的区别?怎样去辨别一个页面是动态还是静态?
9、metasploit漏洞利用框架进行ms17-010漏洞利用的流程?
- 在kali里打开metasploit漏洞利用框架
- 搜索ms17-010漏洞利用模块:search
- 使用利用模块:use
- 查看配置选项:show option
- 设置靶机IP地址:set
- 设置以tcp反回一个shell回来
- 设置攻击者IP
- 实施攻击exploit
对于MS17-010漏洞该采取什么防范措施?
- 安装杀毒软件及系统补丁。针对“永恒之蓝”勒索病毒,微软发布了专门的修复补丁 “MS17-010”, 用以修复被 “ Eternal Blue” 攻击的系统漏洞,用户可以自行下载对应的操作系统版本的补丁进行安装。
- 关闭tcp_445端口和网络共享。
- 打开防火墙,安装安全软件。
10、使用过哪些漏洞扫描器?
1.AWVS,非常经典的Web扫描神器,入门必备。
官方网站:Acunetix | Web Application Security Scanner
2.IBM AppScan
官方网站:HCLSoftware
3.Goby,一款攻击面分析工具
官方网站:Goby - Attack surface mapping
4.Xray,一款强大的安全评估工具,xray 最好用的就是它的被动扫描模式,与burp进行联动更是一项绝活,让流量从Burp转发到Xray,所有的数据包透明,堪称指哪打哪的利器。
官方网站:xray - 一款强大的安全评估工具
5.Acunetix是一款用于web应用程序安全检测的工具,该工具采用了一个深度容器模型技术,可在网站的整个层次上检测出漏洞。它可以轻松地发现Web应用程序中的SQL注入,XSS,CSRF,目录(文件)遍历,文件包含/命令注入漏洞等。Acunetix提供完整的认证和授权支持,所以它可以发现具有弱密码保护,存储在cookie中的凭据等敏感数据的漏洞。
6.Netsparker已成为Web应用程序安全中自动漏洞扫描的一种非常流行的解决方案。它是一款智能Web应用程序安全检测工具,可以自动执行健全性测试和漏洞检测。Netsparker可以发现Web应用程序中的常见漏洞类型,例如SQL注入,跨站脚本(XSS),远程文件包含,本地包含等。此外,它还具有REST和SOAP API,支持定期扫描计划,以及提供扫描报告和漏洞管理功能的功能。
7.OpenVAS,OpenVAS是一个开源漏洞扫描器,是从Nessus的开源版本发展而来。OpenVAS的扫描引擎能够识别和利用各种常见的漏洞,例如SQL注入,XSS,CSRF,目录(文件)遍历等,并提供相应的控制手段,以便对漏洞进行全面的测试和管理。OpenVAS由于自身基于公共软件和协议构建,所以它具有高度的灵活性和可扩展性,使它成为企业级Web应用程序安全检测的首选工具。
8.Nmap是一个强大的网络探测和安全扫描工具,可以识别和分析web应用程序的服务和服务配置,同时检测各种常见和未知的漏洞类型。Nmap具有许多高级特性,包括发现网络拓扑、确定网络设备类型、识别操作系统版本、检测网络服务、扫描整个网络等等。Nmap是一个灵活,可扩展和可配置的工具,它被广泛用于渗透测试、漏洞扫描、网络审计和安全评估等领域。
11、常见端口及作用?
端口分类:
(1)公认端口(WellKnownPorts):
从 0~1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
(2)注册端口(RegisteredPorts):
从1024~49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口(Dynamicand/orPrivatePorts): 从49152~65535。
端口及详解链接:https://blog.csdn.net/c_lanxiaofang/article/details/128003977
- 21端口:FTP 文件传输服务
- 22端口:SSH安全登录、SCP文件传输(linux服务器、防火墙)
- 23端口:TELNET 远程登录
- 25端口:SMTP 简单邮件传输服务
- 53端口:DNS 域名解析服务
- 80端口:HTTP 超文本传输(常用端口号80/8080/3128/8081/9098)
- 110端口:POP3 “邮局协议版本3”使用的端口
- 443端口:HTTPS 加密的超文本传输服务
- 1433端口:MS SQL*SERVER数据库 默认端口号
- 1521端口:Oracle数据库服务
- 1863端口:MSN Messenger的文件传输功能所使用的端口
- 3306端口:MYSQL 默认端口号
- 3389端口:Microsoft RDP 微软远程桌面使用的端口,RDP远程桌面登录
- 5631端口:Symantec pcAnywhere 远程控制数据传输时使用的端口
- 5632端口:Symantec pcAnywhere 主控端扫描被控端时使用的端口
- 5000端口:MS SQL Server使用的端口
- 8080端口:是Tomcat服务器的默认端口
常见的端口和渗透方式简单描述一下?
ftp:20、21:攻击点:匿名上传下载、嗅探、爆破ssh:22 爆破
telent:23 攻击点:嗅探、爆破
1433 :sql server 攻击点:注入、弱口令、爆破
1521:orcel 数据库 攻击点:注入、弱口令、爆破
7001:weblogic 中间件管理 攻击:java 反序列化、弱口令
6379:redis 数据库 攻击:未经授权、弱口令爆破
8080:JBOSS、tomcat 攻击:反序列化、控制台弱口令
8069:zabbix 攻击:远程执行、sql 注入
查看开放端口:
netstat-ano
筛选端口:
netstat-ano | find /i “端口号”
如何批量扫描端口?
1.指定端口范围:
nmap -p <起始端口号>-<结束端口号> <目标IP地址>:指定要扫描的端口范围。
namp -p 1-1024 192.168.1.1
2.指定多个端口:
namp -p 端口号1,端口号2,端口号3..... 目标IP地址
namp -p 21,22,23,135,139,445,3389,80,8080 192.168.1.1
12、OWASP TPO 10有去了解吗?
如果你回答了一些漏洞,面试官会以你回答的漏洞反问一些漏洞详情
还会问你是否去尝试挖掘过/挖掘过这些漏洞
有了解最近有关网络安全的大事件吗?一般是通过什么获取网络安全热点事件?
开放性问题,大家自己去探索吧!
但要回答得让面试官感觉你是主动的去获取这些消息而不是被动的!