This commit is contained in:
author
2025-11-08 21:00:06 +08:00
parent 95a4182500
commit fc176f1b7d
1793 changed files with 2099698 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+58
View File
@@ -0,0 +1,58 @@
### 文件上传漏洞绕过方法
**1. 客户端 JS 绕过**
这是最简单也是最常见的绕过方法。许多开发者为了方便,只在前端(浏览器)使用 JavaScript 脚本来检查文件类型,如 `.jpg``.png``.gif`
- **绕过方法:**
- **禁用 JavaScript:** 在浏览器设置中直接禁用 JS,或者使用抓包工具(如 Burp Suite)拦截请求,修改文件名和内容后再发送
- **抓包修改文件名:** 正常上传一个合法的图片文件(`1.jpg`),然后使用 Burp Suite 拦截数据包,将文件名修改为 `1.php`。由于服务器后端没有进行二次验证,就会直接上传成功
**2. MIME 类型绕过**
服务器有时会通过检查 HTTP 请求头中的 `Content-Type` 字段来验证文件类型。例如,一个图片的 `Content-Type` 通常是 `image/jpeg``image/png`
- **绕过方法:**
- **修改 `Content-Type`** 攻击者可以上传一个 `webshell.php` 文件,同时在抓包工具中将 `Content-Type` 字段从 `application/octet-stream`(默认值)修改为 `image/jpeg`。如果后端只依赖这个字段进行判断,恶意文件就会上传成功
**3. 文件头内容检测绕过(魔术字节)**
一些更安全的系统会检查文件的“魔术字节”(Magic Bytes),也就是文件头部的一串特定字节,用以识别文件类型。例如,JPEG 图片文件开头通常是 `FF D8 FF E0`
- **绕过方法:**
- **“图片马”:** 攻击者可以将恶意代码嵌入到图片文件中,制作成一个“图片马”
- **制作方法:**
1. 准备一张正常的图片(`1.jpg`)和一个包含恶意代码的文本文件(`shell.php`),内容为 `<?php eval($_POST['cmd']);?>`
2. 使用命令将两者合并:`copy 1.jpg/b + shell.php/a webshell.jpg`
- **利用方式:**
1. 上传 `webshell.jpg` 文件。如果服务器检查了文件头,但没有检查文件内容,就会上传成功。
2. 然后,攻击者需要找到一种方法来解析这个图片文件,使其作为 PHP 代码执行。这通常需要结合 **文件包含漏洞(LFI** 来实现,例如 `include('webshell.jpg')`,或者一些服务器配置错误(如 Apache 的 `.htaccess` 配置)
**4. 文件名、路径绕过**
服务器通常会有一份黑名单或白名单来限制可上传的文件扩展名。黑名单会阻止 `.php`, `.asp`, `.jsp` 等脚本文件,而白名单只允许 `.jpg`, `.png`, `.gif` 等图片文件
**a. 黑名单绕过**
- **大小写绕过:** `shell.Php``shell.pHP`
- **文件后缀名加空格或点:** 在 Windows IIS 服务器上,文件名末尾的空格或点会被自动去除
- `shell.php `(空格)
- `shell.php.`(点)
- **双重扩展名:** 某些服务器只检查最后一个扩展名
- `shell.php.jpg`:上传后,如果服务器处理不当,可能会被当做 `shell.php` 来执行。
- **特殊字符绕过:** 利用一些特殊字符,如 `shell.php%00.jpg`00 截断)
- **00截断:** 在 PHP 5.3 之前,PHP 的 `move_uploaded_file()` 函数在处理文件名时,遇到 `0x00` 字节会截断后面的内容。攻击者可以在文件名中注入 `%00`,如 `shell.php%00.jpg`,上传时,服务器只检查 `.jpg`,但实际保存的文件名是 `shell.php`
**b. 白名单绕过**
- **服务器解析漏洞:**
- **Apache** 如果服务器配置了 `AddHandler php5-script .jpg`,那么所有 `.jpg` 文件都会被当作 PHP 脚本来解析
- **IIS 6.0:** 目录解析漏洞,例如 `/xx.asp/shell.jpg`。服务器会把 `shell.jpg` 当作 ASP 脚本执行
- **IIS 7.0/7.5** `web.config` 配置文件解析漏洞。攻击者可以上传一个恶意的 `web.config` 文件来改变目录的解析规则
- **竞争条件(Race Condition):**
- 一些服务器在处理文件上传时,会先将文件临时保存,然后进行安全检查,最后再重命名或移动到目标目录
- **利用方法:** 攻击者可以利用这个时间差,在文件被检查并删除之前,迅速访问该文件
- **步骤:**
1. 上传一个包含恶意代码的脚本文件(如 `shell.php`),其中恶意代码会创建一个新的 Webshell 文件
2. 在文件上传成功后,但在服务器删除它之前,通过一个脚本循环快速访问该文件
3. 恶意脚本被执行,并创建一个新的、无法被删除的 Webshell 文件
+20
View File
@@ -0,0 +1,20 @@
# 网安面试题(涵盖护网、红队、逆向、二进制)
上万道安全面试题已经全部为您划分好,适用于网络安全所有岗位!!!
HR:请问…………
我:叽里咕噜说啥呢,看看八股文上写了没
Summary.md 是目录噢!!)
**🙏 特别感谢名单**
在整理和完善本项目的过程中,以下朋友给予了宝贵的帮助与支持,在此表示诚挚的感谢!(排名不分先后)
- **@用户名1** —— 提供了大量安全面试题方向的补充
- **@用户名2** —— 纠正了多个问题的答案与表述
- **@用户名3** —— 贡献了真实面试题经验分享
- **@用户名4** —— 对内容结构与目录提出改进建议
如果您也愿意参与本项目,欢迎通过 **微信: XR3327026244** 投稿面试题或反馈问题,我们会在后续版本中加入您的名字
File diff suppressed because it is too large Load Diff