第一部分:
1、为何一个 MYSQL 数据库的站,只有一个 80 端口开放?
- 答案: 可能是因为数据库端口(例如3306)没有对外开放,或者端口被修改了而未扫描到。
2、一个成熟并且相对安全的 CMS,渗透时扫目录的意义?
- 答案: 扫描目录可以发现敏感文件、备份文件、配置文件等,帮助发现潜在的安全问题。
3、在某后台新闻编辑界面看到编辑器,应该先做什么?
- 答案: 首先查看编辑器的名称和版本,然后搜索公开的漏洞,以寻找是否存在已知的漏洞可利用。
4、审查上传点的元素有什么意义?
- 答案: 审查上传点可以发现是否存在文件上传漏洞,以及是否能上传恶意脚本或文件进行攻击。
5、CSRF、SSRF、XSS 及 XXE 的区别
答案:
- XSS (跨站脚本攻击): 攻击者向用户注入恶意脚本,利用用户的浏览器执行。
- CSRF (跨站请求伪造): 攻击者利用受信任用户的权限执行非意愿操作。
- XXE (XML 外部实体注入): 攻击者利用 XML 解析器漏洞,执行恶意操作。
- SSRF(服务端请求伪造): 攻击者通过操纵服务器发起的请求,使其访问攻击者选择的内部系统或资源。
6、3389 无法连接的几种情况?
- 答案: 3389 端口未开放、端口被修改、防火墙拦截、处于内网需要端口转发等原因。
7、列举出 OWASP Top 10 2019?
- 答案: 包括注入、失效的身份认证、敏感信息泄露、XXE、失效的访问控制、安全配置错误、XSS、不安全的反序列化、使用含有已知漏洞的组件、不足的日志记录和监控。
8、业务逻辑漏洞的例子及修复方式?
- 答案: 包括密码找回漏洞、身份认证漏洞、验证码漏洞等。修复方式涵盖强化验证流程、使用安全的验证码机制、限制密码重置请求等措施。
9、目标站无防护,上传图片可以正常访问,上传脚本格式访问则 403,什么原因?
- 答案: 可能是服务器配置只允许特定类型文件执行,尝试更改脚本后缀名可能绕过限制。
10、目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,如何利用?
- 答案: 可以利用此提示进行用户名爆破攻击,试图找到存在的用户名并尝试进一步的攻击,如密码爆破或利用可能存在的 SQL 注入漏洞。
11、有关注过现在最新的漏洞?或你最近复现的漏洞是啥
答案:需要自己准备
12、有挖过漏洞或代码审计经验么?能简单讲一下成果吗?
1)SQL 注入漏洞:
问题: 用户输入未经过正确过滤而直接传递到 SQL 查询中,可能导致
修复建议: 使用参数化查询或预编译语句来处理用户输入,而不是直接拼接 SQL 查询字符串。
2)恶意 SQL 代码被执行。
修复建议: 使用参数化查询或预编译语句来处理用户输入,而不是直接拼接 SQL 查询字符串。
3)跨站脚本(XSS)漏洞:
问题: 用户输入未经过适当的转义而直接嵌入到网页中,恶意脚本可能被执行。
修复建议: 对用户输入进行适当的 HTML 转义,确保任何插入到网页的内容都是安全的文本而不是执行的脚本。
4)文件上传漏洞:
问题: 用户可以上传恶意文件(如含有恶意代码的文件)到服务器,可能导致任意代码执行或者服务器被入侵。
修复建议: 对上传的文件进行严格的类型验证、文件名验证、内容检查和存储路径限制,确保只有安全的文件能够上传和访问。
5)权限问题:
问题: 用户能够访问他们没有权限的资源或执行超出其权限的操作。
修复建议: 实施强制访问控制(如角色基础的权限控制)、最小权限原则、合理的会话管理和身份验证机制等。
13、远程访问内网的方法
- 端口映射
我们可以通过端口映射的方式实现远程访问内网服务器。
- 虚拟专用网络
另外一种方式是通过虚拟专用网络(VPN,Virtual Private Network)来实现远程访问内网服务器。
14、如何发现 洪水攻击(DDOS)
- 网络缓慢
- 特定网站无法访问
- 垃圾邮件数量激增
- 网络连接异常断开
- 访问被拒绝
15、cc 攻击
CC攻击是一种DDoS攻击的类型,主要通过大量HTTP GET请求来使服务器过载,从而导致服务不可用,影响正常用户访问。
攻击方式: 攻击者发送大量的HTTP GET请求,超过服务器处理能力,造成服务器资源耗尽,影响服务运行,如数据库连接用尽等。
防御方法:
-
缓存技术防御: 利用缓存来减轻对后端服务器的压力。大型互联网企业通常使用CDN节点来缓存内容,提高系统的整体处理能力。
-
JavaScript人机识别方案: 当攻击绕过缓存时,引入JavaScript人机识别方案。服务器返回包含特殊JavaScript代码的响应,正常用户浏览器能够处理,而攻击程序则会被拦截,减少对服务器的影响。
-
特殊JavaScript代码应对: 检测到攻击行为时,服务器返回带有特殊JavaScript代码的响应。这种方式不影响正常用户,但能有效阻止或减弱攻击的影响力。
-
监控与响应: 实时监控网络流量和服务器性能,及时发现异常流量和攻击行为。建立自动响应机制,如封禁攻击源IP或启动其他反制措施,保护服务器和网络安全。
16、有用过什么安全设备?
- 入侵检测系统(IDS)
- 蜜罐
- 堡垒机
- 防火墙
- 入侵防御系统(ips)
17、如何绕过CDN(参考)
- 子域名
子域名查询:
在一些网站中有可能只加速了主站,而一些其它子域名和主站在同一个C段或者同服务器
- 国外访问
一些CDN只加速了部分地区,那么在为加速地区的访问就是真实的主机ip
- 邮件访问
在进行邮件发送时邮件的内容源码里面包含了主机的真实IP
18、如何使用搜索引擎搜索目标的旁站信息
fofa为例:(直接搜索域名)
- 语法:domain="xxx.com"
19、给你一个网站你如何发现网站的后台
图片来源:渗透技巧 | 查找网站后台方法总结整理-腾讯云开发者社区-腾讯云 (tencent.com)
20、反序列化漏洞原理
序列化过程将文本信息转变为二进制数据流。这样就信息就容易存储在硬盘之中,当需要读取文件的时候,从硬盘中读取数据,然后再将其反序列化便可以得到原始的数据。
漏洞原理:未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码执行、SQL注入、目录遍历等不可控后果。
21、有没有做过渗透测试
经常在fofa上边搜索资产,探测资产是否存在漏洞。有时也会去漏洞盒子平台找公益src去测试
22、平时渗透用手工还是工具多一些
测试的时候手工测试和工具结合测试的
23、是否用过防火墙、ips、ids等设备?
公开的有用过 firewall,iptables ,产商的产品根据自己的情况说
24、会做一些整理文档的工作吗?
可以对文档进行整理和优化。可以熟练使用office等工作软件
25、了解那些最新的漏洞
最近刚出了向日葵、天融信的vpn没公开漏洞
26、如何做linx的安全加固和病毒分析
加固:对主机进行基线加固
分析:可以通过一些在线分析网站,去分析病毒样本
27、是否用过情报社区
微步、奇安信威胁情报社区
28、给你一个网站你如何进行渗透测试?
-
信息收集阶段:
- 获取域名的 whois 信息。
- 查询服务器旁站和子域名。
- 查看服务器操作系统版本和中间件漏洞。
- IP 地址端口扫描和漏洞探测。
- 扫描网站目录结构和敏感文件。
- 使用 Google Hacking 进一步探测敏感信息。
-
漏洞扫描阶段: 检测漏洞如 XSS、SQL 注入、命令执行等。
-
漏洞利用与权限提升: 利用漏洞获取权限,比如 Webshell、服务器提权等。
-
日志清理及报告: 清理测试痕迹,并输出渗透测试报告和修复建议。
29、用过那些web扫描工具
xray、awvs、appscan
30、用过那些主机扫描工具
nessus、极光、goby
31、在项目时如果遇到的0day漏洞,该怎么办
看0day相关的网络连接日志,分析链接的流量,找到攻击代码,根据攻击代码做防护加固
32、做安全服务期间具体工作是什么
渗透测试,基线扫描,主机漏洞扫描,弱口令扫描,安全事件排查,重大节日保障,安全设备上线及维护等。
33、测试是不是只使用工具
不是,会使用burp手工测试
扩展:
自我介绍示例:
面试官您好,我叫xxx,xxx年毕业,非常荣幸能有机会参加这次面试。我曾有两段工作经历,第一段是xxx,第二段是xxx。在这段时间里,我对网络安全产生了浓厚的兴趣,尤其是对网络攻击防御、漏洞分析和安全策略等方面。我通过自学和项目实践,积累了一些相关经验,并参与了一些网络安全相关的项目,提升了自己的技术能力。未来,我希望往这个方向深入发展,希望能得到来公司任职的机会,谢谢!
有时间可以看看这个篇文章:【面试】面试必问12题,死亡回答 VS 满分答案都在这!
所有的面试其实都是背出来的,提前做好准备,祝大家都能拿到好Offer!
场景题:
1、你在做监测的时候,发现一条cs连接成功的告警,这种情况下,你该如何协助客户下一步处理
- 如条件允许,服务器断网
- 登录服务器排查相关文件位置,进程等
- 查看返连的服务器ip,进行溯源
2、如果你发现一个接口存在sql注入漏洞,报告提交至研发后,研发不知道怎么修复,要求你说详细点,你会怎么做?
-
检查输入:验证整数参数不为空且为数字,字符串参数仅允许特定字符(如 [0-9a-zA-Z])。
-
转义特殊字符:对输入中的特殊字符(如
’
、"
) 进行转义,防止它们影响 SQL 查询。 -
定制错误信息:使用自定义错误信息来隐藏原始异常,减少泄露信息。
3、如果一个漏洞研发未修复完成,客户明天必须上线,因为会有重要活动,这种情况下,客户询问你,你有什么处理的方法和建议?
WAF写条规则、安全狗之类的也能起到一定作用
4、打过补丁为什么扫描器还能扫到漏洞?
- 扫描器只扫描了版本,需要进一步确认
- 需确认打的补丁能否修复该漏洞
5、都接触过那些厂商
安恒、深信符、奇安信,不过主要是奇安信
6、接受过培训吗
没有大学刚开始就接触网络安全,自己对网络感兴趣然后自己开始实习
7、介绍一下之前的项目中主要负责哪些工作?
有参加过七月份的护网,主要设备有天眼,IPS. WAF等对告警进行分析,确认是攻击事件后,进行IP封堵工作
审计:对系统相关人员进行了现场调研,对系统的数据安全风险保障能力进行核实验证。完成数据安全核查,并出具数据安全合规性评估报告。
渗透: 对上线前的网站进行安全检查,找出安全漏洞,提出整改建议,协助整改
8、能否独立完成渗透测试
可以,有对网站做过测试,编写完整的报告
9、平时挖洞还是验证漏洞多些?
验证相对多一些
10、企业的防护架构有哪些
网络分为内网环境和外网环境,外网出入空配置一些防火墙设备;配备的有日志监控系统;还有蜜罐用来事先洞察攻击者的手段
11、渗透测试报告是你们提供的嘛
测试之前回询问客户,看是否使用客户那边的渗透测试报告模板
12、是否用过绿盟的扫描器
用过,极光
13、天眼简单配置可以吗
系统采用旁路部署的方式,接入到所监控网络的交换机镜像端口处。不会破坏系统原有的网络架构
14、印象中爆发过的漏洞
1og4j、spring boot代码执行,structs2
安全服务
1)怎么在流量里看出来是一个恶意的,确定是攻击的告警
以sql 注入为例:
-
特殊函数和Payload检测:
- 查看HTTP请求参数中是否包含典型的SQL注入payload,如
union+select
,concat
,error-based
,boolean-based
等。 - 检查是否有不常见的SQL函数或操作符,如
information_schema
相关查询,时间延迟函数(如sleep()
)等,这些通常不会出现在正常业务流量中。
- 查看HTTP请求参数中是否包含典型的SQL注入payload,如
-
编码和转义检测:
- 分析请求中的参数是否经过了特殊编码或转义,这可能是攻击者尝试绕过输入过滤和检测的手段。
-
响应内容分析:
- 检查服务器响应是否包含异常或不期望的内容,如数据库错误信息(如MySQL的错误信息),或者是否返回了敏感数据(如数据库表结构、用户名、密码等)。
-
日志和异常流量分析:
- 分析服务器端的日志,特别是数据库服务器的日志,查看是否有异常的SQL查询或者拒绝服务攻击的迹象(如大量的查询或异常查询频率)。
-
网络层面的分析:
- 使用网络监控工具分析流量,观察是否有大量的SQL查询请求,或者异常的数据库响应时间(可能暗示着时间延迟攻击)。
2)堡垒机应急
更新版本,更换口令 (改密码)
3)怎么分析大型日志
根据轻重缓急进行筛选查看,从高危到低危,从rce到目录遍历这种等等
4)会做应急吗
- 先封禁ip
- 确定这个木马传到哪个服务器上了
- 隔离受攻击的服务器所在区域
- 排查木马(看进程linux(ps -aux、top\kill -9 xxxx)windows(tasklist、taskkill /pid xxxx)、看开机自启、看计划任务windows(schtasks /query)linux(cron))
- 持续跟踪、写报告
5)平时绕过waf吗,怎么绕的
绕空格/**/、/*!*/、+、%09、%0a、%00、括号
关键字16进制、char()、字符串拼接
等价函数替换sleep()==benchmark()、if()==case when then else end、ascii()==ord()、substr()==substring()
6)基线怎么做
基线规定了一系列标准,比如密码要求一个月换一次、要求密码满足复杂度要求、要求关闭445端口
基线加固就是上服务器里面挨个检查这这些基线项目是否合格
可以手工检查,但是手工做重复工作很麻烦,所以会有脚本或者工具来帮助完成这些任务
7)看过流量监测设备吗,如果有一个告警他像是攻击成功,但是他是一个误报,这个时候你怎么办
从请求头、请求体和响应体判断,看具体流量特征来判断是否是误报