awd源码备份

这次市赛的web有点抽象了,备份源码就折腾了大半天,有一台靶机没开启SFTP,没办法直接从ishellpro上下载文件,公告提示了可以用SCP下载上传(之前根本没听说过),看了半天帮助手册终于会用了,这里来总结一下。

先从FTP讲起,什么是FTP?

FTP 全称 文件传输协议(File Transfer Protocol),是 TCP/IP 协议族中最经典的应用层协议之一,专门用于网络中不同主机之间的文件传输与文件目录管理。

但因为支持配置匿名登录,明文传输,安全性极低被逐步被SFTP替代。

SFTP 全称 SSH 文件传输协议(SSH File Transfer Protocol),是 SSH 协议的标准内置子系统,专门用于在加密的 SSH 通道上完成安全的文件传输与远程文件管理。

协议 全称 底层依赖 默认端口 安全性 防火墙配置难度
FTP 文件传输协议 原生 TCP 21(控制)+ 随机数据端口 明文传输,安全性极低 高,需开放多端口范围
FTPS FTP over SSL/TLS SSL/TLS + FTP 21(控制)+ 数据端口 加密传输 中,仍需多端口配合
SFTP SSH 文件传输协议 SSH 协议 22 全程高强度加密 低,仅需开放单端口

服务器开启了SFTP,那就直接下载文件即可,一般先用tar打包

cd /var/www/html
创建  tar -zcvf html.tar.gz * 
解压  tar -zxvf html.tar.gz 

那假如服务器没有开启SFTP,那应该怎么下载文件?

这里就要引出SCP了,SCP(Secure Copy)是 SSH 原生的安全文件复制工具,和 SFTP 是并列的 SSH 子系统,几乎所有 Linux/Unix 系统默认自带,通常不会被单独禁用。

scp -i .\id_ed25519_test -P 2222 appuser@127.0.0.1:/home/appuser/flag ./

私钥的权限太宽了,在linux中需要改成600,在windows中可以用以下命令

icacls .\id_ed25519_test /inheritance:r /grant:r "你的用户名:R"

报错大概率是openssl的版本不兼容,加上-O就行了

成功下载flag

上传只需要把本地目录放在远程目录前即可

scp -O -i .\id_ed25519_test -P 2222 ./flag appuser@127.0.0.1:/home/appuser/flag1

如果连SCP都没有了如何下载文件?

那就只能用ssh执行命令后重定向了

ssh -i .\id_ed25519_test -p 2222 appuser@127.0.0.1 "cat /home/appuser/flag" > ./flag3

如果靶机上用base64等编码命令,可以将文件编码后复制写来解码保存。

现在可以下载文件了,但又遇到了一个问题,靶机中没有tar等打包命令,没办法把源码打包成一个文件,一个一个下不得累死?

其实SCP支持递归下载,加上-r参数就可以下载整个目录了

scp -O -r -i .\id_ed25519_test -P 2222 appuser@127.0.0.1:/home/appuser ./

有师傅说可以用tabby下载文件,我测试了一下没SFTP似乎和ishellpro没啥区别,也得用scp命令下载。

我的建议是在平时写命令的时候多看看帮助手册,熟悉常见命令的写法,也可以把一些文档存在本地,以防万一。

posted @ 2026-09-20 15:24  leee0  阅读(14)  评论(0)    收藏  举报