文章插图
HTTP协议是基于TCP/IP协议之上的应用层协议,它是一个客户端和服务器端请求和应答的标准 。客户端是终端用户,服务器端是网站 。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求 。下图是HTTP协议的原理图,通常包括两部分:
HTTP客户端发起一个请求,建立一个到服务器指定端口的TCP连接 。
HTTP服务器则在那个端口监听客户端发送过来的请求 。一旦收到请求,服务器向客户端发回一个状态行,比如成功访问的状态码为“HTTP/1.1 200 OK”,同时返回响应消息,包括请求文件、错误消息、或者其它一些信息 。
推荐文章:HTTP协议超级详解 - 爱文飞翔
文章插图
HTTPS(全称Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS在HTTP的基础下加入SSL层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要SSL 。HTTPS 存在不同于HTTP的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间) 。这个系统提供了身份验证与加密通讯方法 。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。如果你足够细心,你会发现现在很多大型互联网网站,如百度、淘宝、腾讯很早就已经把HTTP换成HTTPS了 。
文章插图
响应码很多目录扫描工具就是通过HTTP响应码来判断页面是否存在 。200、302、403、404、500都是常见的响应码 。
文章插图
URL
在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址 。
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名;也可认为由4部分组成:协议、主机、端口、路径 。URL的一般语法格式如下,方括号为可选项 。
protocol :// hostname[:port] / path / [parameters][?query]#fragment
例如“www.eastmount.com/admin/index.html”,某些情况下,它是伪静态网页,虽然看似HTML文件,但存在数据库交互 。常见的动态网站编写脚本包括:
index.php
index.asp
index.jsp
HTTP Header
HTTP消息头是指在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件 。HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数 。这里以Python获取消息头为例:
# -*- coding:utf-8 -*-import urllibimport webbrowser as weburl = "http://www.baidu.comcontent = urllib.urlopen(url)print content.info()#头信息print content.geturl()#请求urlprint content.getcode()#http状态码#保存网页至本地并通过浏览器打开open("baidu.html","w").write(content.read())web.open_new_tab("baidu.html")
该段调用调用urllib.urlopen(url)函数打开百度链接,并输出消息头、url、http状态码等信息,如下图所示 。文章插图
一方面分析HTTP头对网站渗透非常重要;另一方面它也存在安全隐患,在PHP中通常会使用 $_SERVER[“HTTP_CLIENT_IP”] 或者 $_SERVER[“HTTP_X_FORWARDED_FOR”] 来获取IP 。因此,可以通过修改HTTP头中的X-Forwarder-For:、client-ip:来进行攻击 。例如:
突破服务器访问限制ip
HTTP头注入攻击
BurpSuite抓包分析
Burpsuite是用于攻击web应用程序的集成平台,包含了许多工具 。Burpsuite为这些工具设计了许多接口,以加快攻击应用程序的过程 。所有工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报 。通常利用Burpsuite抓包分析,寻找Web漏洞 。
后续作者会结合Cracer教程深入讲解,也推荐大家阅读作者之前的文章:
三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
文章插图
GET传参和POST传参区别
采用GET方法,浏览器会与表单处理服务器建立连接,然后直接在一个传输步骤中发送所有的表单数据,浏览器会将数据直接附在表单的 action URL之后,两者之间用问号进行分隔 。这种方法传递数据数据量较小,并且不安全 。形如:
推荐阅读
- 聊天场景在web前端开发中的体验与优化
- phpmyadmin渗透思路整理
- 淘宝开店流程及费用标准多少 开淘宝店需要什么条件多少钱
- 如何在机场领取登机牌?第一次坐飞机登机流程
- 茶叶冲泡流程步骤先容,红茶冲泡品饮先容
- 内网渗透测试——端口转发与内网代理渗透测试实验报告
- Web漏洞扫描神器Nikto使用指南
- 开淘宝店需要怎么做 如何在淘宝开店流程
- 云waf 推荐几款免费的web应用防火墙
- 不改一行代码,让你的web应用支持https协议