网安学习(二十五)HTTP协议、HTTS、邮件协议

一、HTTP协议

1、概念

HTTP(超文本传输协议)是用于在万维网服务器上传输超文本(HTML)到本地浏览器的传输协议

基于TCP/IP(HTML文件、图片、查询结构等)

2、万维网服务

采用C/S架构

客户机通过浏览器去请求浏览器上就可以看到对应的图形界面,浏览器/服务器(B/S)

3、万维网服务的软件

Windows server IIS (Windows平台)

apache(多平台)

tomcat(多平台)

nginx(多平台)

二、HTTP工作原理

在客户端使用浏览器通过URL向HTTP服务器发送请求

URL(统一资源定位器):由三部分组成

web服务器根据收到的请求直接向客户机响应信息

针对于HTTP默认端口号是80,可以修改,但会影响到客户机访问

注意事项

http是无连接,限制每次连接只处理一个请求

http是独立的:只要客户端和服务器就知道如何处理数据内容,任何类型的数据都可以通过http发送,客户端以及服务器指定使用适合的MIME-type(消息内容类型)

http是无状态的:没有记忆能力,后续处理的内容需要用到前面的内容时,就必须重传,每次连接传送的数据量比较大,从另一个方面来考虑,服务器不需要提供先前的信息,应答就比较快

一、HTTPS协议

https = http ssl/tls

1、概念

在http的通道上增加了安全性,传输过程通过加密和身份认证来确保传输安全性

2、tls

传输层安全协议,ssl和tls其实是一个协议,ssl 2.0版本,自ssl3.0版本后,更名为tls 1.0,使用最为广泛的是tls1.2版本

设计目标        

        保密性:所有的信息都加密传输

        完整性:校验机制

        认证:双方都配备证书,防止冒充

        互操作、通用性

        可扩展

        高效率

发展史

ssl 2.0         ssl 3.0        tls 1.0        tls 1.1        tls1.2        tls 1.3

2、http的缺陷

明文传输

只对传输数据的长度进行完整校验,数据是否又被篡改是不做确认的

3、HTTPS的好处

在传输数据之前,客户端会和服务器端去协商数据在传输过程中的算法,包含自己的非对称加密的密钥交换算法(RSA/DH),数据签名摘要算法(MDS/SHA),加密传输数据的对称加密算法(DES/3DES/AES)

客户端生成随机的字符串,通过协商好的非对称加密算法,使用服务端的公钥对该字符串进行加密,发送给服务端。服务端接收到之后,使用自己的私钥解密得到该字符串。在随后的数据传输当中,使用这个字符串作为密钥进行对称加密

邮件协议(SMTP、POP3、IMAP4)

一、电子邮件系统

1、概述

网络电子邮件系统,好处在于,价格低廉,速度非常快

形式多样化

        文字

        图像

        声音

电子邮件系统的组成部分

邮件协议

        SMTP:简单的邮件传输协议,默认端口TCP 25号,主要用于传输电子邮件(发送邮件)

        POP3:邮局协议第三版,默认端口号TCP110号,主要用于下载接受邮件(接收邮件)

        IMAP4:网际消息访问协议第四版,默认端口号TCP143号,主要用于在线查看邮件(接收邮件)

2、常见的电子邮件系统(服务端)

exchange

postflx

第三方(qq、163、winmail)

3、常见的电子邮件客户端

foxmail

outlook

网易邮箱大师

qq邮箱客户端

4、SMTP状态码

250:所要求的邮件动作完成,可以继续

220

354:开始接受邮件内容输入

221:服务器关闭了传输通道

334:认证输入

235:认证成功

Request请求数据包数据格式

请求行:请求类型/请求资源类型、协议的版本和类型

        请求行由三个标记组成:请求方法、请求URL和HTTP版本,它们用空格分享。

        例如:

                GET /index.html HTTP/1.1

HTTP  规划定义了8种可能的请求方法:

        GET:检索URL中标识资源的一个简单请求

        HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档

        POST:服务器接受被写入客户端输出流中的数据的请求

        PUT:服务器保存请求数据作为指定URL新内容的请求

        DELETE:服务器删除URL中命令的资源的请求

        OPTIONS:关于服务器支持的请求方法信息的请求

        TRACE:web服务器反馈Htt请求和其头标的请求

        CONNECT:已文档化,但当前未实现的一个方法,预留做隧道处理

请求头:一些键值对,浏览器与web服务器之间都可以发送,特定的某种含义

        由关键字/值对组成,每行一对,关键字和冒号分享。请求头通知服务器腾于客户端的功能和          标识

HOST:主机或域名地址

ACCEPT:指浏览器或其他客户可以接受的MIME文件格式。Servlet可以根据它判断并返回适当                      的文件格式

User-Agent:是客户浏览器的名称

Accept-Language:指出浏览器可以接受的语言种类,如en或en-us,指英语

connection:用来告诉服务器是否可以维持固定的HTTP连接。http是无连接的,HTTP/1.1使用                           Keep-Alive为默认值,这样当浏览器需要多个文件时(比如一个HTML文件和相关                           的图形文件),不需要每次都建立连接

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它                     可以记载和服务器相关的用户信息,也可以用来实现会话功能。

Referer:  表明产生请求的网页URL。比如从网页/icconcept/index.jsp中点击一个链接到网                               页/icwork/search,在向服务器发送的GET/icwork/search中的请求中,Referer是                             http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪Web请求是从                             什么网站来的。

Content-Type:用来表明request的内容类型。可以用HttpServletRequest的getContentType()                             方法取得。

Accept-Charset:支持浏览器可以接受的字符编码。英语浏览器的默认值是ISO-8859-1

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式 ,它是为了压缩                                   文件并加速文件传递速度。浏览器在接收Web响应之后先解码,然后在检                                        查文件格式。

空行:请求头与请求体之间用一个空行隔开

        最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不在有头标

请求体:要发送的数据(一般是post提交会使用:例user=123)

        请求数据

                使用POST传输,最常使用的是Content-Type和Content-Length

Response响应数据包数据格式

一个响应由四个部分组成:状态行、响应头标、空行、响应数据。

状态行:协议版本、数字形式的状态代码和状态描述,每个元素之间以空格分隔

响应头标:包含服务器类型、日期、长度、内容类型等

        像请求头标一样,它们指出服务器的功能,标识出响应数据的细节

空行:响应头与响应体之间用空行隔开

        最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不在有头标

响应数据:浏览器会将实体内容中的数据取出来,生成相应的页面

        HTML文档和图像等,也就是HTML本身

HTTP响应码:

        1xx:信息,请求收到,继续处理

        2xx:成功,行为被成功地接受、理解和采纳

        3xx:重定向,为了完成请求,必须进一步执行的动作

        4xx:客户端错误

        5xx:服务器错误

        

        200  存在文件

        403  存在文件夹、

        3xx  均可能存在

        404  不存在文件及文件夹

        500  均可能存在

靶场实操

例一

 

 如图,提示该网站只能从谷歌首页通过跳转来访问

解决方案

用burpsuite=抓包后,修改referer来源信息为http://google.com

         

 例二

 

 该网站只能使用iphone,在2g网络下查看

根据页面提示,抓包分析除了判断浏览器类型还判断了微信特有的NetType

百度了解NetType得到

从微信6.0开始,其内嵌的浏览器在User Agent字符串中增加了NetType字段用于标识客户端(手机)当前的网络环境,经测试, NetType/WIFI NetType/2G NetType/3G+ 分别对应于Wifi、2G、3G以上网络环境。因此,Web服务器可以据此识别客户端网络环境并提供有针对性的内容。将请求头USER-AGENT:的内容修改为 Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/6.0 NetType/2G 后提交即可。

只需把User Agent设置为:

iPhone 5 / iOS 8.0 / Wifi
Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/6.0 NetType/WIFI

 

 例三

 某日,安全工程师对一企业办公系统的源代码进行授权检测,在检查过程中,发现程序员(可能是临时工)使用PHP程序,处理服务端接收客户端传递的数据时,使用的是$_REQUEST[],前端使用的是GET方式,然后就遇到问题了"Request-URI Too Long"。

通过POST方式提交"content"数据内容,查看服务端返回的结果。

即为将GET请求改为POST请求

原请求为

 1.content数据略,只需要将其复制并放在请求最后面

2.将GET请求更改为POST请求

3.添加请求头Content-Type:application/x-www-form-urlencoded

 

这个题考察的是当数据过长的时候不应该使用GET就应该使用POST,因为GET会限制数据长度,而POST不会限制,当使用POST的时候,数据content应该跟在最下面(应该空格一行,因为在数据content上面会有一个content-length),还有一个最简单的办法就是点击右键直接选择change request method,这个直接就可以把GET改成POST。 

例四

 利用漏洞让“ggg”成为第一名

                        

 点击投屏抓到的数据包

 提示:该网站是通过检测ip地址来限制每个用户的投票数量

此题要知道这个页面是用什么语言写的,得知是PHP后,因为计票一般就是按照IP来区分计数的,所以通过PHP的获取ip代码X-Forwarded-For:ip(这里填ip地址),然后把这刚刚输入的整个语句右键send to intruder,

在intruder的position(位置)中对ip后面俩位选中,点击右侧的add,并将攻击类型改为Clusterbomb 

然后再选择payloads(有效载荷)

 设置第一个参数,类型设置为数值(Number),每次增加1

 同理设置第二个参数

 之后点击start开始攻击

 即可完成

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值