在日常渗透测试中会发现有的上传功能的地方会限制上传大小,例如15M,如果绕过前端的这个提示,使用BURP抓包超大包 BURP会特别卡,导致无法发送,因此写了个小html和py来传输数据。
如下图所示可能会遇到这类功能

前端HTML代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>文件上传演示(代理版)</title>
<style>
/* 样式保持不变 */
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 20px auto;
padding: 20px;
}
.upload-box {
border: 2px dashed #ccc;
padding: 30px;
text-align: center;
margin: 20px 0;
}
#status {
margin-top: 15px;
padding: 10px;
border-radius: 4px;
}
.input-group {
margin: 10px 0;
text-align: left;
}
.input-group label {
display: block;
margin-bottom: 5px;
color: #666;
}
.input-group input {
width: 100%;
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
}
.success { background: #dff0d8; color: #3c763d; }
.error { background: #f2dede; color: #a94442; }
</style>
</head>
<body>
<h2>文件上传演示</h2>
<div class="upload-box">
<!-- 新增:Authorization输入框 -->
<div class="input-group">
<label for="authInput">Authorization:</label>
<input type="text" id="authInput" placeholder="Bearer token (可选)">
</div>
<!-- 新增:Cookie输入框 -->
<div class="input-group">
<label for="cookieInput">Cookie:</label>
<input type="text" id="cookieInput" placeholder="Cookie值 (可选)">
</div>
<input type="file" id="fileInput" accept=".pdf,.doc,.docx">
<button onclick="uploadFile()">上传文件</button>
<div id="status"></div>
</div>
<script>
async function uploadFile() {
const fileInput = document.getElementById('fileInput');
const statusDiv = document.getElementById('status');
const authInput = document.getElementById('authInput');
const cookieInput = document.getElementById('cookieInput');
if (!fileInput.files.length) {
showStatus('请先选择文件', 'error');
return;
}
// +++ 修复1: 确保FormData初始化 +++
const formData = new FormData();
formData.append('dir', 'user_pri');
formData.append('file', fileInput.files[0]);
// 构建动态Header
const headers = {};
if (authInput.value) headers['Authorization'] = authInput.value;
if (cookieInput.value) headers['Cookie'] = cookieInput.value;
try {
const response = await fetch('http://localhost:5000/upload', {
method: 'POST',
headers: headers,
body: formData // 使用已初始化的formData
});
if (response.ok) {
const result = await response.json();
showStatus(`文件上传成功!文件名:${result.filename}`, 'success');
} else {
showStatus(`上传失败:${response.statusText}`, 'error');
}
} catch (error) {
showStatus(`网络错误:${error.message}`, 'error');
}
}
function showStatus(message, type) {
const statusDiv = document.getElementById('status');
statusDiv.className = type;
statusDiv.textContent = message;
setTimeout(() => {
statusDiv.className = '';
statusDiv.textContent = '';
}, 3000);
}
</script>
</body>
</html>
python代
from flask import Flask, request
from flask_cors import CORS
import requests
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 100 * 1024 * 1024 # 允许100MB文件
CORS(app)
@app.route('/upload', methods=['POST'])
def upload():
try:
# 获取请求头
auth_header = request.headers.get('Authorization', '')
cookie_header = request.headers.get('Cookie', '')
file = request.files['file']
# 转发请求到目标API
response = requests.post(
'https://test.digifttest.com/api/file/upload',
files={'file': (file.filename, file.stream)},
headers={
'Authorization': auth_header,
'Cookie': cookie_header
},
data={'dir': 'user_pri'}
)
# 打印完整的返回包信息到控制台
print("="*50 + " 响应详情 " + "="*50)
print(f"状态码: {response.status_code}")
print("\n响应头:")
for key, value in response.headers.items():
print(f" {key}: {value}")
print("\n响应体:")
try:
print(response.json()) # 尝试解析JSON
except:
print(response.text) # 纯文本或二进制内容
print("="*110 + "\n")
# 返回完整响应信息
return (
response.content,
response.status_code,
dict(response.headers) # 携带原始响应头
)
except Exception as e:
print(f"! 错误: {str(e)}")
return {
"error": str(e),
"message": "代理服务器内部错误"
}, 500
if __name__ == '__main__':
app.run(port=5000, debug=True) # 启用debug模式显示详细错误
填写凭据


上传成功,这里我选择了一个20M的PDF文件上传成功,绕过了前端的限制,但是我还是上传不了更大的文件,例如200M
应该是Spring boot或者Nginx层再次进行了限制

那么这里有什么作用呢,其实这里是一个类似攻击链,例如可以上传大包给OSS存储,OSS存储被访问是需要流量收费的,如果原本是15M,那麽攻击者就得刷流量刷到死,那如果攻击者上传的文件是是100M呢 ,1G的文件被刷流量呢,这个的危害就比较大了。
我们可以通过以下案例学习
也就是说一个照片大小大概在1570G/2554=600M左右

我们可以查看阿里云的OSS收费详情
阿里云OSS
https://www.aliyun.com/price/product?spm=5176.8465980.console-base_help.4.4e701450EnmFQ6#/oss/detail/ossbag

流入(上传不用钱)
流出(访问需要收费约0.5/G)
如果公司主要做海外服务的,那么配合这个大文件进行访问攻击,可以造成较大的金钱损失

黑客&网络安全如何学习**
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。
内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,200多G的资源,不用担心学不全。

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

1万+

被折叠的 条评论
为什么被折叠?



