学习网安(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后需要加上英文冒号:再加上所改的端口号

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/593928.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SRS 实时视频服务器搭建及使用

一、SRS 介绍 SRS是一个开源的(MIT协议)简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 SRS媒体服务器和FFmpeg、OBS、VLC、 WebRTC等客户端配合使用,提供流的接收和分发的能力&am…

独角数卡对接支付卡跳转问题解决方法

问题描述 最近在用独角数卡搭建了一个测试版的商店程序,结果却在对接易支付的过程中出现了卡跳转的问题,支付能正常完成,订单发卡也正常,就是会卡在这个弹窗页面无法正常跳转至订单查看页面。 本来这种BUG无关痛痒,但…

C++之函数提高(HM)

目录 1.函数默认参数(缺省参数) 2.占位参数 3.函数重载 4.类和对象--封装 (1)圆类: (2)访问权限 (3)struct&&class (4)立方体类的…

LeetCode 494. 目标和

解题思路 相关代码 class Solution {public int findTargetSumWays(int[] nums, int target) {int f[][] new int[30][2010];int offset 1000;//因为target>-1000&&target<1000,所以需要一个偏移量//f[0][0] -> f[0][0offset]1;f[0][0offset] 1;//由于存在…

Linux课程____LVM(逻辑卷管理器)

LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层&#xff0c;它提供了一个抽象的卷组&#xff0c;可以把多块硬盘进行卷组合并。 这样一来&#xff0c;用户不必关心物理硬盘设备的底层架构和布局&#xff0c;就可以实现对硬盘分区的动态调整。 动态调整磁盘容量&#xff…

Vue3【进阶】

简介 https://cn.vuejs.org/guide/introduction.html 创建vue3工程 【基于 vue-cli创建】 基本和vue-cli的过程类似&#xff0c;只是选择的时候用vue3创建 【基于vite创建】【推荐】 【官网】https://vitejs.cn/ 【可以先去学一下webpack】 步骤 【https://cn.vitejs.…

OCDS(on chip debug support)之STM

1. 问题&#xff1a; 在使用劳得巴赫调试TC397过程中&#xff0c;发现劳得巴赫break后&#xff0c;再次运行&#xff0c;task中的计数器不再增加&#xff0c;OS不再调度&#xff0c;并且会进入ERROR hook&#xff0c;error类型为OS_LIMITED 2. 排查 2.1 ErrorHook中的Error4&…

Docker Desktop 不支持 host 网络模式

先把这个结论的放在前面&#xff0c;直接访问链接就能看到官方文档中已经明确说了不支持。 参考链接&#xff1a;docker desktop for windows 不支持 host 网络模式 以前对于 docker 的网络模式&#xff0c;一直只是了解&#xff0c;没有亲自尝试过。结果今天在尝试 docker 的 …

PostgreSQL 文章下架 与 热更新和填充可以提升数据库性能

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;&#xff08;…

从多模态生物图数据中学习Gene的编码-MuSeGNN

由于数据的异质性&#xff0c;在不同的生物医学背景下发现具有相似功能的基因对基因表示学习提出了重大挑战。在本研究中&#xff0c;作者通过引入一种称为多模态相似性学习图神经网络的新模型来解决这个问题&#xff0c;该模型结合了多模态机器学习和深度图神经网络&#xff0…

vulhub中Struts2-008 远程代码执行漏洞复现

影响版本: 2.1.0 - 2.3.1 原理 > S2-008 涉及多个漏洞&#xff0c;Cookie 拦截器错误配置可造成 OGNL 表达式执行&#xff0c;但是由于大多 Web 容器&#xff08;如 Tomcat&#xff09;对 Cookie 名称都有字符限制&#xff0c;一些关键字符无法使用使得这个点显得比较鸡肋…

断网了,还能 ping 通 127.0.0.1 吗?

什么是127.0.0.1 什么是 ping TCP发数据和ping的区别 为什么断网了还能 ping 通 127.0.0.1 ping回环地址和ping本机地址有什么区别 127.0.0.1 和 localhost 以及 0.0.0.0 有区别吗 总结 你女神爱不爱你 &#xff0c;你问她&#xff0c;她可能不会告诉你。 但网通不通 &#xf…