我们现在已经知道靶机开放了TCP22和TCP80端口,分别对应了SSH和Web服务,那我们首先想到的自然是如何通过网站着手去进行shentou。
访问网站,发现提示:该网站只能在本地访问。
习惯性地去查看页面源码,发现其中隐藏了一段注释,提示我们可以利用x-forwarded-for。
那什么是x-forwarded-for呢?这就涉及到Web安全中的一个基本概念-HTTP协议。
要学习Web安全,HTTP协议是首先必须要掌握的一个基本知识点。
超文本标记语言HTML和超文本传输协议HTTP是Web服务的核心技术。
所有的网页都是基于HTML语言所开发设计的,网页被集中放置在互联网中的某台服务器上,这就是一个网站。
协议是网络中通信双方所应遵循的规则。在现实生活中,不同国家的人互相之间交流,首先也得约定一些规则,比如彼此都使用什么语言等等。在互联网中也是同样如此,互联网中的每一项服务都要遵循相应的协议,其中Web服务所使用的就是HTTP协议。
HTTP请求和响应
HTTP(超文本传输协议)是Web服务所使用的核心协议,它详细规定了在客户端和Web服务器之间互相通信应遵循的规则。
HTTP协议遵循请求(Request)/响应(Responses)模型,所有的HTTP通信都被构造成一对HTTP请求和HTTP响应。
我们在客户端上通过浏览器去访问网站,这其实是在通过HTTP协议向网站发出访问请求,网站接收到请求之后,找到相应的网页并以HTTP响应的方式发回给客户端,客户端的浏览器接收到响应后对其进行解释,最终将图、文、声并茂的页面呈现给用户。这就是Web服务的基本工作过程。
对于普通用户,我们平时很少会关注HTTP请求和响应报文,但是要学习Web安全,我们就要经常去查看甚至修改HTTP报文。
查看HTTP报文的最简单方法是通过浏览器的开发者工具。基本上所有的浏览器都支持通过F12按键或是“查看元素”功能调出开发者工具,这本来是给专业的Web应用和网站开发人员使用的工具,但对于Web安全同样也非常重要。
不同类型的浏览器所使用的开发者工具也不尽相同,总体上可以分为Firefox和IE两大类。比如360浏览器,默认情况下的极速模式所使用的是Firefox内核,因而按F12调出的就是Firefox的开发者工具。如果选择兼容模式,则使用IE内核,F12就是IE的开发者工具。
学习Web安全,推荐使用Firefox浏览器,因为它提供了功能丰富的插件,其中很多插件,我们在后续的学习过程中会反复用到。
打开火狐浏览器的开发者工具,随便访问一个网站,在“网络”模块中就可以看到在客户端和网站之间传输的所有数据。
任意选中一个数据,在右侧就可以看到具体的请求和响应报文结构。当然我们并不会关心在客户端和网站之间具体传输了什么数据,我们关心的主要是请求头和响应头,这部分内容后续将会详细介绍。
利用curl发送HTTP请求
在客户端通常都是通过浏览器发起HTTP请求,除了浏览器之外,在客户端也可以借助其它一些工具发起HTTP请求,比如curl。
Curl是在大部分Linux系统中都自带的一个工具,在Kali中执行“curl www.baidu.com”命令就可以向百度发出HTTP请求,并显示所接收到的HTTP响应。
HTTP协议所传输的主要是HTML代码,浏览器可以解析这些代码,但是curl则只能将代码原样显示出来。
如果curl命令加上-v选项,就可以同时显示出HTTP请求和响应的数据。
对于curl这里只做简单了解,在后面还会继续深入介绍它的一些高级功能。
标签:Web,浏览器,请求,响应,HTTP,靶场,客户端 From: https://blog.51cto.com/yttitan/6012034