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

浙公网安备 33010602011771号