从文件上传到命令注入

本文详细记录了一次从发现网站只能扫码登录,到深入分析js、尝试敏感接口,再到通过微信子域发现可上传接口,最终实现任意文件上传并利用path参数尝试跨目录,最终通过视频上传功能触发命令执行,成功反弹shell的过程。揭示了网站安全中的文件上传漏洞和命令注入风险。

主站打开是这样的只有扫码登陆

尝试扫码提示未注册

查看js,网站用了webpack打包

所有请求都在

这个js里面

尝试寻找敏感接口无果

百度site:domain.com

注意到wx1子域,打开这个链接跳转到在微信打开

那就到微信打开,查看功能点发现一处上传,先上传正常图片

改最下面的filename,后缀不变

<think> 我们正在处理用户当前的查询:“我想查找将文件上传到shell的命令 请问将文件上传到shell的命令”。根据用户提到的“参考站内引用”,我们有一些相关的引用内容,我们需要从中提取与文件上传到shell相关的命令。 分析引用内容: 引用[1]:使用scp命令上传文件到远程主机。示例命令:scp $file user@remote.host:$REMOTE_PATH 引用[2]:使用ftp命令上传文件到FTP服务器。示例脚本中使用了ftp命令,并通过重定向输入的方式执行命令(包括open, user, bin, cd, put, bye等)。 引用[3]:使用ncftp命令上传单个文件到FTP服务器。示例中定义了一个函数put_action,内部使用ncftp命令,并通过临时文件传递命令序列。 引用[4]:主要关于创建和挂载文件系统,没有直接涉及上传命令。 引用[5]:涉及命令注入和base64编码,与上传文件关系不大。 因此,我们可以总结出两种常见的上传文件到shell的方法: 1. 使用scp命令(基于SSH协议,安全拷贝) 2. 使用ftp或ncftp命令(基于FTP协议) 另外,我们还可以补充其他方法,如rsync、sftp等,但引用中没有提到。由于引用中只提到了scp和ftp,我们主要介绍这两种。 注意:用户可能是在本地shell中执行命令将文件上传到远程服务器,也可能是在远程服务器上执行命令来获取文件(但通常上传操作是从本地发起)。这里我们理解为从本地机器上传文件到远程服务器。 因此,回答应涵盖: 1. scp命令安全复制) 2. ftp命令(文件传输协议) 3. ncftp命令(一个改进的FTP客户端) 同时,根据系统级指令,我们需要使用正确的LaTeX格式,并且生成相关问题。 但注意,用户当前的问题比较具体,我们不需要使用数学公式,所以行内数学表达式可能用不到,但如果有变量或代码,我们会按照要求处理。 回答结构: 1. 简要介绍上传文件到shell的常见方法。 2. 分别介绍scp、ftp、ncftp的使用方法,并给出示例命令(参考引用中的示例)。 3. 根据要求,生成相关问题。 注意:由于引用[1][2][3]都提供了脚本示例,我们可以提取其中的关键命令,但不需要展示整个脚本(除非必要),而是给出基本的上传命令。 我们将按照以下步骤组织回答: 一、使用SCP上传文件 二、使用FTP上传文件 三、使用ncFTP上传文件 另外,我们还需要注意用户可能提到的“将文件上传到shell”可能是指上传到远程服务器的shell环境,所以我们解释为上传到远程服务器。 开始回答: </think> ### 将文件上传到 Shell 的命令详解 根据引用内容,文件上传到 Shell 主要通过以下协议实现,核心命令如下: #### 一、SCP 命令(基于 SSH) - **功能**:通过 SSH 加密传输文件 - **基础语法**: ```bash scp [本地文件路径] [用户名]@[远程主机]:[远程路径] ``` - **示例**(引用[1]): ```bash scp $file user@remote.host:$REMOTE_PATH # 上传当前目录所有文件到远程主机的 /data 目录 scp ./*.txt admin@192.168.1.100:/data ``` #### 二、FTP 命令(文件传输协议) - **功能**:交互式文件传输 - **基础流程**(引用[2][3]): ```bash ftp -n -i <<EOF open $主机IP user $用户名 $密码 bin # 二进制模式 cd $远程目录 put $本地文件 bye EOF ``` - **精简示例**: ```bash ftp -n <<EOF open 192.168.1.201 user scue 123 put report.pdf exit EOF ``` #### 三、ncFTP 命令(增强版 FTP) - **优势**:支持单命令操作(引用[3]) - **语法**: ```bash ncftp -u [用户名] -p [密码] [主机] [端口] <<< "put [本地文件]" ``` - **示例**: ```bash ncftp -u scue -p 123 192.168.1.201 21 <<< "put backup.tar" ``` #### ⚠️ 安全注意事项(引用[5]) 1. **过滤特殊字符**:避免`|`、`&&`等符号导致命令注入 2. **敏感数据处理**:对密码等参数进行 base64 编码 ```bash echo $密码 | base64 -d | xargs -I {} ftp -p {}... ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值