--------------------开始--------------------
0x01:前言
今天没有学习新知识,搞了一天SRC,毫无战果。在这先立个flag,短期内一定要挖到一个补天专属SRC。现在基本都是早起吃完早点,去freebuf看两篇大佬们的挖洞经验,有时能学到东西,大多数连看都看不懂,我觉得还是我的基础不牢。
综合上述原因,我决定将我基础的学习笔记整理进来,让自己加深一下印象,如果正巧你刚入门web安全,希望这些基础知识能帮到你对基本的入门有个概念。再说现在也不会有人看,自己还需要提升好多,也想多学些知识,多分享一些干货,趁现在有精力,那就将web安全的一些最基础的知识,整理出来,随着我学的知识多了,也一定会分享更多干货(这也算一个flag)。
--------------------正题--------------------
今天整理的内容是:web通信基础,其中涉及到url,http的知识,主要还是http,这是web通信的核心,这也是要学web安全我认为最先要学的知识,而且有些地方一定要牢记。
●.URL(Uniform Resource Locator,统一资源定位符)
url大家都不会陌生,访问一个网页最基本的元素。主要记住访问的格式就好了。
✔.详细格式:
①.schema://host[:port#]/path/.../[?query-string][#anchor]
②.协议类型:[//服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID]
✔.协议类型:
http——超文本传输协议资源
https——用安全套接字层传送的超文本传输协议
ftp——文件传输协议
mailto——电子邮件地址
ldap——轻型目录访问协议搜索
file——当地电脑或网上分享的文件
news——Usenet新闻组
gopher——Gopher协议
telnet——Telnet协议
--------------------小分隔--------------------
●HTTP(HyperText Transfer Protocol,超文本传输协议)
HTTP是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是WEB通信的基础。
HTTP协议下分为两部分:请求报文和响应报文。
✔.请求报文:
这张图很详细的将请求报文的格式展现了出来,下面是针对具体细节来整理一下。
○.请求方法:
GET:请求指定页面信息,并返回主体,数据插入进URL中进行传输。
POST:向指定资源提交数据进行请求,数据被放在请求数据体中传输。
HEAD:类似GET请求,但只获取头部信息,无响应体。
PUT:将传输数据取代指定文档传输。
DELETE:请求服务器删除指定页面。
CONNECT:与代理服务器可以进行管道方式连接。
OPTIONS:查询针对请求URL指定资源支持的方法。
TRACE:可以对请求消息的传输路径追踪。
MOVE:请求服务器将指定的页面移动到另一个网络地址上。
列举了常见的请求方法,最主要是用到GET,POST两个方法。值得注意的是,GET方法是将查询输入插入到URL中请求,而POST方法则是将查询数据插入到请求数据体中查询。
HTTP请求报文中的URL为请地址的路径。协议版本一般现在都是用的是HTTP 1.1版本。
○.HTTP请求头部:
格式---> 首部字段名:字段值
Hsot:请求资源的服务器
User-Agent:客户端程序的信息
If-Match:比较实体标记(Etag)
If-Modified-Since:比较资源更新的时间
Authorization:web认证信息
Accept:用户代理可处理的媒体类型
Accept-Charset:优先的字符集
Accept-Encoding:优先的内容编码
Accept-Language:优先的语言(自然语言)
用Burp抓了一个包,第一个是用GET方法请求的,第二个则是POST方法,两者区别在于请求的方式,POST很明显在将传输数据的时候将数据放在了请求体中,这样相对来说比GET方式安全一些,一般常用于用户登录。
✔.响应报文:
响应报文组成:
第一行:HTTP协议版本 + 状态码 + 原因短语
下面若干行:可选的响应首部信息
空行
剩下的消息:响应的信息
○.响应状态码:
1xx:信息,服务器收到请求,需要请求者继续执行相关操作。
2xx:成功,操作被成功接受并处理。
3xx:重定向,需要进行附加操作以完成请求。
4xx:客户端错误,请求中存在语法错误,服务器无法处理请求。
5xx:服务器错误,服务器在处理请求的过程发生了错误。
•常见的状态码:
200 OK:表示客户端发来的请求在服务器端被正常处理了。
301 Not Modified:表示客户端附带条件的请求,未满足条件。
400 Bad Request:表示请求报文中存在语法错误。
401 Unauthorized:表示发送的请求需要有通过HTTP认证的信息。
403 Forbidden:表明对请求资源的访问被服务器拒绝了。
404 Not Found:服务器无法找到请求的资源。
500 Internal Server Error:表明服务器端在执行请求时发生了错误。
503 Service Unavailable:表明服务器暂时处于超负载或进行停机维护。
详细状态码大全:http://www.runoob.com/http/http-status-codes.html
○.响应头部:
Server:服务器的信息
Location:状态码出现3xx是一般会配合该头部指向重定向的地址。
Set-cookie:服务器想用户发放的表示凭证。
·HttpOnly:使JavaScript脚本无法获取cookie,防止xss攻击。
X-Frame-Options:控制网站内容在其他web网站的Frame标签内的显示问题。防止点击劫持攻击;
·DENY:拒绝
·SAMEORGIN:仅同源域名下的页面匹配时许可
X-Powered-By:可以知道web后端语言(但是可以修改)
HTTP基本上了解这些就够了,当然想要了解更多的可以去看一下《图解HTTP》很不错的一本书,言简意赅,比《HTTP权威指南》友爱多了。
---------------遇见问题,解决问题---------------