CloudServer
云服务器环境配置
腾讯云服务器地址:81.69.227.204
Tricks
curl ifconfig.me
可以查看服务器的公网IP;ifconfig
看到的网络信息不包括公网信息。
Solutions
Docker、Node起服务器
使用腾讯云服务器,系统为CentOS7.6
因 b01lersCTF 中Web题的XSS需求,现需要在服务器上用Docker和Node搭建网页,供反射XSS使用。
SSH配置
题目源码及DockerFile都在本地,首先需要解决服务器连接问题与文件传输问题
参考:Linux服务器间四种文件传输方式,SSH config使用教程和总结,为CentOS安装Docker
考虑使用SSH与SCP(这俩是共享配置的)来实现本地shell连接至服务器并传输文件。先在腾讯云上生成一对公私钥,将公钥与服务器绑定,私钥文件下载下来保存。需要注意的是该公私钥服务的用户是root用户,而非云服务器当前的用户。
公私钥认证逻辑:客户端带着私钥访问服务端,服务端将本地的公钥与客户端携带的私钥进行匹配,若匹配成功则说明公私钥是一对的,身份认证完毕。
root用户的公钥文件存放在 /root/.ssh/authorized_keys
文件中,普通用户的公钥文件存放在 /home/username/.ssh/
文件夹下。该文件夹不会默认创建,可以自己创建文件夹,并新建config文件。
拥有了私钥文件"privateKey"后,可以使用命令:ssh -i keyPath username@ip -p port
通过指定端口 port
,以用户 username
的身份登录到地址为 ip
的服务器上,keypath
指定密钥文件的绝对路径。需要注意的是,所有的公私钥文件都要严格控制权限,最低要求是 other
用户不能有任何权限;一般控制其权限为只读:
chmod 600 keys
此时使用SSH还需要选中私钥文件路径,非常麻烦,配置SSH的config文件可以让SSH用起来更方便。在客户端"/home/username/.ssh"文件夹下新建"config"文件,添加内容:
Host *
ServerAliveInterval 60
Host cloud
HostName 81.69.227.204
User root
IdentityFile ~/.ssh/23_3_18_laptop.pem
Port 24354
#
添加注释;Host
指定SSH服务,后面跟名称,它代表着一系列配置;Hostname
指定目标服务器的IP;User
指定登录服务器的用户,这两个参数相当于 root@81.69.227.204
;IdentityFile
指定私钥文件路径;Port
指定连接端口,SSH默认使用22端口,该端口容易被扫描,建议修改为其他端口,并开放服务器对应端口的防火墙。
编写好配置文件后,可以用 SSH cloud
来快速进行SSH连接,它会自动读取对应的配置并连接到目标服务器。改配置同样适用于SCP,通过命令 scp ./XssSrc cloud:/tmp/tmpWWW/
将本地XSS所需的源码传送到服务器上的 tmpWWW
文件夹下。选择 /tmp
文件夹是因为该文件夹所有用户都有充足的权限进行读写操作,不会出现权限问题。cloud
代替了原本的 user@ip -p port
的CLI参数。
至此SSH配置完毕,源码文件成功传送至服务器。
SSH的总配置文件存放在 /etc/ssh/
下,SSH服务sshd的配置文件是 sshd_config
,如下设置:
PubkeyAuthentication yes # 开启公钥验证
Port 24354 # 连接端口
ListenAddress 0.0.0.0
PermitRootLogin yes # 允许登录root用户
PasswordAuthentication no # 关闭密码验证
默认允许登录root用户,关闭密码验证时默认使用公钥验证,默认设置连接端口为22
启动服务器
有了所需的源码文件,就可以搭建服务器了。首先为CentOS安装Docker,直接用一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
然后 service start docker
启动docker。进入Docker File所在文件夹,用 docker build -t motd .
构建镜像,随后 docker run -p 23333:5000 motd
运行。源码中设置服务器挂载到(容器的)5000端口上,而Docker命令中要想成功挂载该容器也必须指定容器端口为5000,否则该网页将被拒绝访问,因为端口设置冲突了。Node设置服务器起在 0.0.0.0:5000
,这个IP代表"本机所有ip地址",因此服务器被挂载后,外部直接访问服务器公网IP及对应端口即可访问到该网页,且该网页设置为HTTP协议,因此访问时需要:http://81.69.227.204:23333
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具