02-网络安全-网站协议请求报文(基础篇)

发布时间 2023-03-29 17:35:06作者: Jaoany

1.web应用程序技术

什么是http协议?

HTTP:超文本传输协议。

可以实现客户端通过浏览器获取服务端数据信息,然后通过浏览器显示出来;

客户端可以通过浏览器提交信息到服务器端后台程序(数据库服务器、缓存服务器)。

如何提交信息到服务器端呢?

http请求与响应报文(类似于寄信时,填写地址等提交信息)

(1)请求方法:put,get,post,option move等方法。

以下是一个典型的http请求:

GET /auth/488/YourDetails.ashx?uid=129 HTTP/1.1  (请求行信息,HTTP/1.1指使用的1.1版本)

Accept: text/html, application/xhtml+xml, application/xml : q=0.9,*/*:q=0.8Referer: https://mdsec.net/auth/488/Home.ashx
Accept-Language: zh-cn,zh: q=0.5              (为了提升传输速率,有时需要做带宽压缩处理,大网站的优化手段)
User-Agent: Mozilla/4.0(compatible:MSIE 8.0; Windows NT 6.1: WDW64;
Trident/4.0: SLCC2:.NET CLR 2.0.50727:. NET CLR'3.5.30729:.NET CLR3.0.30729:.NET4.OC: InfoPath.3:.NET4.OE: FDM;。 NET CLR 1.1.4322)Accept-Encoding: gzip,deflate
Host: ndsec.net
Connection: Keep-Alive
Cookie: SessionId=5870C71F3FD4968935CDB6682E545476   (请求头信息)

(请求头下面一般会有一个空行)

xxxxxx    (请求主体信息)(当想提交信息post时,空行下会有请求主体信息,若只是获取信息get,下面没有主体信息)。

 

所以一个请求报文的结构就是:

请求行信息

请求头信息

空行

请求主体信息

(2)响应报文

所以一个响应报文的结构就是:

响应行信息

响应头信息

空行

响应主体信息(获取数据信息,文本,图片,视频,音频,代码信息,css、php、java等)

(获取数据信息后,都会被浏览器识别,在浏览器中展示)

 

有些信息可能不需要在浏览器中显示,需要在浏览器中下载(exe等)

有些信息是通过访问一个网站,跳转到另一个,比如通过百度推广引流,可以访问某个机构网站

会在访问中显示,并可以统计引流数量,然后计费

百度web服务器---用户信息              XX网站web服务器---用户信息 referrer=www.baidu.com 

host可以用来区分,访问的是一台服务器的具体哪个网站。

短链接:一次链接可以一次请求、一次响应

长链接(keep-Alive):一次链接可以多次请求,多次响应

-------------------------------------------请求报文------------------------------------------

windows系统可以通过curl访问浏览器

curl -v sec.mashibing.com

其中通过-v显示出来✳后面的是详细信息

>后面的是报文信息

 

 

 -----------------------------------------响应报文---------------------------------------

访问一个网站,它是使用什么对请求进行相应的呢?--是使用windows服务器中的web服务器进行的响应。

开源软件敏感信息会泄露,黑客可以很容易发现露铜,并向其发起攻击,有些网站为了避免敏感信息泄露,将敏感信息隐藏或者改名字等。如将开源的apach改名,让人认不出。

返回字节的长度 ,在暴力破解时 ,有一个字典,如果字典中有1k个密码信息,那么返回的信息也有1k条,如果其中有一条正确的,那就是密码。可以通过内容长度(content-Length)来更方便地判断,因为访问出错时,返回的信息都是相同的,正确的返回长度与错误的肯定不同。

 

 

 

 

 

 

 

 

 

(3)HTTP方法

请求方法:

get:从服务端获取资源信息(不会有请求主体)。

head:与get方法类似,不同之处是服务器不会在其响应中返回主体信息。

post:向服务端提交数据资源信息。

put:向服务端提交文档附件资源。

trace:主要用于诊断。

option:主要要求服务器报告对某一特殊资源有效的http方法。(安全控制、请求方法)

统一资源定位符URL

http://IP地址|域名信息:[开放端口]/资源路径信息/xx/xx/  80           

https://IP地址|域名信息:[开放端口]./资源路径信息/xx/xx/  80      

ftp://IP地址|域名信息:[开放端口]/资源路径信息/xx/xx/  80      

//IP地址|域名信息:[开放端口]/资源路径信息/xx/xx/  80      

 

 

 

 

 

 (报错404表示数据找不到了)

响应报文状态码信息

 

 

 

 

 

 

 

 

 500错误:一般是某个代码错误

503错误:无合理响应,一般是系统出问题了,要考虑是否被攻击了。

 

cookie信息

(1)什么是cookie?

在早期的时候为了识别到底是哪个主机访问的服务端,就给访问的做一个记录,所以就引入了cookie的概念。(网景公司的Lou Montulli ,1994年将cookie这一词用于网络通信)

由于http是无状态的协议,一旦客户端和服务器的数据交换完毕,就会断开连接,再次请求,会重新连接,这就说明服务器单从网络连接上是没有办法知道用户身份的。怎么办呢?那就给每次新的用户请求时,给它颁发一个身份证(独一无二)吧,下次访问、必须带上身份证,这样服务器就会知道是谁来访问了,针对不同用户,做出不同的响应。,这就是Cookie的原理。
其实cookie是一个很小的文本文件,是浏览器储存在用户的机器上的。Cookie是纯文本,没有可执行代码。储存一些服务器需要的信息,每次请求站点,会发送相应的cookie,这些cookie 可以用来辨别用户身份信息等作用。(就是为了解决无状态协议,给用户办法一个身份标识用来识别身份,cookie其实就是一个小文件)

---------识别身份,避免反复登录

--------一般是服务端生成,返回给客户端

(2)cookie有哪些类型?

会话cookie:

持久cookie:

(3)cookie的属性?

cookie域:

 

(4)cookie的种类有哪些?

第三方cookie