安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[一百三十、未验证的重定向和转发 & SQL 注入防护方法](#一百三十、未验证的重定向和转发 & SQL 注入防护方法)
[SQL 注入防护方法](#SQL 注入防护方法)
[一百三十二、img 标签除了 onerror 属性外,获取管理员路径的其他方法](#一百三十二、img 标签除了 onerror 属性外,获取管理员路径的其他方法)
[一百三十三、img 标签后缀限制为 .jpg 时获取管理员路径](#一百三十三、img 标签后缀限制为 .jpg 时获取管理员路径)
[一百三十四、aspx 木马权限比 asp 大的原因](#一百三十四、aspx 木马权限比 asp 大的原因)
[一百三十五、如何绕过 WAF](#一百三十五、如何绕过 WAF)
[Web 漏洞](#Web 漏洞)
[SQL 注入检测步骤](#SQL 注入检测步骤)
一百三十、未验证的重定向和转发49、SQL 注入防护方法? 一百三十一、代码执行,文件读取,命令执行的函数都有哪些? 一百三十二、img 标签除了 onerror 属性外,还有其他获取管理员路径的办法吗? 一百三十三、img 标签除了 onerror 属性外,并且 src 属性的后缀名,必须以.jpg 结尾,怎么获取管理员路径。 一百三十四、为什么 aspx 木马权限比 asp 大? 一百三十五、如何绕过 waf? 一百三十六、渗透测试中常见的端口 一百三十七、了解哪些漏洞 一百三十八、文件上传有哪些防护方式 一百三十九、用什么扫描端口,目录 一百四十、如何判断注入
一百三十、未验证的重定向和转发 & SQL 注入防护方法
未验证的重定向和转发
漏洞本质 :攻击者构造恶意链接诱导用户访问钓鱼页面或绕过权限检查。
防护方法:
- 白名单验证:仅允许预设的安全 URL(如域名白名单)。
- 映射 ID 代替 URL :使用服务器端映射(如
redirect?id=1
),避免直接传递 URL 参数。- 用户确认机制:重定向前弹出提示(如"即将离开本站")。
SQL 注入防护方法
- 参数化查询(Prepared Statements) :
- 示例:Java 的
PreparedStatement
,Python 的cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
。- 原理:输入数据与 SQL 指令分离,杜绝拼接。
- 输入过滤与验证 :
- 过滤特殊字符(如
'
、"
、;
)。- 正则表达式验证数据类型(如仅允许数字 ID)。
- 最小权限原则 :
- 数据库账户禁用
DROP
、FILE
等高危权限。- Web 应用防火墙(WAF) :
- 部署规则拦截
UNION SELECT
、SLEEP()
等特征。- 错误信息处理 :
- 关闭数据库详细报错,返回通用错误页。
一百三十一、代码执行、文件读取、命令执行的函数
代码执行函数
语言 高危函数 PHP eval()
,assert()
,preg_replace(/e)
Python exec()
,eval()
,os.system()
Java ScriptEngine.eval()
,Runtime.exec()
Node.js eval()
,vm.runInContext()
文件读取函数
语言 高危函数 PHP file_get_contents()
,fread()
Python open().read()
,pathlib.read_text()
Java Files.readAllBytes()
,BufferedReader
命令执行函数
语言 高危函数 PHP system()
,shell_exec()
,passthru()
Python subprocess.run()
,os.popen()
Java ProcessBuilder.start()
防御 :禁用高危函数(如 PHP 的
disable_functions
),使用安全替代方案(如 Python 的shlex.quote()
过滤命令参数)。
一百三十二、img 标签除了 onerror 属性外,获取管理员路径的其他方法
src
属性配合路径探测 :
- 构造
src="/admin/test.jpg"
,通过浏览器开发者工具(Network 标签)观察 404 错误路径。- HTTP Referer 泄露 :
- 触发错误后,服务器日志可能记录
Referer: http://site.com/admin/upload.php
。- 跨域资源共享(CORS)错误 :
- 设置
src="http://attacker.com"
,通过 CORS 错误信息获取源站路径。- 响应头分析 :
- 某些服务器返回
X-Powered-By: ASP.NET
或路径信息(如Server: Apache/2.4 (Ubuntu)
)。
一百三十三、img 标签后缀限制为 .jpg 时获取管理员路径
当
src
必须为.jpg
且无法使用onerror
时:
- 路径遍历绕过 :
- 构造
src="/admin/../image.jpg"
→ 服务器可能返回真实路径(如File not found: /var/www/admin/image.jpg
)。- 重定向探测 :
- 上传图片至
/admin/upload
目录,访问src="/admin/upload/1.jpg"
,观察 302 跳转路径。- 服务端解析差异 :
- 利用 Apache 路径解析特性:
src="/admin/test.jpg.php"
可能被解析为 PHP 文件(需mod_negotiation
开启)。- HTTP 参数污染 :
- 添加冗余参数:
src="/admin?x=1.jpg"
,观察服务器错误日志中的完整路径。
一百三十四、aspx 木马权限比 asp 大的原因
特性 ASPX(.NET) ASP(经典 ASP) 运行环境 .NET CLR 托管,支持高权限操作 IIS 脚本解释器,权限受限 身份模拟 可继承应用程序池身份(如 SYSTEM
)默认 IUSR
低权限账户API 能力 调用 System.Diagnostics
执行命令依赖 WScript.Shell
(常禁用)提权可能性 通过 Impersonation
模拟管理员令牌几乎无法提权 关键点:ASPX 依托 .NET 框架,可直接操作 Windows API,而 ASP 依赖 COM 组件且易受安全策略限制。
一百三十五、如何绕过 WAF
通用绕过技术
- 混淆编码 :
- URL 编码:
UNION SELECT
→%55%4E%49%4F%4E %53%45%4C%45%43%54
- Unicode 编码:
SELECT
→\u0053\u0045\u004C\u0045\u0043\u0054
- 注释分割 :
SEL/**/ECT
或SEL/*!00000*/ECT
(MySQL 特性)。- 参数污染 :
- 提交多个同名参数:
id=1&id=2 UNION SELECT 1,2,3
。- HTTP 方法覆盖 :
- 改用冷门方法(如
HEAD
、OPTIONS
)或自定义头(X-HTTP-Method-Override: GET
)。场景化绕过
- SQL 注入 :
- 使用
LIKE
代替=
:id=1' OR 1 LIKE 1--
- 内联注释:
/*!50000SELECT*/ 1,2,3
(仅 MySQL 5.0.0+ 执行)。- XSS :
- 利用 SVG 文件:
<svg onload=alert(1)>
(绕过 HTML 过滤)。
一百三十六、渗透测试中常见端口
端口 服务 常见漏洞 测试工具 21 FTP 匿名登录、弱口令 nmap -p21 --script ftp-*
22 SSH 弱口令、RCE(CVE-2024-6387) hydra -l root ssh://target
80/443 HTTP/HTTPS SQL 注入、XSS Burp Suite, OWASP ZAP 445 SMB 永恒之蓝(MS17-010) smbclient -L //target
3389 RDP 蓝屏漏洞(CVE-2019-0708) rdp-sec-check
6379 Redis 未授权访问、写 SSH 密钥 redis-cli -h target
提示 :使用
nmap -sV -p- <target>
全面扫描端口。
一百三十七、了解哪些漏洞
Web 漏洞
- OWASP Top 10:注入、XSS、SSRF、XXE、反序列化。
- 服务端漏洞 :
- 文件上传(绕过
.jpg
执行.php
)。- 路径遍历(
/etc/passwd
读取)。- 业务逻辑漏洞 :
- 越权访问(修改
user_id
参数)。- 重复提交(多次领取优惠券)。
系统漏洞
- 提权漏洞:Linux 内核漏洞(Dirty Pipe)、Windows NTLM 中继攻击。
- 协议漏洞:DNS 劫持、SNMP 弱口令。
一百三十八、文件上传防护方式
- 扩展名白名单 :仅允许
.jpg
,.png
,拒绝.php
,.jsp
。- MIME 类型检测 :验证
Content-Type: image/jpeg
。- 文件头校验 :检查文件魔数(如 JPEG 的
FF D8 FF E0
)。- 重命名文件 :生成随机文件名(如
a3f8e.jpg
)。- 隔离存储 :
- 存放到非 Web 目录(如
/data/uploads/
)。- 通过 PHP 代理脚本访问文件(避免直接执行)。
- 病毒扫描:集成 ClamAV 扫描上传内容。
一百三十九、扫描端口和目录的工具
端口扫描
- Nmap :
- 快速扫描:
nmap -T4 -F <target>
- 全端口扫描:
nmap -p- <target>
- Masscan :高速扫描(
masscan -p1-65535 <target> --rate=10000
)。目录扫描
- Dirb :基础字典扫描(
dirb http://target wordlists/common.txt
)。- Gobuster :并发扫描(
gobuster dir -u http://target -w /usr/share/wordlists/dirb/common.txt
)。- FFUF :高级模糊测试(
ffuf -w wordlist.txt -u http://target/FUZZ
)。字典推荐 :
dirb
的big.txt
、SecLists
的Discovery/Web-Content
。
一百四十、如何判断注入
SQL 注入检测步骤
- 单引号测试 :
- 输入
id=1'
→ 观察是否报错(如You have an error in your SQL syntax
)。- 布尔逻辑测试 :
id=1 and 1=1
→ 页面正常。id=1 and 1=2
→ 页面异常(内容消失)。- 延时注入 :
id=1' AND SLEEP(5)--
→ 响应延迟 5 秒。- 联合查询测试 :
id=1 UNION SELECT null,null
→ 逐步增加列数直至页面正常。自动化工具
- sqlmap :自动检测注入点(
sqlmap -u "http://target/?id=1"
)。关键指标:数据库错误、页面内容变化、响应时间差异。