From 0a131b3fff7e299e8bc982fb89da8593ee0fe613 Mon Sep 17 00:00:00 2001 From: Noriu Date: Tue, 19 Nov 2024 11:39:10 +0800 Subject: [PATCH] =?UTF-8?q?2024=E5=B9=B411=E6=9C=8819=E6=97=A5=2011:39:13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 40道网安面试题.md | 219 +++++++++++++++++++++++++++++++++++++ Web安全、渗透测试面试题.md | 201 +++++++++++++++++++++++++++++++++- 2 files changed, 417 insertions(+), 3 deletions(-) create mode 100644 40道网安面试题.md diff --git a/40道网安面试题.md b/40道网安面试题.md new file mode 100644 index 0000000..316d256 --- /dev/null +++ b/40道网安面试题.md @@ -0,0 +1,219 @@ +1. **什么是防火墙?** + + 它是为网络设计的安全系统。防火墙设置在监视和控制网络流量的任何系统或网络的边界上。防火墙通常用于保护系统或网络免受恶意软件,蠕虫和病毒的侵害。防火墙还可以防止内容过滤和远程访问。 + +2. **linux系统中的计划任务crontab配置文件中的五个星星分别代表什么?** + + 分,时,日,月,星期几 + +3. **解释暴力攻击。怎么预防呢?** + + 找出正确的密码或PIN码是一种反复试验的方法。黑客反复尝试使用所有凭据组合。在许多情况下,暴力攻击是自动进行的,其中软件会自动运行以使用凭据登录。有多种方法可以防止蛮力攻击。他们是: + + - 设置密码长度。 + - 增加密码复杂度。 + - 设置登录失败的限制。 + +4. **简述BP的作用?** + + 是通过设置浏览器代理进行网络渗透,用于攻击web应用集成平台,可进行拦截和修改http包;bp也有转码解码作用(16进制,ascii,basse64等等); + + introder模块实现一个自动化的攻击或是密码爆破;repeater模块一般使用这个功能也是通过Proxy抓包然后send过来的。 + + 主要就是修改请求的各项参数等等然后点击左上角的go发送出去,然后在右边接受到请求,请求和响应都可以以不同的形式展示出来; + + compare模块主要是一个比较功能,可以在Proxy处截包发送过来进行比较也可以直接加载文件进行比较。 + +5. **SQL注入的原理?如何防御?** + + 由于程序开发者在编译时未对用户输入进行过滤,导致用户可以在url中进行SQL查询语句代入数据库 + +6. **发生安全事件怎么做应急响应?** + 先确定范围,做好隔离(网络隔离,ACL等),判断事情严重程度,同时联系法务部门看是自己取证还是公安部门取证,事后做好分析,做好相关安全加固 + +7. **DDOS攻击是什么原理?怎么防御?** + 分布式拒绝服务攻击,是黑客控制肉鸡来进行占用资源导致服务器资源耗尽。例如:餐厅来了许多人把座位占满,他们不点菜,只占座,导致正常来吃饭的客人无法就餐。 + + 防御:购买抗D服务,流量清洗,扩带宽 + +8. **反射型XSS漏洞的原理?如何防御?** + + 一种通过外部输入然后直接在浏览器端触发,即反射型XSS + + *防御:* + + (1) 特殊字符HTML实体转码。最好的过滤方式是在输出和二次调用的时候进行加HTML实体一类的转码,防止脚本注入。 + + (2) 标签事件属性黑名单。特殊字符容易被绕过,所以还得加标签事件得黑名单或者白名单,这里推荐使用白名单的方式,实现规则可以直接使用正则表达式来匹配,如果匹配到的事件不在白名单列表,就可以直接拦截,而不是过滤为空。 + +9. **请求伪造类的攻击原理是什么?** + + 用户提交的URL和服务器端返回的信息需要做过滤否则就会被黑客做请求伪造攻击。发生在客户端的叫CSRF发生在服务器端的叫SSRF + +10. **文件上传漏洞原理及防御?** + + 程序员在开发任意文件上传功能时,并未考虑文件格式后缀的合法性校验或者是否只在前端通过js进行后缀检验。这时攻击者可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如(jsp、asp、php、aspx文件后缀)到服务器上,从而访问这些恶意脚本中包含的恶意代码,进行动态解析最终达到执行恶意代码的效果,进一步影响服务器安全。 + + 服务器开启了不当的设置或者存在解析漏洞(比如nginx开启 Fast-CGI情况下,上传名字为a.jpg内容为一句话木马的文件然后访问a.jpg/.php在这个目录下就会生成一句话木马)或者是开启了不安全的方法比如put,delete方法,比如apache的解析漏洞若一个文件名abc.x1.x2.x3,Apache会从x3开始解析,如果x3不是一个能解析的扩展名,就往前解析x2以此往复,直到能遇到一个能解析的文件名为止。IIS6.0 在解析 asp 时有两个解析漏洞,一个是如果任意目录名包含 .asp 字符串,那么这个目录下的所有文件 都会按照 asp 去解析,另一个是文件名中含有 asp; 就会优先当作 asp 来解析。 + + IIS7.0/7.5 对php解析有所类似于 Nginx 的解析漏洞。只要对任意文件名在url后面追加上 字符串 / 任意文件名.php 就会按照php去解析。如,上传test.jpg,然后访问test.jpg/.php或test.jpg/abc.php当前目录下就会生成一句话木马 shell.php + + *防御:* + + 在客户端和服务器端对用户上传的文件名和文件路径等项目分别进行严格的检查。还需对%00截断符进行检测,对HTTP包头的content-type也和上传文件的大小也需要进行检查。文件上传的目录设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。 + + 判断文件类型。在判断文件类型时,可以结合使用MIME Type、后缀检查等方式。在文件类型检查中,使用白名单方式。此外,对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。 + + 使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。 + + 单独设置文件服务器的域名。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。 + + 使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御。 + +11. **文件包含漏洞原理及防御?** + + - *原理:* + + 在通过PHP的相应函数(比如include())引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。 + + 需要满足的两个条件:1、 include()等函数通过动态变量的方式引入需要包含的文件。2、用户能够控制这个动态变量。 + + - *防御:* + + 对代码编程做过滤,由于Include/Require可以对PHP Wrapper形式的地址进行包含执行(需要配置php.ini),在Linux环境中可以通过”…/…/”的形式进行目录绕过,所以需要判断文件名称是否为合法的PHP文件。代码在进行文件包含时,如果文件名可以确定,可以设置白名单对传入的参数进行比较。PHP配置文件中有open_basedir选项可以设置用户需要执行的文件目录,如果设置目录的话,PHP仅仅在该目录内搜索文件。PHP配置中的allow_url_include选项如果打开,PHP会通过Include/Require进行远程文件包含,由于远程文件的不可信任性及不确定性,在开发中禁止打开此选项,PHP默认是关闭的。 + +12. **什么是同源策略?** + + 同源策略是检查页面跟本机浏览器是否处于同源,只有跟本机浏览器处于同源的脚本才会被执行,如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。 + +13. **简述Localstorage和sessionstorage区别** + + localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。 + + 他们均只能存储字符串类型的对象(虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器对其进行实现)。 + + localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。 + + sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了 + +14. **什么是原子操作?** + + 所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。 + +15. **windows系统的安全键是什么?** + + ctrl+alt+delete(机器默认接收此指令后立即终端当前所有进程,激活重新登录页面提示输入用户名和密码) + +16. **怎样绕cdn获取网络真实ip?** + + 可以尝试连上国外代理,ping域名,若ip不变即为真实ip。或者通过shodan,fofa搜索域名,尝试通过返回的信息判断真实ip + +17. **主机被入侵了怎么办?** + + 主机被入侵,优先看自己开放的服务。从而排查出可能的攻击点。比如开放http服务,可能是被web渗透进入。比如开放ssh,可能是被弱口令进入。在确定服务后,可以去相应服务日志下面排查,看看能不能找到攻击IP + +18. **作为网站后台管理员,怎样防止后台页面被别人搜到?** + + 最简单的是写一个过滤器,判断该用户是否为管理员,如果是则可以跳到管理员页面,如果不是,则调回首页(只要在users 表增加一个 role 字段来判断就行了。第二种就是建立一个权限系统(基于多个过滤器实现),如果你是使用 java 的,可以选择使用 spring security,参照官方的文档,配置一个简单的文件即可。复杂一点可以建立几个数据库表,用户表,权限表,资源表,用户-权限表,权限-资源表,权限组表,这样就可以实现一套很基础的权限系统了 + +19. **SQL注入时为什么有时候没有回显,结合php说说?** + + 设置了php.ini 为display_errors设置为off。同时设置error_reporting为E_ALL因此没有错误回显。 + +20. **什么叫APT攻击?** + + APT攻击,即高级可持续威胁攻击,也称为定向威胁攻击,指某组织对特定对象展开的持续有效的攻击活动。 + + 一、以智能手机、平板电脑和USB等移动设备为目标和攻击对象继而入侵企业信息系统的方式。 + + 二、社交工程的恶意邮件是许多APT攻击成功的关键因素之一,随着社交工程攻击手法的日益成熟,邮件几乎真假难辨。从一些受到APT攻击的大型企业可以发现,这些企业受到威胁的关键因素都与普通员工遭遇社交工程的恶意邮件有关。黑客刚一开始,就是针对某些特定员工发送钓鱼邮件,以此作为使用APT手法进行攻击的源头。 + + 三、利用防火墙、服务器等系统漏洞继而获取访问企业网络的有效凭证信息是使用APT攻击的另一重要手段 + +21. **定义ARP及其工作过程。** + + 它是用于查找与IPv4地址关联的MAC地址的协议。该协议充当OSI网络和OSI链路层之间的接口。 + +22. **解释僵尸网络。** + + 它是由互联网连接的许多设备,例如服务器,移动设备,IoT设备和受恶意软件控制的PC。 + +23. **SSL和TLS之间的主要区别是什么?** + + 两者之间的主要区别在于SSL验证发送方的身份。SSL可帮助您跟踪与之通信的人。TLS提供了两个客户端之间的安全通道。 + +24. **CSRF的缩写是什么?** + + CSRF代表“跨站请求伪造”。 + +25. **什么是2FA?如何在公共网站上实施?** + + TFA代表两因素身份验证。识别访问在线帐户的人是一个安全过程。仅在向身份验证设备提供证据后才授予用户访问权限。 + +26. **解释非对称和对称加密之间的区别。** + + 对称加密需要相同的密钥进行加密和解密。另一方面,非对称加密需要不同的密钥进行加密和解密。 + +27. **XSS的完整形式是什么?** + + XSS代表跨站点脚本。 + +28. **解释WAF** + + WAF代表Web应用程序防火墙。WAF用于通过过滤和监视Web应用程序与Internet之间的传入和传出流量来保护应用程序。 + +29. **什么是骇客?** + + 黑客入侵是发现计算机或专用网络中的弱点以利用其弱点并获得访问权限的过程。例如,使用密码破解技术来访问系统。 + +30. **谁是黑客?** + + 黑客是指发现并利用计算机系统,智能手机,平板电脑或网络中的弱点来获取访问权限的人。黑客是具有计算机安全知识的经验丰富的计算机程序员。 + +31. **什么是网络嗅探?** + + 网络嗅探是用于分析通过网络发送的数据包的工具。这可以通过专用软件程序或硬件设备来完成。嗅探可用于: + + - 捕获敏感数据,例如密码。 + - 窃听聊天消息 + - 通过网络监控数据包 + +32. **DNS监视的重要性是什么?** + + 雍域很容易感染恶意软件。您需要使用DNS监视工具来识别恶意软件。 + +33. **定义腌制过程。加盐有什么用?** + + 盐腌是通过使用特殊字符来延长密码长度的过程。要使用盐腌,了解盐腌的整个机制非常重要。撒盐是为了保护密码。它还可以防止攻击者在整个系统中测试已知单词。例如,将Hash(“ QxLUF1bgIAdeQX”)添加到每个密码中,以保护您的密码。它被称为盐。 + +34. **什么是SSH?** + + SSH代表安全套接字外壳或安全外壳。它是一个实用程序套件,可为系统管理员提供安全的方法来访问网络上的数据。 + +35. **SSL协议足以确保网络安全吗?** + + SSL验证发送者的身份,但是一旦将数据传输到服务器,它就不提供安全性。最好使用服务器端加密和散列来保护服务器免遭数据泄露。 + +36. **什么是黑盒测试和白盒测试?** + + 黑匣子测试:这是一种隐藏内部结构或程序代码的软件测试方法。 + + 白盒测试:一种软件测试方法,其中测试人员知道其内部结构或程序。 + +37. **解释网络安全中的漏洞。** + + 漏洞是指威胁者可以利用的软件代码中的薄弱点。它们最常见于SaaS(软件即服务)软件之类的应用程序中。 + +38. **说明TCP三向握手。** + + 它是网络中用于在本地主机和服务器之间建立连接的过程。此方法要求客户端和服务器在开始通信之前协商同步和确认数据包。 + +39. **定义术语残余风险。应对风险的三种方法是什么?** + + 在发现和消除威胁之后,这是一种平衡风险暴露的威胁。 + + 应对风险的三种方法是:减少它、躲开它、接受。 + +40. **定义渗透。** + + 数据泄露是指未经授权从计算机系统传输数据。该传输可以是手动的,并且可以由对计算机具有物理访问权限的任何人执行。 \ No newline at end of file diff --git a/Web安全、渗透测试面试题.md b/Web安全、渗透测试面试题.md index 9687819..c91b1f6 100644 --- a/Web安全、渗透测试面试题.md +++ b/Web安全、渗透测试面试题.md @@ -1,6 +1,6 @@ -# Web安全、渗透方向面试题 +# Web安全、渗透测试面试题 -### 1、CSRF和XSS和XXE 有什么区别,以及修复方式? +#### 1、CSRF、XSS、XXE - XSS:跨站脚本攻击,用户提交的数据中可以构造恶意代码,并且执行,从而实现窃取用户信息等攻击。 @@ -10,4 +10,199 @@ 2. 使用HTTP Only来禁止JavaScript读取cookie值 3. 输入时校验、浏览器与Web应用端采用相同的字符编码 -- CSRF:跨站请求伪造攻击 \ No newline at end of file +- 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实体 用户输出编码 + +后端: + +> 实体化编码 函数过滤 限制字符长度 + + + + + + + + + + + + + + + + + + + + + + + + +