Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Upload_Bypass — 一个用于绕过文件上传限制的简单工具。 | Kitploit
工具/GitHubGitHub/sajibuu/upload_bypass
漏洞扫描器Payload生成漏洞利用Web安全渗透测试
GitHubsajibuu/upload_bypass

Upload_Bypass

一个用于绕过文件上传限制的简单工具。

查看仓库
9081322年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Upload_Bypass v3

GPL-3.0 License 287245591-b1f3cdd6-3d00-4bbb-94c1-38a9204add71

关于

Upload Bypass 是一个简单的工具,旨在帮助渗透测试人员和漏洞猎人测试文件上传机制。它利用多种赏金漏洞技术来简化识别和利用漏洞的过程,确保对 Web 应用程序进行全面评估。

由 Sagiv 开发

2024-02-18_20h04_06

🚀 更新

  • 代码几乎完全重写,利用更好的文件解析功能,消除了大部分错误。
  • 模块化代码!现在你可以贡献代码并添加自己的模块。
  • 引入了三种模式:检测模式、利用模式和反恶意软件检查模式,选择你的武器!
  • 新增状态功能,你现在可以暂停代码并从上次中断的地方继续!
  • 新增 UI,便于查看。
  • 提供 Docker 文件,便于部署。
  • 提供多种测试文件用于内部测试。
  • 调试模式。如果遇到错误,可以保存堆栈跟踪并与我分享以便进一步分析。

注意事项

此工具在 OSCP 考试中被限制使用!

功能

检测模式:

适用于真实世界的渗透测试。此模式将上传无害文件,不会尝试利用目标。

新增 - 如果提供了上传文件的目标文件夹,程序将确定上传的示例文件是否被渲染。 例如,如果你选择了 PHP,程序将尝试确定 echo 命令是否被执行并成功渲染,如果是,它将建议进入交互式 shell。

利用模式:

适用于你想利用目标并上传交互式 Web shell 的情况(如果提供了上传目录),它将使用随机 UUID 上传文件,使模糊测试更难猜测。

反恶意软件模式:

适用于反恶意软件存在性测试。向系统上传 Eicar(反恶意软件测试文件),如果用户指定了上传文件的位置,程序将检查文件是否成功上传并存在于系统中,以确定系统是否存在反恶意软件。

自定义

查看 lib 目录中的 config.py,你可以添加新的扩展名、MIME 类型、Magic Bytes,配置 HTTP/HTTPS 协议的使用等。

要添加新模块,只需在 modules.py 中添加一个具有所需功能的函数,然后将该函数名称添加到 config.py 中的 "active_modules" 列表中。

要添加新的文件扩展名,请将 sample.{ext} 文件添加到 assets/sample_files 目录,然后将扩展名及其 MIME 类型/Magic Bytes 添加到 config.py。

下载:

root@kitploit:~
git clone https://github.com/sAjibuu/Upload_Bypass.git

安装:

root@kitploit:~
pip install -r requirements.txt

从 Docker Hub 安装

root@kitploit:~
sudo docker pull sajibuu/upload_bypass 

从本地 Docker 文件安装

root@kitploit:~
sudo docker build -t sajibuu/upload_bypass .

Docker 使用示例

无代理示例:

root@kitploit:~
sudo docker run -v $(pwd)/request:/Upload_Bypass/{your_request_file} -it sajibuu/upload_bypass -r request -s 'file was uploaded successfully' -E php -e

有代理示例:

确保在所有接口上监听 8080 端口!

root@kitploit:~
sudo docker run -v $(pwd)/request:/Upload_Bypass/{your_request_file} -it sajibuu/upload_bypass -r request -s 'file was uploaded successfully' -E php -e -p http://{docker_interface_IP}:8080

限制:

该工具在以下情况下无法正常工作:

  1. 存在 CAPTCHA 验证。
  2. 每个请求都需要 CSRF 令牌。
  3. 提供了上传文件的目标文件夹,但上传的文件以 GUID(全局唯一标识符)而不是实际文件名保存,程序将无法进入交互式 shell。

免责声明

请注意,使用 Upload Bypass 以及由此产生的任何行为均由您自行承担风险。该工具仅用于教育和测试目的。Upload Bypass 的开发者不对因使用该工具而导致的任何滥用、损坏或非法活动负责。

使用说明:

注意

该程序仅适用于由代理工具(如 Burp Suite 和 ZAP OWASP)生成的请求文件。

在从所使用的代理(例如 Burp Suite)保存请求文件之前,请将以下参数值替换为相应的标记:

文件内容: *data*

示例:将图片二进制数据替换为字符串 *data*

文件名: *filename*

示例:将包含扩展名的文件名替换为字符串 *filename*

Content-Type 标头: *mimetype*。

示例:将文件的内容类型(MIME 类型)替换为字符串 *mimetype*

示例 1:

在 JSON 请求中的样子:

image

示例 2:

在 multipart 数据请求中的样子:

2024-02-27_11h20_23

用户选项:

root@kitploit:~

Usage: Upload Bypass [OPTIONS]

Options:
  -h, --help     打印帮助(通过 '--help' 查看更多信息)
  -U, --usage    打印如何保存请求文件的说明。
  -v, --version  打印版本

必需参数:
  -r, --request_file <REQUEST_FILE>    提供要处理的请求文件
  -E, --extension    <EXTENSION>       要检查的禁止扩展名(例如:php)
  -A, --allowed      <EXTENSION>       允许的扩展名(例如:jpeg) - 可选 - 如果未设置,程序将自动检测扩展名

  仅从以下选项中选择一个:
  -s, --success      <MESSAGE>         提供文件上传成功时的成功消息(例如:File was uploaded successfully)
  -f, --failure      <MESSAGE>         提供文件上传失败时的失败消息(例如:File is not allowed!)
  -S, --status_code  <STATUS_CODE>     提供成功上传的状态码(例如:200)

模式设置:
  -d, --detect          上传无害示例文件(适用于真实的渗透测试)
  -e, --exploit         测试时上传 Web Shell 文件
  -a, --anti_malware    测试时上传反恶意软件测试文件(Eicar)
      I.  如果与 -E 标志一起使用,程序将使用 Eicar 字符串以及所选的扩展名进行测试
      II. 如果未使用 -E 标志,程序将使用 Eicar 字符串和 com 扩展名进行测试

模块设置:
  -l, --list            列出所有模块
  -i, --include_only <MODULES>   仅包含要测试的模块(例如:extension_shuffle, double_extension)
  -x, --exclude      <MODULES>   排除模块(例如:svg_xxe, svg_xss)

请求设置:
  --base64              使用 Base64 算法编码文件数据
  --allow_redirects     跟随重定向
  -P, --put             对请求使用 HTTP PUT 方法(默认为 POST)
  -Pa, --patch          对请求使用 HTTP Patch 方法(默认为 POST)
  -R, --response        将响应打印到屏幕
  -c, --continue        继续测试所有文件,即使某些上传已成功
  -t, --time_out <NUM>  设置请求超时时间(默认为 8)
  -rl, --rate_limit <NUMBER>  设置速率限制,在每次请求之间添加延迟(毫秒)

代理设置:
  -p, --proxy <PROXY>   用于请求的代理(例如:http(s)://host:port, socks5(h)://host:port)
  -k, --insecure        不验证 SSL 证书
  --burp_http           设置 --proxy 为 127.0.0.1:8080 并设置 --insecure 为 true(用于 HTTP 请求)
  --burp_https          设置 --proxy 为 127.0.0.1:8080 并设置 --insecure 为 false(用于 HTTPS 请求)

可选设置:
  -D, --upload_dir <UPLOAD_DIR>  提供 Web Shell 应上传到的远程路径(例如:/uploads)
  -o, --output  <OUTPUT_PATH>    输出文件以写入结果 - 默认为当前目录(例如:~/Desktop/results.txt)
  --debug  <NUM>                 调试模式 - 将堆栈跟踪错误打印到屏幕并保存到文件(例如:--debug 1)
      I.  级别 1 - 仅保存堆栈跟踪错误(默认)。
      II. 级别 2 - 保存堆栈跟踪错误以及用户参数和请求文件。

恢复设置:
  --resume  <STATE_FILE>  从中恢复部分完成扫描的状态文件

更新设置:
  -u, --update  将程序更新到最新版本

示例

检测模式

root@kitploit:~
 python upload_bypass.py -r test -s 'File uploaded successfully' -E php -D /uploads --burp --detect

利用模式

root@kitploit:~
 python upload_bypass.py -r test -s 'File uploaded successfully' -E php -D /uploads --burp --exploit

反恶意软件模式

root@kitploit:~
 python upload_bypass.py -r test -s 'File uploaded successfully' -E php -D /uploads --burp --anti_malware   

问题

如果你遇到问题,请使用调试模式并将标志值设为 2,然后与我分享(调试文件会保存用户提供的参数、请求文件和堆栈跟踪错误)。如果文件包含敏感信息,你可以使用标志值 1,它仅将堆栈跟踪错误保存到文件中。

贡献

如果你想为我的代码做出贡献,请明确说明你添加了什么内容以及原因,并确保在提交合并请求之前进行多次测试。

致谢

  • Hacktricks - 特别感谢提供本工具中使用的宝贵技术和见解。
  • Artemixer - 感谢你用你的轻量版工具激励我重写整个代码并使其模块化!
下载工具