!
也想出现在这里? 联系我们
广告位
当前位置:首页>安全咨询>漏洞复现>利用ASP.NET Web API Help Page文件上传

利用ASP.NET Web API Help Page文件上传

利用ASP.NET Web API Help Page文件上传

免责说明:

由于传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我会立即删除并致歉,谢谢!

0x0前言

前段时间在一次攻防演练中发现有几个资产目标使用的是ASP.NET Web API,当时以为是一个简单的未授权漏洞,后面想着可不可以利用帮助文档中的upload上传接口,对数据包进行一个简单的构造进行一个文件上传呢,于是产生了这篇文章

0x1关于ASP.NET Web API

根据Microsoft官方文档给出的解释如下: The ASP.NET Web API Help Page automatically generates help page content for the web APIs on your site. Visitors to your help page can use this content to learn how to call your web APIs. Everything generated by the help page is fully customizable using ASP.NET MVC and Razor. ASP.NET Web API Help Page is a great addition to any ASP.NET Web API project.

简单来说就是: ASP.NET Web API 帮助页面是任何 ASP.NET Web API 项目的绝佳补充

那么创建ASP.NET Web API 创建帮助页面有什么用呢?根据Microsoft给出的解释如下: When you create a web API, it is often useful to create a help page, so that other developers will know how to call your API. You could create all of the documentation manually, but it is better to autogenerate as much as possible. To make this task easier, ASP.NET Web API provides a library for auto-generating help pages at run time.
最后得到的界面如下

利用ASP.NET Web API Help Page文件上传

又或者是如下

利用ASP.NET Web API Help Page文件上传

0x2寻找突破口

我们此次需要构造的是文件上传包,我们全局搜索upload、上传、文件,file等相关字样

利用ASP.NET Web API Help Page文件上传

可以看到如图所示我们找到了相关的字样

利用ASP.NET Web API Help Page文件上传

根据文档提示:我们可以看出此处文档上传构造方式也比较简单,那么我们接下来就要进行一个post参数的构造,手工构造比较麻烦,这时候我想起了开发者常用的一个工具postman,关于postman,我在这里也简单进行一个介绍: Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。

0X3开始构造

关于如何使用,我这里引用了一遍博主的文章文章地址如下

https://blog.csdn.net/weixin_48421613/article/details/118356645

利用ASP.NET Web API Help Page文件上传

最后选择send发送

利用ASP.NET Web API Help Page文件上传

利用ASP.NET Web API Help Page文件上传

可以看出我们此时的文件已经上传成功,但是路径找不到先简单fuzz一波

经过简单的fuzz我得到了一个叫UpLoadFiles路径

这不得不佩服我的字典的强大,当然也归功于平时的归纳总结

http://192.168.22.23/UpLoadFiles/20220907112814test11.aspx

利用ASP.NET Web API Help Page文件上传

通过对postman代理的设置

利用ASP.NET Web API Help Page文件上传

我们抓包看一下这个数据包的构成

POST /xxxx/ImgFormUpload HTTP/1.1
User-Agent: PostmanRuntime/7.29.2
Accept: */*
Postman-Token: xxxxxxxxxxxxx
Host: 192.168.22.23
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: multipart/form-data; boundary=--------------------------997110380267407431328989
Content-Length: 255

----------------------------997110380267407431328989
Content-Disposition: form-data; name=""; filename="test11.aspx"
Content-Type: application/octet-stream

<% response.write ("Hello World")%> 
----------------------------997110380267407431328989--

给TA打赏
共{{data.count}}人
人已打赏
漏洞复现

某开源堡垒机历史漏洞分析

2022-11-18 23:46:06

漏洞复现

基于netfilter的rootkit

2022-11-21 23:46:27

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 2651636361@qq.com 或点击右侧 私信:少羽 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索