【网络与系统安全】利用burpsuite进行重放攻击
重放攻击的定义
所谓重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程。
原理
重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给接收方。如果攻击者知道这些数据的作用,就可以在不知道数据内容的情况下通过再次发送这些数据达到愚弄接收端的目的。例如,有的系统会将鉴别信息进行简单加密后进行传输,这时攻击者虽然无法窃听密码,但他们却可以首先截取加密后的口令然后将其重放,从而利用这种方式进行有效的攻击。再比如,假设网上存款系统中,一条消息表示用户支取了一笔存款,攻击者完全可以多次发送这条消息而偷窃存款。
由于重放攻击是对已发送过的请求重新发送,所以它并不关心请求的内容,比如它不管登录名是否加密,只要截获到数据包,原封不动地转发即可。
实验
实验环境和工具
windows7、burpsuite1.6(修改本机时间即可用,越早越好)、目标网站www.onlylady.com
实验步骤
- 首先设置代理,设置代理的意义是把要发送的和接收的包先送到burpsuite。地址为burpsuite所在地址,就是本机地址;burpsuite的默认端口为8080。
- 先抓取普通的搜索包,直接右键send to compare(response)
- 右键send to repeater,转到repeater菜单下,点击GO,右侧为该包发送后收到的服务器返回的信息。
- 右键右面返回的信息,send to compare
我们可以发现,这两个包的信息除了返回时间不一样,其他信息完全相同。左面为正常请求后服务器返回的信息;右面为截取请求包再发送到服务器后返回的信息。换一种方式来实验,我们把截取的包修改一下搜索的信息,然后发给服务器(把“q”的值改为“yangsen”):
- 然后再截取在网页中搜索“yangsen”的包,两个包对比:
从上面可以看出,重放成功。普通的搜索包似乎很容易成功,接下来试试登录包。 - 首先抓取正常登录包
- 同样发送到repeater中。从下图中我们可以看到登录信息。
- 点击GO,将返回信息发送到compare中和正常返回的信息进行对比:
从上图可以看到,貌似有很多的不同。我们来分析一下这些不同。除了时间不同之外还有Cookie也不同。首先介绍一下Cookie是什么,简单点就是网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据,通俗点类似“通行证”。这里的cookie是服务器端发给客户端的,之所以不同是服务器认为这两次访问并不是同一客户端发来的请求,所以返回给它们的cookie也就不一样。
总结
重放攻击危害极大,只要获取请求包,如果服务器不加任何验证或者过滤,攻击者就可以忽略请求包的内容而达到攻击的目的。目前很多网站都采用HTTPS协议,其本身就有抵制重放攻击的功能,它的原理是分片数据编号,这样如果发来相同的编号的数据,则认为是重放攻击,自动屏蔽。