前言
众所周知,网络协议有很多,我们经常遇到或者看到、听到的就是TCP/IP协议、UDP协议,HTTP协议、FTP协议、DNS协议、DHCP协议、SMTP协议等,今天我们主要谈谈HTTP协议,以及利用这个协议的网络攻击,从而达到防范的目的。
一、HTTP协议的基本介绍
HTTP的中文意思是超文本传输协议,是英文HyperText Transfer Protocol的缩写,一看这个名字,顾名思义,是传输文本内容的。HTTP协议需要客户端向服务器发送请求,服务器再给予相应,请求一般为POST请求或者GET请求,我们常听说的爬虫就是模拟这些请求向服务器发送请求包,再过滤服务器回应的内容,提取我们想要的结果。
二、HTTP协议会泄露的信息
我们简单用浏览器自带的检查功能来看下,我们客户端发送的请求包含哪些信息。如图:
我们可以看出请求头里包含了我们要访问的地址,然后还有一个状态码200,200表示访问成功,还有一些常用的状态码:
3xx(重定向)表示要完成请求,需要进一步操作。通常这些状态代码用来重定向。
301,永久性重定向,表示资源已被分配了新的 URL
302,临时性重定向,表示资源临时被分配了新的 URL
303,表示资源存在另一个URL,用GET方法获取资源
304,(未修改)自从上次请求后,请求网页未修改过。服务器返回此响应时,不会返回网页内容
4xx(请求错误)这些状态码表示请求可能出错,妨碍了服务器的处理
400(错误请求)服务器不理解请求的语法
401表示发送的请求需要有通过HTTP认证的认证信息
403(禁止)服务器拒绝请求
404(未找到)服务器找不到请求网页
5xx(服务器错误)这些状态码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求的错误
500,(服务器内部错误)服务器遇到错误,无法完成请求
503,表示服务器处于停机维护或超负载,无法处理请求
常见的就是上面那么多,下面我们继续往下看
Accept-Language表示显示的语言的优先级
User-Agent表示客户端的信息,这个很重要,不管是爬虫还是黑客模拟攻击,大概率都需要复制一个真实的User-Agent来骗过服务器。
下面说到最重要的Cookie信息,cookie信息是保存我们的登录状态的,通俗的说可以不用再次输入账号密码,也就是说如果黑客截获了我们的cookie信息,就可以登录服务器,如果我们是服务器的管理员,那么他们就能控制服务器,当然这是理论上,操作起来要达到很多的条件,但是基本的攻击思路就是这样。
三、XSS渗透攻击
XSS是web渗透攻击的一种,自然它也是几个单词的缩写,Cross Site Scripting跨站脚本攻击,那为什么不是CSS,因为CSS已经被用了,就是层叠样式表,所以改名为XSS。为什么叫跨站脚本攻击,因为他不是直接攻击服务器或者客户端,而是通过客户端来攻击服务器,或者服务器攻击客户端,或者通过第三方服务器来攻击目标服务器和客户端,所以叫跨站,跨了多个站点。那么XSS和HTML有什么关系呢,举一个简单的操作示例。
当你在一个网站更新个性签名的时候,你将一段JS代码输在文本框里,假设这段代码是跳转到非法网站的,在目标服务器的验证不充分的时候,你这段代码是有可能写到服务器里面的,当管理员登陆后台查看服务器里的数据时,浏览器加载HTML页面时也会加载JS代码,这样管理员的页面就会跳转。
有些朋友说,那这也没啥,如果我们的代码是搜集cookie信息呢,那么我们就获得了管理员的cookie和服务器后台的网址,那么我们就可以模拟管理员进入后台,具体能干什么大家自行想象。
总结
上面只是简单介绍了一下HTTP协议和XSS攻击,大家明白大致原理,小错误不要犯。