第一部分:
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注入、目录遍历等不可控后果。
扩展:
自我介绍示例:
面试官您好,我叫xxx,xxx年毕业,非常荣幸能有机会参加这次面试。我曾有两段工作经历,第一段是xxx,第二段是xxx。在这段时间里,我对网络安全产生了浓厚的兴趣,尤其是对网络攻击防御、漏洞分析和安全策略等方面。我通过自学和项目实践,积累了一些相关经验,并参与了一些网络安全相关的项目,提升了自己的技术能力。未来,我希望往这个方向深入发展,希望能得到来公司任职的机会,谢谢!
有时间可以看看这个篇文章:【面试】面试必问12题,死亡回答 VS 满分答案都在这!
**所有的面试其实都是背出来的,提前做好准备,祝大家都能拿到好Offer! **
方便记忆版:
- MySQL数据库只有80端口开放的原因:- 站库分离或端口变更。- 3306端口未对外开放。
- 成熟CMS扫描目录的意义:- 发现敏感文件和备份。- 可能存在其他站点或重要信息。
- 后台编辑器发现的第一步:- 确认编辑器名称和版本。- 搜索已知的漏洞。
- 审查上传点的元素意义:- 突破上传限制。
- 区分与修复CSRF、XSS和XXE:- CSRF:欺骗用户发起的请求。- XSS:恶意代码执行。- XXE:利用XML实体注入。
- 无法连接3389端口的原因:- 未开放3389端口。- 端口被修改。- 防护拦截或内网设置。
- OWASP Top 10(2019年版):- 注入、身份认证失效、敏感信息泄露、XXE、访问控制失效、安全配置错误、XSS、反序列化漏洞、组件漏洞、日志记录不足。
- 业务逻辑漏洞与修复:- 密码找回漏洞:强化验证、限制尝试次数。- 身份认证漏洞:避免会话固定和Cookie仿冒。- 验证码漏洞:防止暴力破解和绕过攻击。
- 上传图片正常访问而脚本403的原因:- Web服务器配置限制脚本执行。
- 利用注册页面找回密码提示:- 爆破用户名再爆破密码。
第二部分:(了解就好,太多了记忆不太现实)
1、安全服务的理解:
- 安全服务对象是人, 渗透测试对象是网站。
2、拿到一个待检测的站,你觉得应该先做什么?
- 收集信息:包括whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙等信息。
3、MySQL的网站注入,5.0以上和5.0以下有什么区别?
- MySQL 5.0以下缺乏information_schema系统表,限制了注入漏洞利用的方式。
4、在渗透过程中,收集目标站注册人邮箱对我们有什么价值?
- 可能泄露密码,用于登录后台;作为搜索引擎关键词;找到其他邮箱和社交账号;生成专用字典;获取管理员密码设置习惯等。
5、判断出网站的CMS对渗透有什么意义?
- 查找已曝光的程序漏洞;下载源码进行代码审计。
6、一个成熟并且相对安全的CMS,渗透时扫目录的意义?
- 扫描敏感文件、二级目录,寻找误操作和备份文件等。
7、常见的网站服务器容器有哪些?
- 包括IIS、Apache、nginx、Tomcat、WebLogic、JBoss等。
8、MySQL注入点,用工具对目标站直接写入一句话,需要哪些条件?
- 需要root权限和网站的绝对路径,以及对文件的读写权限。
9、已知哪些版本的容器有解析漏洞?
- 比如IIS 6.0的路径解析漏洞、IIS 7.0/7.5的Fast-CGI解析漏洞、nginx版本小于等于0.8.37的Fast-CGI漏洞等。
10、如何手工快速判断目标站是Windows还是Linux服务器?
- 区分大小写敏感性:Linux服务器对大小写敏感,Windows服务器不敏感。
11、为何一个MySQL数据库的站,只有一个80端口开放?
- 可能是端口被更改或未扫描到;站库分离;MySQL的3306端口未对外开放。
12、3389 无法连接的几种情况:
- 端口未开放:防火墙或网络设备未允许3389端口通过。
- 端口被修改:3389端口被修改到其他端口号。
- 防护拦截:安全软件或设备拦截了3389端口的连接。
- 内网访问:如果处于内网环境,可能需要进行端口转发才能访问。
13、如何突破注入时字符被转义?
- 宽字符注入:利用数据库对宽字符的处理方式绕过转义。
- Hex 编码绕过:将注入语句用十六进制编码来绕过输入过滤。
14、在某后台新闻编辑界面看到编辑器,应该先做什么?
- 查看编辑器的名称和版本。
- 搜索公开的漏洞或安全公告,了解是否存在已知的安全问题或漏洞。
15、拿到一个 webshell 发现网站根目录下有 .htaccess 文件,我们能做什么?
- 使用 .htaccess 文件控制网站配置,例如将特定文件解析为 PHP 文件,以执行恶意代码。
16、注入漏洞只能查账号密码?
- 脱库:获取敏感信息或配置。
- 上传 webshell:在服务器上执行命令或者进行更深入的攻击。
- 执行命令:通过注入漏洞执行操作,如文件操作、系统命令等。
17、安全狗会追踪变量,从而发现出是一句话木马吗?
- 是根据特征码来检测一句话木马,攻击者可以通过修改一句话木马代码绕过检测。
18、access 扫出后缀为 asp 的数据库文件,访问乱码。如何实现到本地利用?
- 使用迅雷等下载工具下载文件,并将后缀修改为 .mdb,然后可以本地使用 Access 软件打开。
19、提权时选择可读写目录,为何尽量不用带空格的目录?
- Exploit 执行时可能需要空格来分隔参数,目录路径带空格会导致命令执行失败。
19-1、某服务器有站点 A、B,为何在 A 的后台添加 test 用户,访问 B 的后台也添加上了 test 用户?
- 可能是因为站点 A 和 B 使用了同一数据库,共享用户表或会话信息。
20、注入时可以不使用 and、or、xor 直接 order by 开始注入吗?
可以直接通过 order by 来检测是否存在注入点,而不需要用 and/or/xor 条件来判断。
21、防注入系统如何利用拿 shell?
- 需要在注入时绕过防护系统的检测,可以尝试使用技术如时间延迟、多语句注入等来绕过检测,然后利用漏洞获取 shell。
22、上传大马后访问乱码时的解决办法?
- 调整浏览器编码以正确显示内容,确保浏览器能够正确解析服务器返回的内容。
23、审查上传点元素的意义?
- 可以通过审查元素找到上传文件类型的限制或其它安全设置,帮助绕过限制上传更多类型的文件。
24、利用目标站注册用户找回密码功能提示进行攻击?
- 首先通过爆破用户名,再爆破密码,利用这些信息尝试获取对应用户的访问权限。
25、利用任意文件下载漏洞?
- 在下载链接中利用文件路径参数(如
file=
)尝试下载敏感文件,例如配置文件,以获取更多目标站的信息。
26、利用目录结构进行敏感文件扫描?
- 在已知目录结构中的敏感目录下,可以直接扫描获取网站的敏感文件或目录信息。
27、使用 XSS 实现对目标站的长久控制?
- 在需要登录后才能访问的文件中插入 XSS 脚本,或者通过后台登录处的 JS 记录用户账号密码,实现对目标站长久的控制。
28、后台修改管理员密码处如何读取隐藏密码?
- 修改密码输入框的属性,将
password
类型改为text
类型,使密码明文显示。
29、上传图片可以正常访问但上传脚本被禁止的原因?
- 可能是服务器对不同文件类型设置了不同的访问权限,例如对图片允许访问但对脚本则禁止执行。
30、通过审查元素得知网站所使用的防护软件?
- 在页面上查看 HTML 或通过浏览器开发者工具(F12)来识别网站所使用的防护软件或其它安全配置信息。
31、建立一个 .zhongzi 文件夹的用意是什么?
- 这是一个隐藏文件夹,目的是为了不让管理员发现你传上去的工具或数据。
32、SQL 注入的测试选项选择及理由?
- 选择 B. demo.jsp?id=2-1。理由是在 URL 编码中,"+" 可能会被解析为空格,导致参数解析混淆,而"-" 则不会引起此问题。
33、处理变形注入的思路?
- 参数 DATA 经过了 base64 编码后传入服务器,因此在测试时也需对参数进行 base64 解码才能正确完成测试。
34、在 demo.jsp?uid=110 注入点上获取 webshell 的思路?
- 可能的方法包括利用写入权限构造联合查询语句使用 INTO OUTFILE 写入 webshell,或使用工具如 sqlmap 直接获取 shell。优选的方法取决于目标系统的特点和漏洞环境。
35、CSRF、XSS 和 XXE 的区别及修复方式?
- XSS 是跨站脚本攻击,修复方式包括字符实体转义、使用 HTTP Only 来禁止 Cookie 被 JavaScript 访问等。
- CSRF 是跨站请求伪造攻击,修复方式包括在关键操作中使用 Token 来验证请求来源。
- XXE 是 XML 外部实体注入攻击,修复方式是严格禁止解析外部实体。
36、CSRF、SSRF 和重放攻击的区别?
- CSRF 是跨站请求伪造攻击,由客户端发起。
- SSRF 是服务器端请求伪造攻击,由服务器发起。
- 重放攻击 是攻击者截获有效数据包后重放以达到目的。
37、业务逻辑漏洞及修复方式?
- 密码找回漏洞:修复包括增强验证、限制尝试次数等。
- 身份认证漏洞:修复包括使用随机生成的 Session ID、加强 Cookie 安全性等。
- 验证码漏洞:修复包括增加验证码复杂度、防止自动化脚本绕过等。
38、可能存在问题的 HTTP 请求及标注?
- GET /ecskins/demo.jsp?uid=2016031900&keyword=”hello world!”
- 可能的问题:1. SQL 注入;2. XSS;3. Cookie 欺骗;4. 会话 CSRF 或重放风险。
39、绕过修复后的方案?
- 针对不同漏洞的修复方案,可以通过不断更新和优化攻击手段来绕过修复措施,例如利用新发现的漏洞或变形注入等。
40、常用的渗透工具?
- 常用的工具包括 Burp Suite、AppScan、Acunetix、SQLMap、Fiddler 等,其中最常用的是 Burp Suite,用于漏洞扫描、攻击模拟和数据拦截等。
41、 描述一个你深入研究过的 CVE 或 POC
例子:比如 CVE-2017-11191,涉及 Office 的 DDE 漏洞。
42. 谈谈你经常关注的安全平台
例子:例如 Tools.net、90sec、先知社区、安全客、FreeBuf 等。
43. 给你一个网站你如何进行渗透测试?(比较常见)
- 信息收集阶段:1. 获取域名的 whois 信息。2. 查询服务器旁站和子域名。3. 查看服务器操作系统版本和中间件漏洞。4. IP 地址端口扫描和漏洞探测。5. 扫描网站目录结构和敏感文件。6. 使用 Google Hacking 进一步探测敏感信息。
- 漏洞扫描阶段: 检测漏洞如 XSS、SQL 注入、命令执行等。
- 漏洞利用与权限提升: 利用漏洞获取权限,比如 Webshell、服务器提权等。
- 日志清理及报告: 清理测试痕迹,并输出渗透测试报告和修复建议。
44. SQLMap 如何对一个注入点进行利用?
- 根据注入点的类型(GET、POST、Cookie等),使用 SQLMap 的不同参数进行注入测试。
45. Nmap 的扫描原理
- 端口状态:open、closed、filtered等。
- 扫描原理:根据发送的探测包和目标主机的响应来判断端口状态和操作系统类型。
46. SQL 注入的几种类型
- 报错注入、布尔型注入、延时注入、宽字节注入等。
47. 报错注入的函数示例
- updatexml
- extractvalue
48. 如何判断延时注入?
- 使用条件语句如
if
和sleep()
函数来判断延时注入。
49. 盲注和延时注入的共同点
- 都是基于一个字符一个字符的判断来进行注入测试。
50. 如何获取一个网站的 Webshell?
- 列举了几种可能的方法,如上传漏洞、后台编辑模板、SQL 注入写文件、命令执行等。
第三部分:安全服务
1)怎么在流量里看出来是一个恶意的,确定是攻击的告警
以sql 注入为例:
- 特殊函数和Payload检测:- 查看HTTP请求参数中是否包含典型的SQL注入payload,如
union+select
,concat
,error-based
,boolean-based
等。- 检查是否有不常见的SQL函数或操作符,如information_schema
相关查询,时间延迟函数(如sleep()
)等,这些通常不会出现在正常业务流量中。 - 编码和转义检测:- 分析请求中的参数是否经过了特殊编码或转义,这可能是攻击者尝试绕过输入过滤和检测的手段。
- 响应内容分析:- 检查服务器响应是否包含异常或不期望的内容,如数据库错误信息(如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)看过流量监测设备吗,如果有一个告警他像是攻击成功,但是他是一个误报,这个时候你怎么办
从请求头、请求体和响应体判断,看具体流量特征来判断是否是误报
版权归原作者 狗蛋的博客之旅 所有, 如有侵权,请联系我们删除。