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命令下载。
我的建议是在平时写命令的时候多看看帮助手册,熟悉常见命令的写法,也可以把一些文档存在本地,以防万一。

浙公网安备 33010602011771号