Sec-Interview 面试题库
友好阅读版:手机/微信直接打开,题目点击进入格式化阅读页面。
README
·
SUMMARY
Chapter1
如何处理子域名爆破的泛解析问题
1. 泛解析的探测与识别
登录验证码怎么绕过
1. 验证码本身的设计缺陷
工作组环境下怎么判断是否有域环境
1. 系统信息查看
只有一个网卡通过什么方式判断内网中是否有其他网段
1. 路由表分析
说说 Webpack 信息泄露
常见的泄露文件和表现形式
net group "Domain Admins" /domain 这条命令查询域内管理员没查到,那么可能出现了什么问题,怎么解决
1. 权限问题
继上题,这条命令的本质究竟是去哪里查
查询的详细过程
如何判断目标单位的机器是哪种协议出网
1. 自动化扫描与端口探测
NSE 脚本原理
1. NSE 脚本的运行机制
Nmap 的 FIN 扫描和空扫描是什么
1. FIN 扫描 (FIN Scan)
为什么要搜集目标单位的控股信息
1. 股权穿透
如何绕过 CDN 查找真实 IP
1. 子域名查询
怎么找边缘资产呢
1. 证书关联法
移动端怎么收集域名呢
1. 移动端与新媒体资产关联(绕过备案)
SSL 证书有什么用,对信息收集有什么帮助
SSL/TLS 证书的作用
说说源码泄露搜索
1. 代码托管平台搜索(主战场)
Chapter2
输出到 href 属性的 XSS 如何防御
1. 严格的白名单验证
为什么很多 XSS 在 Chrome 可以复现,但在 Firefox 不行?你如何判断这是漏洞问题还是浏览器差异?
1. 为什么 Chrome 能行,Firefox 不行?
黑名单拦截了所有常见标签和事件,但页面仍然需要支持富文本渲染,你会从哪些方向尝试突破?
1. 黑名单通常基于已知的威胁列表,但 HTML 标准在不断演进,总有漏网之鱼
CSP 的绕过方式有哪些
1. 配置缺陷类: unsafe inline 与 unsafe eval
XSS 绕过方式
1. 大小写混淆绕过
XSS 利用方式
1. 窃取 Cookie 和 Session
XSS 怎么打内网
1. 端口扫描
XSS 如何绕过 HttpOnly 获取 Cookie
XST 是一种利用 HTTP TRACE 或 TRACK 方法的攻击,它在某些特定配置下可以绕过 HttpOnly。当一个网站允许 TRACE 请求时,攻击者可以通过以下步…
有 Shell 的情况下如何使用 XSS 实现对目标站的长久控制
1. 利用 XSS 劫持管理员会话
反射型、存储型、DOM 型 XSS 的核心区别
| 类型 | 数据是否存储 | 是否经过服务端 | 执行位置 |
为什么说 DOM XSS 对传统 WAF 基本免疫
在传统的 反射型 XSS 或 存储型 XSS 中,Payload 必须经过 HTTP 请求发送到服务器(WAF 就在这里把守),然后再由服务器返回给浏览器
如果你发现一个输入点最终进入了 `<textarea>`,你是直接放弃,还是继续深入?为什么?
<textarea 属于 RCDATA 元素 。浏览器在解析它时,会一直寻找闭合标签 </textarea
Chapter3
SameSite 防御 CSRF 的原理
1. SameSite=Strict
JSON 格式的 CSRF 如何防御
1. 使用 CSRF Token
Ajax 发送 POST 请求会发几个数据包
AJAX 发送一个 POST 请求,通常会发送 一个 数据包
Chapter4
MSSQL 的 xp_cmdshell() 函数被禁用怎么绕过
1. 利用其他扩展存储过程
MySQL 5.0 以上和 5.0 以下的区别
1. information schema 的有无
SQL 注入 outfile() 被过滤怎么绕过
1. 利用 dumpfile() 函数
SQL 注入中 Post 和 Get 都做了防注入可采用什么方式绕过
许多 Web 应用程序不仅处理 POST 和 GET 数据,还会依赖于 HTTP 请求头中的信息。如果这些头信息没有经过严格的过滤,就可能成为注入点
SQL 盲注 if() 函数被过滤怎么绕过
1. 利用 CASE WHEN 语句
SQL 注入无回显利用 DNSLog 如何构造
1. MySQL/MariaDB
and or 被过滤怎么绕过
1. 利用逻辑运算符的符号替代
SQLMap 自带脚本有哪些
1. 编码与混淆(绕过签名检测)
扫出后缀为 .asp 的数据库文件,访问乱码如何利用
这是最常见的情况。利用步骤如下:
找到一个注入点怎么判断对方什么数据库
1. 报错信息判断
SQL 报错注入函数有哪些
MySQL
单引号被过滤怎么绕过
1. 使用双引号
MySQL 一个 @ 和两个 @ 的区别
@ (用户自定义变量)
为什么 MSSQL 存储过程可以执行命令
1. xp cmdshell 存储过程
如果想通过 MSSQL 上传文件需要开启哪个存储过程的权限
1. 利用 xp cmdshell 存储过程(最常见)
SQL 延时盲注 sleep() 被禁用怎么绕过
1. 利用 BENCHMARK() 函数
Chapter5
现在在域外有一台工作组机器的权限但没有域用户且无法直接通过漏洞进入域内,请问这种情况怎么进入域中找到域控
1. 探索工作组机器与域的关联
利用 NTLM Relay 配合 ADCS 这个漏洞的情况需要什么条件
1. NTLM Relay 攻击的基本原理
继上题,Responder 应该开在哪台机器上,为什么
为什么必须开在攻击者的机器上?
继上题,为什么 ADCS 这个漏洞能获取域管理员权限,原理是什么
1. ADCS 漏洞(ESC8)的核心原理
如果拿到了一套 vCenter 的权限,如何去进一步深入利用
1. 信息收集与环境侦察
拿到 vCenter 管理员权限,但部分虚拟机处于锁屏状态怎么办
1. 内存转储攻击
Kerberos 的原理
Kerberos 的三大核心组件
Flannel、Calico 和 Cilium 有什么区别
1. Flannel
CS 上线不出网机器用到的什么类型的 Beacon
SMB Beacon
PTT 有哪些攻击方法
1. 获取 Kerberos 票据(TGT 或 ST)
DCSync 的利用条件
域管理员组 (Domain Admins) 成员: 默认情况下,此组的成员拥有执行 DCSync 所需的最高权限
横向渗透命令执行手段
1. WMI
PTH、PTT、PTK 三者区别
Pass the Hash (PtH)
一台机器不能出网,如何把一个 exe 文件放到对应的目标机器上去
1. 利用现有会话通道
说说域内委派
1. 基础知识:委派的类型
怎么定位域管曾经登录哪些机器
1. 利用事件日志(Event Logs)
Chapter6
Fastjson 漏洞原理
Fastjson 是阿里巴巴开源的一个高性能 JSON 解析库,它能够将 Java 对象序列化成 JSON 字符串,也能将 JSON 字符串反序列化成 Java 对象
如何判断靶标是否使用 Shiro
1. 查看 HTTP 请求和响应头
Nacos 如何通过配置文件拿 Shell
1. 信息收集与漏洞探测
Nacos 不出网利用方式
1. 构造恶意 Groovy 配置文件
.do 文件是哪种框架
Struts 1 框架 :为了实现更好的代码结构和分层,Struts 1 引入了控制器(Controller)的概念。它将所有请求统一通过一个核心的 ActionServl…
Shiro 有 Key 无链怎么利用
1. 内存马注入
Redis 主从复制原理
1. 工作原理概述
phpMyAdmin 写 Shell 的方法
1. 利用 SELECT ... INTO OUTFILE 或 DUMPFILE
了解过哪些中间件解析漏洞
1. Apache 解析漏洞
Shiro 不出网怎么利用
1. 利用内存马
JNDI 的解析流程和原理
JNDI 的解析流程
Log4j 漏洞原理
1. Log4j 的“查找”(Lookups)功能
runc 容器逃逸原理
1. 竞争条件
JBoss 反序列化漏洞原理
在 CVE 2017 7504 的利用中,攻击者通常会利用 Apache Commons Collections 库中的 Gadget Chain。这个库在许多 Java …
XStreadm 反序列化漏洞原理
1. 核心原理: readObject() 方法和 Bad Gadget
讲讲 Confluence RCE
1. 漏洞原理
Chapter7
内存马查杀思路
在查杀之前,首先要了解内存马的常见类型。它们通常可以分为以下几类:
拿到攻击者 IP 怎么溯源
第一步:信息收集
内网报警处理方式
第一步:确认与隔离
怎样从日志找 WebShell 位置
第一步:排查 Web 服务器访问日志(access.log)
常见日志分析工具
日志管理与分析平台 (SIEM)
网页挂马排查思路
第一步:定位恶意代码位置
XSS 防御方法
1. 对用户输入进行严格的过滤和验证
CSRF 防御方法
1. 验证 HTTP Referer
SSRF 防御方法
1. 验证用户输入的 URL
XXE 防御方法
通用防御思路
文件上传防御方法
1. 客户端验证
Linux 日志存放位置
以下是一些重要日志文件及其作用:
CS 流量特征
一、HTTP/HTTPS 通信特征
WebShell 工具流量特征
1. 蚁剑(AntSword)
日志被删除如何排查
1. 内存取证 (Memory Forensics)
常见加固手段
1. 系统和应用程序加固
Chapter8
正向代理和反向代理区别
正向代理 (Forward Proxy)
内网有 ACL 策略,如果是白名单如何绕过
1. 利用被允许的协议和端口
如何进行内网穿透
1. 反向代理与隧道技术
如何隐藏 CS 流量
1. 域前置
ICMP 隧道的流量特征
由于 ICMP 隧道将其他协议的数据“借壳上市”,它的流量行为和正常的 ping 命令有显著区别。以下是 ICMP 隧道的几个主要流量特征:
代理转发常用的工具有哪些
1. Frp
目标机器 Ping 不通外网,没有办法走网络层协议如何搭建隧道
1. HTTP/HTTPS 隧道
内网的多级代理用什么东西代理
1. SOCKS 代理
如果 TCP 和 UDP 不出网怎么绕过
1. 利用 DNS 协议进行隧道传输
多级代理如何做一个 CDN 进行中转
步骤一:准备 C2 服务器
Chapter9
**1. Windows 系统**
在 Windows 中,隐藏用户通常有两种实现方式
360 开启了晶核模式,怎么去尝试权限维持
1. 放弃传统方法,转向无文件和内存驻留
计划任务被拦截了怎么办
1. 放弃创建,寻找修改或利用已有的计划任务
说说 PAM 软连接提权 / 后门原理
一、PAM 软连接提权的核心原理
如何不记录执行命令
1. 临时禁用历史记录
Chapter10
SSRF 漏洞存在位置
1. URL地址加载资源
SSRF 漏洞绕过方法
1. IP 地址绕过
SSRF 漏洞利用方式
1. 端口扫描
SSRF 如何攻击内网服务
1. 判断内网Redis端口是否开放
如何判断 SSRF 的流量是否攻击成功
1. 基于DNS记录判断
SSRF 怎么用 Redis 写 Shell
步骤一:利用 SSRF 伪造 Redis 协议请求
Chapter11
XXE 漏洞利用方式
1. 文件读取(最常见)
XXE 盲注思路
1. 基础的带外请求(OOB)
PCDATA 和 CDATA 的区别
PCDATA
Chapter12
文件上传漏洞绕过方法
1. 客户端 JS 绕过
Chapter13
代码执行、命令执行的函数有哪些
PHP
正向 Shell 和反向 Shell 的区别
正向 Shell (Bind Shell)
如何从非交互的 Shell 提升为交互 Shell
方法一:使用 Python PTY 模块(最常用)
PHP disable_functions() 绕过方法
1. LD PRELOAD 环境变量劫持
PHP 的 %00 截断的原理
当 PHP 脚本在调用某些文件操作函数(如 include() 、 require() 、 file get contents() 等)时,底层会调用 C 语言的库函数。在…
站库分离怎么拿 Shell
1. SQL 注入结合文件上传或文件写入漏洞
Chapter14
CC1、CC6 区别
Commons Collections 1 (CC1) 利用链
讲讲 IIOP 和 T3 反序列化原理
1. IIOP (Internet Inter Orb Protocol) 原理
Java invoke 反射具体利用
1. invoke 反射的基础
讲一下 CC1-7 的原理
CC1: InvokerTransformer
BECL 利用链使用条件及原理
1. BECL 利用链核心原理
BCEL 与类加载器的关系
Java 类加载器( ClassLoader )负责在运行时将 .class 文件加载到 JVM 中。当一个类加载器加载字节码时,它会调用 defineClass() 方法…
了解 JEP290 的原理吗
JEP290 的核心原理:反序列化白名单和黑名单
讲下 RMI 原理以及相关的漏洞
1. RMI 原理
JdbcRowSetImpl 如何触发的 JNDI 注入
1. 核心原理: setDataSourceName() 与 JNDI
CC 链四个 Transformer 区别
1. InvokerTransformer
反序列化除了readObject 还有什么触发点
1. readResolve() 和 writeReplace()
Chapter15
LM Hash 加密算法过程
LM Hash 的整个加密过程可以分解为以下几个步骤:
内网抓取密码的话怎么抓
1. 利用内存中的明文密码
内网有杀软又怎么抓
1. 使用 Procdump 转储 lsass.exe 进程
操作系统什么版本之后抓不到密码
从 Windows 8.1 / Windows Server 2012 R2 开始,微软为了应对 Mimikatz 这类工具,引入了 Protected Process L…
抓不到密码怎么绕过
1. 哈希传递
桌面有管理员会话,怎么做会话劫持
步骤一:获取 SYSTEM 权限
当前机器上有一个密码本但被加密了,应该怎么办
1. 识别加密算法和工具
Dcom 怎么操作
利用 DCOM 执行命令
获取域控的方法有哪些
1. 信息收集与利用
DLL 劫持原理
Windows 系统在加载一个程序所需的 DLL 文件时,会遵循一个固定的搜索路径。这个路径通常包括:
DPAPI 机制能干嘛
DPAPI 最大的特点是,它将加密数据和加密密钥都存储在本地。这意味着,只要我们能够以 目标用户的身份 登录系统,或者能够获取到该用户的 主密钥 (Master Key),…
与 SMB 协议相关的漏洞有哪些
1. 永恒之蓝
MS14-068 原理
1. MS14 068 漏洞的本质
内网文件 exe 落地怎么去做,用什么命令去执行来落地
1. 文件落地前的准备
DB 文件如何解密,原理是什么
数据库文件解密主要取决于 加密类型 和 密钥的存储位置 。许多数据库系统(如 MySQL、SQL Server、PostgreSQL)都提供了数据加密功能,通常分为以下几种…
PTH 中 LM hash 和 NTLM hash 的区别
LM Hash (LAN Manager Hash)
Chapter16
常用的协议有哪些
本地文件包含(LFI)协议
怎么 GetShell
本地文件包含 (LFI) Getshell
Chapter17
MongoDB 注入方式
MongoDB 注入的原理
Chapter18
CORS 利用方式
1. 简单 CORS 配置不当
Chapter19
ShellCode 免杀方法
1. 改变 ShellCode 特征
如何去过国内的杀软
1. 静态特征码检测
分离免杀和单体免杀有啥区别,为什么要分离
什么是分离免杀和单体免杀?
做过其他免杀吗,比如结合 CS 和 MSF 的
MSFvenom 生成的 Payload 如何免杀?
Chapter20
=== 和 == 的区别
== (相等运算符)
本地文件包含能不能通过 PHP 配置限制文件包含的路径
当然能,这个关键的配置项就是 open basedir
PHP 在做 SQL 注入防御时有哪些方法
1. 使用预处理语句
如果审计到了一个文件下载漏洞如何深入的去利用
1. 确认与初步利用
讲讲 Fortity 等代码审计工具原理
Fortify 等代码审计工具的原理
常见入口函数怎么找
1. 查找 Web 框架的路由文件
PHP 代码审计流程
1. 宏观分析与项目理解
ThinkPHP 框架审计起来有什么不同
1. 核心差异:文件结构与路由机制
PHP 原生的敏感函数有哪些
1. 代码执行 / 命令执行
反序列化时有哪些魔术方法是可以作为一个入手点去找的
wakeup()
常见的路由方法
1. 静态路由
介绍下 PHP 的变量覆盖
有几个 PHP 函数在不安全地使用时,极易引发变量覆盖漏洞
远程文件包含和本地文件包含这两种涉及的 PHP 设置有什么
1. 本地文件包含(LFI)
Chapter21
JAVA 在做 SQL 注入防御时有哪些方法
1. 使用预处理语句
Chapter22
进程和线程内存空间的关系
进程的内存空间
介绍下父子进程
父子进程的创建
孤儿进程和僵尸进程区别
僵尸进程
Kill 一个进程的时候都发生了那些事情,从父子进程角度讲
1. 信号发送与接收
Linux 开机自启动方式
系统级别的自启动方式
Linux 有哪些系统调用
1. 进程管理相关系统调用
说说 Linux 下的 Syscall
什么是系统调用(Syscall)?
Chapter23
恶意样本给出函数家族的 md5,如何进行分类
1. 样本预处理
面对静态编译的大型木马如何通过 IDA 定位其网络传输部分的逻辑
第一步:宏观审视与初步筛选
如何动态地去找导入表
为什么要动态地查找?
如何不在编码时直接导入相关 API 的前提下进行攻击
从攻击者的角度来看, 不在编码时直接导入相关 API 是一个核心的规避手段。这种技术通常被称为 动态 API 调用 或 运行时 API 解析 ,其主要目的是:
Windows 下有哪些常用的反调试技术
1. 基于 Windows API 的反调试
单步执行的原理是什么
1. 陷阱标志
在内存中已 Load 的程序如何快速找到其具有执行权限的段
方法一:利用操作系统 API
恶意软件有哪些方案检测自己处于沙箱中
1. 基于环境特征的检测
做一个反汇编器,指令集 opcode 的意义去哪查
主流 CPU 架构的指令集手册
怎么识别指令跳转条件和内存访问
如何识别指令跳转条件
做一个沙箱,有什么需要重定向的
1. 文件系统
Linux 程序分为哪几个段
1. 代码段
ESP 定律原理知道吗
ESP 定律的原理
C++ 程序怎么去逆向找虚表
虚表(vtable)的编译后形态
进程隐藏技术是什么,如何检测
常见的进程隐藏技术
如果多进程下,A 进程的 Source 触发到了 B 进程的 sink 点,如何溯源
1. 识别并关联进程间通信(IPC)
Chapter24
清理日志要清理哪些
1. 系统日志
如何删除 Linux 机器的入侵痕迹
1. 消除日志文件中的痕迹
Chapter25
钓鱼方法除了 exe 这种双击的还有什么
1. 宏病毒
钓鱼上线的主机如何进行利用
1. 权限维持和环境侦察
伪造电子邮件的原理
1. SMTP 协议的漏洞
Chapter26
工控场景的入侵检测与普通场景入侵检测的区别
1. 安全目标和优先级不同
对比一下 QEMU 模式的 Fuzzing 和源码模式的 Fuzzing
1. 源码模式 Fuzzing
说说 QEMU 模式的动态插桩怎么实现的,有什么优缺点
QEMU 模式动态插桩的实现原理
fuzz 普通程序和数据库有哪些不同点
1. 输入和协议的复杂性
说说 AFL++ 和 AFL 有哪些不同
AFL (American Fuzzy Lop)
怎么给 AFL 做适配去 fuzz 数据库
适配器的核心任务
介绍一下 fuzz 的流程,从选取目标开始
1. 选取目标
讲一下 AFL 的插桩原理
插桩的本质:反馈导向的模糊测试
怎么选择 fuzz 测试点
1. 优先选择处理复杂格式输入的代码
哪些漏洞可以用 fuzz 检测到
内存安全漏洞
符号执行是如何做约束求解的
1. 什么是约束求解
讲讲 Linux 平台的漏洞缓解机制
1. 堆栈保护(Stack Smashing Protection, SSP)
NX 是怎么绕过的
绕过 NX 的基本思路
讲讲 Linux 平台的 ELF 文件结构
ELF 文件的两种视图
讲讲 Windows 平台的 PE 文件结构
PE 文件的双重性质
讲讲 ASLR 怎么绕过
ASLR 的核心思想
Chapter27
介绍下 SVM
SVM 的核心思想:寻找最佳分隔超平面
如何降低模型的误报率
1. 调整决策阈值
如何找攻击样本
1. 基于梯度的攻击
介绍下 KNN
KNN 的核心思想:近朱者赤,近墨者黑
卷积神经网络介绍
CNN 是什么?
莱文斯坦距离
莱文斯坦距离是什么?
倒排索引
倒排索引是什么?
搜索引擎的算法有哪些
1. 爬虫与数据抓取
了解 TF-IDF 文档匹配算法吗
TF IDF 的核心思想
SGD 和 Adam 的区别
什么是优化算法?
如何缩减模型的检测时延
1. 模型量化
Chapter28
RSA 算法原理
RSA 算法是一种非对称加密算法,它的名字来源于三位发明者 Rivest、Shamir 和 Adleman 的姓氏首字母。与对称加密不同,非对称加密使用一对密钥: 公钥 和…
AES 算法原理
AES 的核心概念
说一下非对称加密算法的加密过程
加密过程详解
有哪些了解过的非对称加密算法
1. RSA 算法
栅栏密码的原理是什么
加密原理
Padding Oracle Attack 讲讲
攻击的核心原理
Chapter29
说说交易所
什么是加密货币交易所?
讲一讲区块链逆向函数涉及到的接收参数的指令集
当你在逆向一个 EVM 字节码时,你会发现函数参数的传递和处理主要涉及到以下几种指令集和概念:
说说重入漏洞
什么是重入漏洞?
在 DeFi 项目中建立了各种各样的经济模型,怎样才能找出可能存在的漏洞
1. 深入理解协议设计
libsnark 核心是什么
libsnark 是一个 C++ 库,它提供了一套用于构建和验证 简洁非交互式知识论证 (Succinct Non Interactive Arguments of Kno…
truffle、solidity 了解吗
1. Solidity:智能合约的编程语言
智能合约的鉴权、公私密钥
什么是鉴权?
数字钱包的身份认证
数字钱包的身份认证:一个去中心化的过程
Chapter30
控制了一台云主机但没有连接内网也没有云内网,该如何利用
1. 将云主机作为跳板
Chapter31
安卓系统如何进行 RCE,有什么思路
1. 安卓 RCE 的核心思路
给一个移动端的 APP,已知服务端是 cloud 环境有什么思路利用
1. 移动端 App 本地分析