安全面试题——笔记(一)
安全面试题
笔记(一)
1.拿到一个待检测的站,你该如何渗透?
要点
渗透测试必须在授权前提下进行,否则违法。
信息收集是渗透测试的第一步,收集的信息越多,攻击面越广。
漏洞测试包括检测SQL注入、文件上传、命令执行、XSS等多种漏洞。
漏洞利用后需进行权限提升和权限维持,确保长期控制。
内网扫描和攻击是渗透测试的重要环节,需建立隧道代理。
渗透测试完成后需清理痕迹并输出测试报告和修复方案。
深度问答
- 渗透测试的第一步是什么?
信息收集,包括服务器相关信息、网站指纹识别和呼应子信息等。
- 信息收集包括哪些具体内容?
服务器真实IP、系统类型、版本、开放端口、CMS、CDN、证书、DNS记录、子域名、旁站、C段等。
- 漏洞测试主要检测哪些漏洞?
SQL注入、文件上传、命令执行、XSS、XXE、弱口令、文件包含等。
- 权限提升有哪些常见方法?
Windows的MyCircle UDF提权、MS08-067等内核漏洞提权,Linux的SUID/SGID提权、内核漏洞提权等。
- 渗透测试完成后需要做什么?
清理痕迹(删除web或系统日志)并输出测试报告和修复方案。
术语解释
CMS: 内容管理系统,用于创建和管理网站内容的软件。
CDN: 内容分发网络,通过分布式服务器提高网站访问速度和安全性。
SQL注入: 通过输入恶意SQL代码攻击数据库的技术。
XSS: 跨站脚本攻击,通过注入恶意脚本到网页中攻击用户。
权限提升: 通过漏洞或技术手段从低权限账户获取更高权限的过程。
2.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
要点
XSS(跨站脚本攻击)是通过注入恶意脚本窃取用户信息的攻击方式,修复方法包括字符转义、HTTPOnly设置和输入校验。
CSRF(跨站请求伪造攻击)利用用户已认证状态执行非自愿操作,可通过Token嵌入、密码验证和Referer校验来防范。
XXE(XML外部实体注入攻击)通过XML实体请求外部内容,修复方法是禁止XML解析外部实体。
XSS可能成为实现CSRF攻击的手段之一,说明不同漏洞间可能存在关联性。
深度问答
- XSS攻击的主要危害是什么?
主要危害是窃取用户敏感信息如cookie,并可能执行恶意操作。
- 为什么HTTPOnly能防范XSS攻击?
HTTPOnly属性可阻止JavaScript读取cookie,从而保护会话信息不被窃取。
- CSRF攻击为什么需要用户已登录状态?
CSRF利用的是用户已认证的会话状态来执行非自愿操作,未登录状态无法利用此漏洞。
- XXE攻击如何导致敏感文件泄露?
通过XML外部实体引用功能,攻击者可读取服务器上的本地文件如/etc/passwd。
- 为什么说XSS和CSRF有关联?
XSS获取的用户凭证可被用于构造CSRF攻击,两者结合可增强攻击效果。
术语解释
XSS(跨站脚本攻击): 攻击者向网页注入恶意脚本,当其他用户浏览时执行的攻击方式。
CSRF(跨站请求伪造): 利用用户已认证状态,诱使用户在不知情时提交恶意请求的攻击。
XXE(XML外部实体注入): 通过XML解析器处理外部实体时导致的文件读取或SSRF攻击。
HTTPOnly: Cookie属性,阻止JavaScript访问以增强安全性。
Referer: HTTP头部字段,表示请求来源页面,可用于CSRF防护。
3.XSS有哪几种类型 ?
要点
反射型XSS(非持久型)通过恶意链接诱导用户点击触发攻击,恶意代码不存储在目标网站中。
存储型XSS(持久型)的恶意代码存储在服务器端(如数据库),具有更强的稳定性。
DOM型XSS通过修改网页的DOM节点形成漏洞,完全由前端处理,属于前端JavaScript的安全漏洞。
反射型和存储型XSS由后端处理,而DOM型XSS由前端浏览器处理。
反射型和存储型XSS属于服务端安全漏洞,DOM型XSS属于前端安全漏洞。
深度问答
- 反射型XSS的攻击特点是什么?
反射型XSS通过恶意链接诱导用户点击触发攻击,恶意代码不存储在目标网站中,仅对当前访问有效,执行一次后即失效。
- 存储型XSS与反射型XSS的主要区别是什么?
存储型XSS的恶意代码存储在服务器端(如数据库),具有持久性;而反射型XSS的恶意代码不存储,仅通过URL传递。
- DOM型XSS的工作原理是什么?
DOM型XSS通过修改网页的DOM节点形成漏洞,完全由前端处理,恶意代码的提取和执行均由前端浏览器完成。
- 为什么DOM型XSS属于前端安全漏洞?
因为DOM型XSS的恶意代码提取和执行均由前端浏览器完成,不涉及后端处理。
- 如何区分反射型、存储型和DOM型XSS?
反射型和存储型XSS由后端处理,反射型的恶意代码存在于URL中,存储型的恶意代码存储在服务器端;DOM型XSS由前端处理,通过修改DOM节点触发。
术语解释
XSS(跨站脚本攻击): 一种通过在目标网站中注入恶意脚本代码来攻击用户的安全漏洞。
反射型XSS(非持久型XSS): 恶意代码通过URL传递,不存储在目标网站中,仅对当前访问有效。
存储型XSS(持久型XSS): 恶意代码存储在服务器端(如数据库),具有持久性。
DOM型XSS: 通过修改网页的DOM节点形成的XSS漏洞,完全由前端处理。
4.如何验证存在xSS漏洞 ?
要点
XSS漏洞的本质是用户输入的HTML/JS代码未经处理直接输出到网页中执行
验证XSS漏洞的标准流程:1)找输入点 2)定输出点 3)构造Payload
通过修改P标签内容插入script脚本是最基础的XSS验证方法
alert弹窗测试是验证XSS漏洞最直观有效的方式
输出点的定位可通过查看网页源代码实现
深度问答
- 什么是XSS漏洞的核心特征?
服务器未过滤用户输入的HTML/JS代码,导致恶意脚本在浏览器执行
- 为什么P标签在XSS验证中很重要?
P标签是常见的输出位置,修改其内容可插入恶意脚本
- alert弹窗测试有什么优势?
直观显示脚本执行效果,是最直接的漏洞验证方式
- 如何快速定位网页中的输出点?
通过浏览器开发者工具查看网页源代码,寻找用户输入内容的显示位置
- 为什么说输入点和输出点的确定是验证关键?
只有找到这两个关键环节才能构造有效的攻击Payload
术语解释
XSS(跨站脚本): 攻击者在网页中嵌入恶意脚本,当用户浏览时执行的攻击方式
Payload: 在漏洞利用过程中注入的恶意代码或数据
P标签: HTML中的段落标签,常用于内容显示
alert弹窗: JavaScript的弹出警告框,常用于测试脚本执行
输入点/输出点: 用户数据输入和系统显示的关键位置
5.GET 和 POST 的区别?
要点
GET请求数据暴露在URL中,安全性较低;POST请求数据放在请求体中,安全性更高
GET通常用于获取数据,POST通常用于修改数据
GET请求有数据量限制(约2KB),POST理论上无大小限制
GET产生一个TCP包,POST产生两个TCP包(先发请求头,再发数据)
GET请求会被浏览器自动缓存,POST默认不会缓存
深度问答
- 为什么GET方法被认为不够安全?
因为GET请求将数据直接暴露在URL中,容易被截获或记录
- POST方法在什么情况下会产生两个TCP数据包?
当POST请求发送时,浏览器会先发送HEAD头等待服务器100响应,再发送数据体
- 如何通过工具验证POST请求的数据安全性?
使用Burp Suite等抓包工具可以观察到POST数据被封装在请求体中而非URL
术语解释
GET方法: 一种HTTP请求方法,数据通过URL传输,用于获取资源
POST方法: 一种HTTP请求方法,数据通过请求体传输,用于提交数据
Burp Suite: 著名的Web安全测试工具,可用于拦截和分析HTTP请求
TCP数据包: 传输控制协议的数据传输单元,包含头部和数据部分