赞
踩
HTTP(超文本传输协议)是用于在万维网服务器上传输超文本(HTML)到本地浏览器的传输协议
基于TCP/IP(HTML文件、图片、查询结构等)
采用C/S架构
客户机通过浏览器去请求浏览器上就可以看到对应的图形界面,浏览器/服务器(B/S)
Windows server IIS (Windows平台)
apache(多平台)
tomcat(多平台)
nginx(多平台)
在客户端使用浏览器通过URL向HTTP服务器发送请求
URL(统一资源定位器):由三部分组成
web服务器根据收到的请求直接向客户机响应信息
针对于HTTP默认端口号是80,可以修改,但会影响到客户机访问
http是无连接,限制每次连接只处理一个请求
http是独立的:只要客户端和服务器就知道如何处理数据内容,任何类型的数据都可以通过http发送,客户端以及服务器指定使用适合的MIME-type(消息内容类型)
http是无状态的:没有记忆能力,后续处理的内容需要用到前面的内容时,就必须重传,每次连接传送的数据量比较大,从另一个方面来考虑,服务器不需要提供先前的信息,应答就比较快
https = http ssl/tls
在http的通道上增加了安全性,传输过程通过加密和身份认证来确保传输安全性
传输层安全协议,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
明文传输
只对传输数据的长度进行完整校验,数据是否又被篡改是不做确认的
在传输数据之前,客户端会和服务器端去协商数据在传输过程中的算法,包含自己的非对称加密的密钥交换算法(RSA/DH),数据签名摘要算法(MDS/SHA),加密传输数据的对称加密算法(DES/3DES/AES)
客户端生成随机的字符串,通过协商好的非对称加密算法,使用服务端的公钥对该字符串进行加密,发送给服务端。服务端接收到之后,使用自己的私钥解密得到该字符串。在随后的数据传输当中,使用这个字符串作为密钥进行对称加密
网络电子邮件系统,好处在于,价格低廉,速度非常快
形式多样化
文字
图像
声音
电子邮件系统的组成部分
邮件协议
SMTP:简单的邮件传输协议,默认端口TCP 25号,主要用于传输电子邮件(发送邮件)
POP3:邮局协议第三版,默认端口号TCP110号,主要用于下载接受邮件(接收邮件)
IMAP4:网际消息访问协议第四版,默认端口号TCP143号,主要用于在线查看邮件(接收邮件)
exchange
postflx
第三方(qq、163、winmail)
foxmail
outlook
网易邮箱大师
qq邮箱客户端
250:所要求的邮件动作完成,可以继续
220
354:开始接受邮件内容输入
221:服务器关闭了传输通道
334:认证输入
235:认证成功
请求行由三个标记组成:请求方法、请求URL和HTTP版本,它们用空格分享。
例如:
GET /index.html HTTP/1.1
HTTP 规划定义了8种可能的请求方法:
GET:检索URL中标识资源的一个简单请求
HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档
POST:服务器接受被写入客户端输出流中的数据的请求
PUT:服务器保存请求数据作为指定URL新内容的请求
DELETE:服务器删除URL中命令的资源的请求
OPTIONS:关于服务器支持的请求方法信息的请求
TRACE:web服务器反馈Htt请求和其头标的请求
CONNECT:已文档化,但当前未实现的一个方法,预留做隧道处理
由关键字/值对组成,每行一对,关键字和冒号分享。请求头通知服务器腾于客户端的功能和 标识
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传输,最常使用的是Content-Type和Content-Length
一个响应由四个部分组成:状态行、响应头标、空行、响应数据。
像请求头标一样,它们指出服务器的功能,标识出响应数据的细节
最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不在有头标
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开始攻击
即可完成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。