HTTP
HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件、图片文件、查询结果等。
HTTP协议一般用于B/S架构。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
HTTPS
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。
HTTP和HaTTPS区别
- https是http协议的安全版本,http协议的数据传输是明文的,是不安全的,https使用了SSL/TLS+http协议进行了加密处理。
- http和https使用连接方式不同,默认端口也不一样,http是80,https是443。
SSL
ssl(Secure Socket Layer)代表安全套接字层。它是一种用于加密和验证应用程序(eg浏览器)和web服务器之间发送的数据的协议。
加密https的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。
ssl/tls(前身是ssl)协议作用:认证用户和服务,加密数据,维护数据的完整性的应用层协议和解密需要两个不同的密钥,故被称为非对称加密。
状态码的分类
1XX- 信息型,服务器收到请求,需要请求者继续操作。
2XX- 成功型,请求成功收到,理解并处理。
3XX - 重定向,需要进一步的操作以完成请求。
4XX - 客户端错误,请求包含语法错误或无法完成请求。
5XX - 服务器错误,服务器在处理请求的过程中发生了错误。
常见的状态码
200 OK - 客户端请求成功
301 - 资源(网页等)被永久转移到其它URL
302 - 临时跳转
400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
404 - 请求资源不存在,可能是输入了错误的URL
500 - 服务器内部发生了不可预期的错误
503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
URL和URI区别
URI统一资源标识符,用来唯一的标识一个资源。
get和post的区别
都包含请求头请求行,post多了请求body。
1.get多用来查询,请求参数放在url中,不会对服务器上的内容产生作用。post用来提交,如把账号密码放入body中。
2.get是直接添加到URL后面的,直接就可以在URL中看到内容,而post是放在报文内部的,用户无法直接看到。
3.get提交的数据长度是有限制的,因为URL长度有限制,具体的长度限制视浏览器而定。而post没有。
4.get请求会被浏览器主动缓存,而post不会。
5.get产生一个tcp数据包,浏览器会把http header和data一起发送出去,服务器响应200;post产生两个tcp数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok。
burp抓取https数据包
首先在burp中将证书导出到本地
然后浏览器中连接设置,选择手动配置代理
最后查看证书,导入,选择信任由此证书颁发机构来标识网站
成功
eg:
修改站长之家的返回信息
修改之前的数据包
我们修改user-agent信息把他改为11111111
这个操作只是为了说明网站是通过数据包访问
靶场练习
1.浏览器信息伪造_网络安全_在线靶场_墨者学院_专注于网络安全人才培养
打开网站显示如下
根据提示判断微信特有的NetType,将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
修改数据包后提交获得key
2.来源页伪造_网络安全_在线靶场_墨者学院_专注于网络安全人才培养
打开网站显示只允许从google.com访问
抓包查看Referer,将来源网站修改为google.com
返回成功得到key。
3.HTTP动作练习_网络安全_在线靶场_墨者学院_专注于网络安全人才培养
网站打开显示url太长,发现是get请求限制长度
更改为post请求,send失败显示content格式错误,添加Content-Type:application/x-www-form-urlencoded,重新send成功,得到key。
4.投票系统程序设计缺陷分析_网络安全_在线靶场_墨者学院_专注于网络安全人才培养
题目是投票,要把票数投到第一,有检测ip限制,则伪造X-Forwarded-For,随便输入一个IP,转发到intrude进行狙击手爆破,设置payload ,选择number,范围从1-255,step为1,进行爆破,爆破完之后,放包,具体过程如下: