学习网安(21)

2024-04-05 21:28
文章标签 21 学习网

本文主要是介绍学习网安(21),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第20章存在疑问,待开学后和老师求证改动后发布

中间件之一——apache

先说一下http协议——超文本传输协议

全称为:Hyper Text Transfor Protocol

用途:让用户通过浏览器发送请求到服务器端,接收客户端返回的数据,在浏览器展示出来

http协议格式:

http://域名:端口号/路径/文件名

端口号默认为80;https端口号默认为443

客户端向服务端发送请求中的数据包:

http请求报文格式:

第一部分——第一行:GET开头请求行

请求行格式:

第一部分:

请求方法:GET、POST

第二部分:请求URL

第三部分:

所用的http协议版本号:

http 0.9

http 1.0

http 1.1

第二部分——第二行开始到一个空白行结束:请求头

请求头内容主要由键值对格式构成:

Host:主机头,表示向哪个网站发请求,后跟域名/ip

Connection:当前客户端的链接状态

User-Agent(UA头):指定客户端访问网站时使用的浏览器

refer:表示当前请求是直接访问过来的还是从其他网站跳转过来的,用于防盗链

第三部分——空白行下面:请求体

图例为(burp抓包工具抓取的百度的数据包)

请求行开头单词为GET,也有可能没有请求体

http响应报文格式:

第一部分——第一行:POST开头的响应行

响应行格式:

第一部分:http协议版本号

第二部分:客户端此次请求的状态码,通过这个状态码可以判断此次请求为成功还是失败

常见的HTTP状态码包括:

1开头的状态码一般为提示信息

200 OK:请求已成功,请求的数据包含在响应中。

201 Created:请求已完成并导致新资源的创建。

202 Accepted:表示请求已被接受,但处理尚未完成。

203(Non-Authoritative Information)表示服务器已成功处理了请求,但返回的实体头部元信息不是原始服务器的完整资源,而是其副本。

204 No Content:请求已成功处理,但没有内容返回。

301 Moved Permanently:请求的资源已被永久移动到新的URL。(永久重定向)

302 Found:请求的资源临时移动到新的URL。(临时重定向)

303 See Other:表示资源存在于另一个URI,且建议使用GET方法定向获取资源。

304 Not Modified:自上次请求后,请求的资源未修改过。(数据来自于缓存)

4开头表示本次请求失败原因在客户端

400 Bad Request:服务器无法处理请求,因为客户端的请求语法错误。

401 Unauthorized:请求需要用户验证。

402是一个非标准的状态码,通常不被广泛使用

403 Forbidden:服务器拒绝请求。(无权访问)

客户端请求的文件无权查看/客户端没有指定要访问哪个文件,且服务器默认展示给客户端的文件不存在

404 Not Found:服务器无法找到请求的资源。(客户端访问页面不存在)

5开头表示本次请求失败原因在服务端

500 Internal Server Error:服务器遇到意外情况,导致它无法完成请求。

501Not Implemented:这个状态码意味着服务器不支持请求中的功能,客户端应当检查请求的方法是否被服务器识别。

502 Bad Gateway:表示作为网关或者代理的服务器从上游服务器接收到无效响应。

503 Service Unavailable:服务器暂时无法处理请求,可能是因为过载或维护。

第二部分——第二行开始到一个空白行结束:响应头

第三部分——空白行下面:响应体

浏览器的开发者工具(网页按F12进入)可看到数据包的三种首部:

请求首部、响应首部、通用首部

响应首部信息:

Content-Type:返回的数据类型

http返回的数据类型有两种,分别为主类型和子类型,text为主类型,子类型为text中的html。text中的子类型有:JS、css、html

Date:返回时间

Server:从哪里返回的

通用首部信息:

请求URL、请求方法、请求结果

Remote Address:远程地址,图中443前中括号内是ipv6地址        

Referrer Policy:strict-origin-when-cross-ongin(表示此网页无论是否有证书都只能通过域名访问,无法通过ip访问)/unsafe-url

apache

用于开启一个端口,等待客户端通过浏览器访问。

Linux中已内置apache

安装apache命令:

yum install httpd(软件包叫httpd)

在kali等其他系统中apache可能叫做apache2

检查系统是否安装apache命令:

rpm -q httpd

启动apache命令:

systemctl start httpd——临时启动

systemctl enable httpd——开机自动启动

查看apache状态:

systemctl status httpd

或查看端口检查apache状态(apache默认使用80端口):

ss -tunl | grep 80

或查看进程:

ps aux | grep httpd

检查哪个进程占用了指定端口:

lsof -i :80

检查连接80端口的进程:

ss -tunlp | grep 80

浏览器输入虚拟机ip测试apache是否启动:

页面如下,apache测试成功,正常启动

访问某个服务出现异常无法访问,排查步骤:

1、检查网络是否通畅,主机Win+R,执行cmd,ping一下虚拟机ip(网络通畅说明可以访问)

2、检查服务是否启动,上述查看状态命令,任意执行其一(服务启动说明可以被访问)

3、测试是否可以访问服务的端口(telnet):

Xshell中执行命令

telnet 虚拟机ip 服务对应端口

出现Connecting表示正在进行中还未连上

稍后若出现下图提示,表示连接失败

连接失败可能原因:

源ip(自己ip)被加入黑名单

目标主机开启防火墙,源主机数据包发送失败

验证是否是源ip被加入黑名单:换一个ip

4、如果换一个ip还是无法连接,说明目标主机开启防火墙

关闭防火墙

systemctl stop firewalld——临时关闭

systemctl disable firewalld——永久关闭

第一次关闭防火墙会有提示,属于正常现象:

关闭selinux(增强版安全控制软件能让系统更安全,但同时会让系统特难用)步骤:

打开对应的配置文件:/etc/selinux/config

改默认值为disabled:

查看此软件是否开启:getenforce,关闭的结果为Disabled

关闭的命令为:setenforce 0(临时关闭)

sed -i"s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config(永久关闭,同上述关闭步骤一样效果)

相关文件

配置文件:httpd.conf

日志文件:access.log(访问日志)、error.log(报错日志)

若使用yum安装apache,日志文件位于:/var/log/httpd;配置文件位于:/etc/httpd/conf

若使用编译安装apache,日志文件位于:安装位置下/logs/;配置文件位于:安装位置下/conf

配置文件中,此行意思为:加载目标位置下所有后缀为conf的文件

配置文件中的关键信息:(文件中有大小写,但实际不区分大小写)

ServerName(指定域名)

域名解析的优先级为本地缓存→hosts文件→dns(需要联网,且需要购买),如果这三种方式都解析不了域名,则会在cmd框中ping域名时,提示“请求找不到主机”等如下信息

hosts文件位于(此电脑):系统(C:)>Windows>System32>drivers>etc

hosts文件先拖到桌面,再打开编辑,写好后再放回原位

hosts文件自定义解析域名格式:

编辑好文件后,ping的结果:

DocumentRoot:指定网站根目录(启用selinux时,此路径不能随机更改)

Listen(监听)

要监听指定ip,将80改为指定ip;要监听所有ip,则不用更改/改为:80(加冒号)

更改后不会立刻生效,需要重启服务:systemctl restart httpd

注意:更改监听的端口号后,在浏览器中输入ip后需要加上英文冒号:再加上所改的端口号

此篇到此结束,谢谢各位阅读,如有不足,可评论补充,下篇见

这篇关于学习网安(21)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878189

相关文章

【LabVIEW学习篇 - 21】:DLL与API的调用

文章目录 DLL与API调用DLLAPIDLL的调用 DLL与API调用 LabVIEW虽然已经足够强大,但不同的语言在不同领域都有着自己的优势,为了强强联合,LabVIEW提供了强大的外部程序接口能力,包括DLL、CIN(C语言接口)、ActiveX、.NET、MATLAB等等。通过DLL可以使用户很方便地调用C、C++、C#、VB等编程语言写的程序以及windows自带的大

【JavaScript】LeetCode:21-25

文章目录 21 最大子数组和22 合并区间23 轮转数组24 除自身以外数组的乘积25 缺失的第一个正数 21 最大子数组和 贪心 / 动态规划贪心:连续和(count)< 0时,放弃当前起点的连续和,将下一个数作为新起点,这里提供使用贪心算法解决本题的代码。动态规划:dp[i]:以nums[i]为结尾的最长连续子序列(子数组)和。 dp[i] = max(dp[i - 1]

react笔记 8-21 约束性 表单

1、约束性组件和非约束性组件 非约束性组件<input type="text" name="" defaultValue={this.state.msg}></input>这里他的value是用户输入的值 并没有执行操作 只是获取到了msg的值 用户输入不会改变数据非约束性组件需要使用defaultValue获取数据 否则会报错约束性组件<input type="text

内存管理篇-21 虚拟内存管理:线性映射区

1.线性映射区的定义         这部分讲线性映射区的内容。一般老的嵌入式平台,它内存很小只有几百兆,都会直接把整个物理内存映射到线性映射区了,只有当物理内存大于1GB以上,线性映射区无法cover的时候就把剩下的放到高端内存。所以这个区域是最简单的。         线性映射区一般是指内核空间的某个部分,直接映射到低端内存的区域。并且他们之间是线性映射的。         PAGE_O

leetcode解题思路分析(三)15-21题

三数求和 最简单的做法就是三重循环判断: int length=nums.length;for(int i=0;i<length;i++){for(int j=i+1;j<length;j++){for(int k=j+1;k<length;k++){if(nums(i)+nums[j]+nums[k]==0){...}}} } 在此基础上,对第三次查找其实可以做优化:

第 21 章 DOM 操作表格及样式

第 21 章 DOM 操作表格及样式 1.操作表格 2.操作样式 DOM 在操作生成 HTML 上,还是比较简明的。不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了。本章主要了解一下 DOM 操作表格和样式的一些知识。 一.操作表格 标签是 HTML 中结构最为复杂的一个,我们可以通过 DOM 来创建生成它,或者 HTML DOM 来操作它。(PS:HTML DOM

2014年7月21日 你真的适合出国吗

郎教授说: 刘丁宁被港大辞退去读了北大,但是这个可能不是个案 郎教授在1980年那个时代,出国就做镀金 但是现在出过留学已经是一个大众化的市场了,不再是镀金了 从1978年到现在,2008年之前有105W人出国,回国比列25%,但是之后出过人数有185W,回国比列61% 也就是现在已经变成了一个大众的市场了,所以这是一个质量的问题 从2006年到现在,高中生

ftp 21端口被占用解决办法

最近发现 服务器 ftp 21端口被占用,在博客园里 找到这个方法不错,来分享下。   有时安装程序时,会出现XX端口被占用的情况,可以通过CMD命令查看什么程序占用 1. netstat -ano 查看相应端口对应程序的PID 例如: C:\>netstat -ano Active Connections Proto Local Address

ARM 异常处理(21)

异常的流程: 首先: 在硬件上阶段: 这里是4大步3小步 然后是      异常处理: 这里主要是保存现场,进行异常处理 然后是      异常返回:  主要指 恢复现场, 再跳转回去。 首先硬件上: 4大步3小步。 第一大步: 当异常发生时,会将 CPSR的内容保存到目前模式的SPSR中,不知道需不需要手动执行。 第二大步: 第一小步,硬件会自动的设置 异常的类

2020-08-21 利用Graphics.DrawMeshNow绘制运行时Gizmos,VR可用,HDRP可用

先放效果图: 功能本身为测试用例,所以写的并不是很严谨,三角线使用的是缩放后的圆柱Mesh,黄色使用Box的Mesh,绿色使用Sphere的Mesh。 box和sphere也可以同时生成多个,但需要修改VrGizmos.cs中的两个方法DrawSphere、DrawBox,逻辑类似三角线的方法DrawSegments 放上VrGizmos.cs的源码: using System.Coll