SRC挖掘
文集大纲加载中……
小迪安全知识库
-
+
首页
任意文件上传checklist
任意文件上传checklist
一些无用的知识 ## 1\. 文件类型验证 * □ 上传扩展名已修改的文件。 * □ 检查验证是否仅依赖 Content-Type。 * □ 测试双重扩展名:`image.jpg.php`、`image.php.jpg`。 * □ 检查大小写变体:`.PHP`、`.pHp`。 * □ 验证 MIME 类型与文件签名(magic bytes)。 * □ 测试补充可执行/解析扩展名:`.phtml`、`.php5`、`.php7`、`.phar`、`.htaccess`、`.web.config`、`.user.ini`、`.svg`、`.html`、`.shtml`。 * □ 测试空字节/截断绕过:`image.jpg%00.php`。 * □ 测试路径分隔符绕过:`image.jpg/.php`。 * □ 测试 polyglot 文件:`GIF89a` 开头但内容含脚本。 * □ 验证上传后重命名并禁止执行。 ## 2\. 文件名和路径处理 * □ 测试文件名特殊字符、shell 元字符、CRLF、控制字符。 * □ 检查文件名标准化、清理、Unicode 变体、全角字符、尾部点/空格。 * □ 测试 Windows 保留名:`CON`、`PRN`、`AUX`、`NUL`。 * □ 检查下载、检索、预览、删除、重命名端点的路径遍历。 * □ 测试路径遍历编码绕过:`..%2f..%2f`、`....//....//`、`%2e%2e%2f`。 * □ 检查文件名冲突、覆盖、权限继承、缓存投毒。 * □ 验证服务端生成随机文件名,原文件名仅存数据库。 * □ 验证路径 canonicalize,禁止 `..`,下载必须鉴权。 * □ 测试多扩展名、大小写、尾部点/空格、分号、NTFS ADS、8.3 短文件名。 * □ 测试 URL 编码、双重编码、空字节、路径参数、矩阵参数。 * □ 测试 Nginx/Apache/IIS/Tomcat 对同一路径解析差异。 * □ 测试反向代理与后端路径规范化差异导致鉴权绕过或文件解析。 ## 3\. 访问控制 * □ 注销状态下访问上传文件。 * □ 用户 A 访问用户 B 文件。 * □ 检查上传、预览、下载、删除端点授权。 * □ 更改文件 ID、`user_id`、`path`、`token` 暴露他人内容。 * □ 测试签名 URL 可猜测、长期有效、可重放。 * □ 检查 CDN/反向代理缓存绕过鉴权。 * □ 验证每个端点独立鉴权。 * □ 验证对象存储私有。 * □ 验证签名 URL 短期有效且绑定用户/文件。 * □ 验证敏感响应不缓存。 * □ 测试 `X-Forwarded-*`、`X-Original-URL`、`X-Rewrite-URL` 伪造。 * □ 测试 Host 头注入、缓存投毒。 ## 4\. 内容处理 * □ SVG 上传导致存储型 XSS XXE。 * □ 图像元数据处理:EXIF、IPTC、XMP 泄露路径、GPS、作者。 * □ 文档预览和转换功能。 * □ 测试 HTML、PDF、Office、SWF 等浏览器直接渲染。 * □ 检查文档转换调用 ImageMagick、Ghostscript、FFmpeg 等。 * □ 验证安全响应头:`Content-Type`、`Content-Disposition: attachment`、`X-Content-Type-Options: nosniff`、`Content-Security-Policy`。 * □ 测试 CSV 公式注入、PDF JavaScript、Office 宏。 * □ 验证不可信文件不直接内联渲染,图片重编码。 * □ 验证转换在沙箱/低权限容器,下载强制附件,禁用宏和 JS。 * □ 测试元数据字段是否进入外部命令:EXIF、标题、作者、注释。 * □ pdf xss。 ## 5\. 存储和配置 * □ 检查上传存储在应用服务器或对象存储。 * □ 验证上传文件是否作为服务器端代码执行。 * □ 检查公共存储权限、目录列表、ACL 过宽。 * □ 检查缓存和 CDN 行为访问控制绕过。 * □ 检查 CORS 配置任意源读取。 * □ 验证非 Web 根目录、无执行权限。 * □ 验证对象存储私有、最小权限。 * □ 验证 CDN 鉴权、CORS 白名单。 * □ 检查上传目录可执行脚本。 * □ 检查临时目录不可访问。 ## 6\. 尺寸和资源限制 * □ 检查最大文件大小强制执行。 * □ 验证文件数量和上传频率限制。 * □ 测试分块传输、`Content-Length` 伪造绕过大小限制。 * □ 测试并发上传、并发解压。 * □ 测试归档提取限制:Zip Slip、Zip Bomb、嵌套压缩、解压路径穿越。 * □ 检查失败上传留下临时文件。 * □ 验证解压限制路径、大小、层数。 * □ 验证失败清理临时文件。 * □ 检查代理上传大小限制与后端不一致。 * □ 测试临时文件竞态:上传中执行、重命名、覆盖。 * □ PNG解压DOS 。 * □ Pixel floodattack。 ## 7\. Excel/XML 注入 * □ CSV/Excel 公式注入:单元格以 `=`、`+`、`-`、`@`、`\t`、`\r`、`\n` 开头。 * □ 经典 Payload:`=cmd|' /C calc'!A0`、`=HYPERLINK(...)`、`=WEBSERVICE(...)`、`=IMPORTXML(...)`。 * □ 测试导入、预览、导出、报表、日志下载、用户列表导出。 * □ 导出文件被 Excel/WPS/Numbers 自动计算公式或外连。 * □ XML 外部实体注入(XXE)。 * □ 盲 XXE:外部 DTD、参数实体、OOB 通道。 * □ XXE 导致 SSRF、本地文件读取、拒绝服务。 * □ XML 炸弹:Billion Laughs、Quadratic Blowup。 * □ XPath 注入、XSLT 注入。 * □ XLSX/ODS/DOCX/PPTX 内部 XML:`xl/workbook.xml`、`xl/sharedStrings.xml`、`[Content_Types].xml`、`_rels/.rels`、`docProps`。 * □ Excel 2003 XML / SpreadsheetML。 * □ 检查解析器禁用 DTD、外部实体、外部 schema。 * □ 使用安全解析库:defusedxml、禁用 `FEATURE_SECURE_PROCESSING`。 * □ 导出公式前缀转义:加 `'` 或前置空格,过滤 `= + - @`。 * □ CSV 强制 `Content-Type: text/csv`、`Content-Disposition: attachment`。 * □ 检查宏、外部链接、DDE、OLE 对象。 * □ XLSX 解压路径、大小、层数限制。 ## 8\. 文件名命令执行 * □ 文件名包含 shell 元字符:`;`、`|`、`&`、`&&`、`||`、`$()`、`${}`、反引号、`>`、`<`、换行。 * □ Windows shell 元字符:`&`、`|`、`^`、`%VAR%`、`!VAR!`、`\r\n`。 * □ 文件名直接拼接到 `system()`、`exec()`、`shell_exec()`、`popen()`、`Runtime.exec()`、`ProcessBuilder`。 * □ 后端调用外部程序:ImageMagick、FFmpeg、Ghostscript、LibreOffice、unzip、7z、tar、clamav、exiftool。 * □ 图像/视频/文档转换、缩略图、预览、压缩解压、杀毒扫描、重命名、移动、复制。 * □ 参数注入:文件名以 `-` 开头,如 `-o /var/www/shell.php`、`--output`、`--config`。 * □ 通配符注入:`*`、`?`、`[]`。 * □ 通过 `filename`、`filename*`、`Content-Disposition` 注入 shell 元字符。 * □ 盲命令执行:时间延迟、DNS 外带、HTTP 外带、写入临时文件。 * □ 命令执行回显:`;id`、`|whoami`、`$(id)`、反引号 `id`。 * □ 路径与文件名组合:`/tmp/a;id`、`a$(id).jpg`、`a\nid`。 * □ Windows 路径:`a&whoami`、`a|whoami`、`%COMSPEC%`。 * □ 检查使用数组传参/参数化 API,禁止 `shell=True`。 * □ 服务端随机文件名,严格白名单,过滤 shell 元字符和 `-` 开头。 * □ 外部命令沙箱、低权限、无网络。 * □ 临时目录隔离、命令超时、输出限制。 ## 9\. 服务器与中间件测试漏洞 * □ 识别 Web 服务器、应用服务器、语言运行时、反向代理、负载均衡、CDN、WAF。 * □ 获取版本、补丁级别、默认配置、错误页、响应头。 * □ 对照已知 CVE、安全公告、默认口令、示例应用。 * □ 检查 Apache `.htaccess` 上传与覆盖、`mod_mime`、`AddHandler`、`AddType`、`mod_php`、`mod_cgi`、`mod_fcgid`。 * □ 检查 Apache `mod_proxy`、`mod_rewrite`、`Alias` 路径遍历、CVE-2021-41773、CVE-2021-42013。 * □ 检查 Apache `server-status`、`server-info` 暴露。 * □ 检查 Nginx `location ~ \.php$`、`fastcgi_split_path_info`。 * □ 测试 Nginx `/upload/x.jpg/1.php`、`/upload/x.jpg%00.php`、`/upload/x.jpg%0a.php`。 * □ 检查 Nginx `alias`、`root`、`try_files`、`merge_slashes` 路径遍历。 * □ 检查 Nginx `client_body_temp_path` 临时文件可访问/执行。 * □ 检查 Nginx 与 PHP-FPM 解析差异、空字节、路径截断、CRLF 历史漏洞。 * □ 检查 Nginx `X-Accel-Redirect`、内部重定向、鉴权绕过。 * □ 测试 IIS 解析漏洞:`file.asp;.jpg`、`file.asp:.jpg`、`file.asp/`。 * □ 测试 IIS 8.3 短文件名泄露与枚举。 * □ 测试 IIS 尾部点、空格、`::$DATA`、NTFS ADS。 * □ 检查 IIS WebDAV、PUT、MOVE、COPY 方法。 * □ 检查 IIS `.config`、`.asax`、`.ashx`、`.asmx`、`.svc`、`.cer`、`.cdx`、`.asa` 上传。 * □ 检查 IIS `web.config` 上传导致 RCE 或配置覆盖。 * □ 检查 IIS 6.0/7.0/7.5 历史解析漏洞。 * □ 检查 Tomcat/Jetty/Undertow manager、host-manager、status 弱口令。 * □ 测试 Tomcat PUT 上传 JSP,如 CVE-2017-12615。 * □ 检查 Tomcat AJP 暴露,如 Ghostcat CVE-2020-1938。 * □ 检查 `web.xml`、`context.xml` 覆盖。 * □ 检查 examples、docs、ROOT 示例应用。 * □ 检查 JSP、JSPX、JSPF、tag 文件上传执行。 * □ 检查 Tomcat 临时目录、work 目录、上传目录权限、版本相关 CVE。 * □ 检查 WebLogic/WebSphere/JBoss/WildFly 管理控制台默认口令与未授权访问。 * □ 检查 T3、IIOP、JNDI、XMLDecoder 相关漏洞。 * □ 检查 WebLogic CVE-2018-2628、CVE-2019-2725、CVE-2020-14882/14883。 * □ 检查 JBoss jmx-console、web-console、CVE-2017-12149。 * □ 检查上传 WAR、JAR、XML 部署包。 * □ 检查反序列化、表达式注入、文件上传组合链。 * □ 检查 WebSphere 管理台、SOAP、文件传输。 * □ 检查 PHP-FPM `security.limit_extensions`、`cgi.fix_pathinfo=1`。 * □ 测试 `/upload/x.jpg/1.php`、`/upload/x.jpg%00.php`。 * □ 检查 PHP-FPM 未授权 FastCGI 访问、CVE-2019-11043。 * □ 检查 `phpinfo()`、`phpmyadmin`、`adminer` 暴露。 * □ 检查 `auto_prepend_file`、`phar`、`phar://` 反序列化。 * □ 检查 Nginx `client_body_temp_path`、PHP `upload_tmp_dir`、Tomcat `work/Catalina`、`temp`、Jetty/Undertow/Spring Multipart 临时目录。 * □ 检查管理端点:`server-status`、`server-info`、`phpinfo`、`actuator`、`env`、`heapdump`、`jolokia`。 * □ 检查 Tomcat manager、WebLogic console、JBoss jmx-console、WebSphere admin。 * □ 检查默认页面、示例应用、测试页面、调试端点。 * □ 检查错误页泄露版本、路径、堆栈。 * □ 检查目录列表、备份文件、源码泄露。 * □ 检查中间件日志记录上传文件名导致日志注入。 * □ 检查 WebDAV PUT/MOVE/COPY/PROPFIND 上传可执行文件。 * □ 检查 SSI:`.shtml`、`.stm`、`.shtm` 上传执行。 * □ 检查 CGI/Perl/Python 脚本上传执行。 * □ 检查符号链接上传指向敏感文件。 * □ 检查容器/K8s 挂载、权限、临时卷。 * □ 检查中间件进程用户、上传目录权限、执行权限。 ## 10\. 反向代理、缓存与请求走私 * □ 检查反向代理与后端路径规范化差异。 * □ 测试 `X-Forwarded-*`、`X-Original-URL`、`X-Rewrite-URL` 伪造。 * □ 测试 Host 头注入、缓存投毒。 * □ 测试 CL.TE、TE.CL、TE.TE 请求走私。 * □ 检查 CDN 缓存键、Vary、扩展名、鉴权绕过。 * □ 检查 WAF 绕过:分块、编码、大小写、多扩展名。 * □ 检查代理上传大小限制与后端不一致。 * □ 检查缓存私有文件、缓存键不包含身份/租户/权限。 * □ 检查 `Cache-Control`、`Vary`、`Expires` 正确性。 * □ 检查下载/预览端点是否被 CDN 缓存。 * □ 检查响应包含 `Set-Cookie`、`Authorization` 却仍被缓存。 11\. 其他补充测试 * □ CSRF 上传。 * □ 竞态条件:并发上传同名文件、并发解压。 * □ 远程 URL 上传导致 SSRF。 * □ 图像/视频处理库 RCE:ImageMagick、Ghostscript、FFmpeg。 * □ 病毒/恶意软件扫描。 * □ 文件名注入响应头:CRLF、日志注入。 * □ 元数据泄露:GPS、用户名、内部路径。 * □ 存储成本滥用:大量上传、超大文件。 * □ 解析差异:Nginx/Apache/IIS 对扩展名、路径、编码解析不一致。 * □ WAF 绕过:分块、编码、大小写、多扩展名。
xiaodi
2026年10月29日 14:42
34
0 条评论
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
分享
链接
类型
密码
更新密码
有效期
Markdown文件
Word文件
PDF文档
PDF文档(打印)