我是一名网安专业的大二学生,经同学推荐,了解到飞天加速计划·高校学生在家实践这个活动,同时为满足实践作业需要,特此使用ECS服务器。
经过一周的使用,我感觉使用云服务器就像使用虚拟机一样,但是它有公网ip。在安全性上,阿里云做的很保守,有关防火墙的配置,不仅仅需要在服务器上通过命令行配置,还需要在阿里云实例的配置上进行安全组的调配。
下面是我的实验内容:
实验一:搭建Web服务器,正确部署任意网站,并利用浏览器访问(可以尝试如何支持不同版本的HTTP协议)。
1.购买阿里云ecs服务器(Linux系统),重置实例密码。
2.远程连接服务器,我使用的是MobaXterm工具,点击Session,选择SSL连接,输入公网ip,用户名和密码。
3.连接成功后,利用yum模块下载nginx:输入命令“yum install nginx”安装;命令“sudo systemctl enable nginx”启用nginx服务。
4.由于nginx默认运行在80端口,在管理阿里云服务器界面开启外部访问80端口的权限(这里我开放了本地访问)。
5.本地访问服务器公网ip,成功搭建。
6.更改页面回显。进入user/share/nginx/html目录下,编辑index.html文件并保存。
实验二:访问任意Web网站首页,利用浏览器的Web开发工具观察HTTP交互过程和涉及到的HTTP头部字段。
访问志愿北京界面,Fn+F12打开“开发者工具”(使用edge浏览器),点击访问“志愿项目”页面,产生请求,在开发者工具的“网络”中找到请求,单击,选择“标头”得到请求和响应包的信息。
涉及到的HTTP头部字段:
请求包:
:authority: www.bv2008.cn
:method: GET
:path: /app/opp/list.php
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
cookie:
sec-ch-ua: "Chromium";v="94", "Microsoft Edge";v="94", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?1
sec-ch-ua-platform: "Android"
sec-fetch-dest: document
sec-fetch-mode: navigate
sec-fetch-site: same-origin
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Mobile Safari/537.36 Edg/94.0.992.50
响应包:
cache-control: no-store, no-cache, must-revalidate
content-encoding: br
content-type: text/html; charset=utf-8
date: Fri, 22 Oct 2021 04:19:07 GMT
expires: Thu, 19 Nov 1981 08:52:00 GMT
pragma: no-cache
server: Tengine
set-cookie: PHPSESSID=; expires=Fri, 22-Oct-2021 04:49:07 GMT; Max-Age=1800; path=/; domain=www.bv2008.cn; secure; HttpOnly
vary: Accept-Encoding
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
至此完成实验二。
实验三:利用自动化测试工具操纵无头浏览器,进行网页爬虫、截图等实验
1.安装Selenium:打开pycharm,package里查找selenium,安装。
2.安装edge driver:下载对应版本的edge driver工具,放在python环境里。
3.写代码:
```
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge(executable_path='msedgedriver.exe')
driver.get('https://suyumen.github.io/archives/')
print(driver.title)
res = driver.find_elements(By.CLASS_NAME, 'article-sort-item__title')
for i in res:
print(i.text)
driver.close()
```
运行后成功爬取我博客的文章标题。
即爬取成功。
下面进行截图。
```
from selenium import webdriver
import time
driver = webdriver.Edge(executable_path='msedgedriver.exe')
driver.get("https://suyumen.github.io")
driver.maximize_window()
picture_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
# print(picture_time)
try:
picture_url = driver.get_screenshot_as_file('C:\\Users\\suyumen\\Desktop\\' + picture_time + '.png')
print("success")
except BaseException as e:
print(e)
driver.close()
```
运行结果应当是截图我博客的首页,保存到桌面,以时间戳命名,实际运行结果在桌面保存了我的截图。
至此完成实验三。
在未来,我将好好利用ECS,制作一个web平台,放置一些好用的工具和学习相关的内容,希望自己终身学习,投身在网络安全的建设中,做一名优秀的白帽子。