要想使用宏指令
WebSockets是一种允许浏览器和处事器成立单个TCP连接,并进行双向异步通信的技术。这种技术非常适合Web应用措施,给与该技术之后,浏览器无需在后台发送数百个新的HTTP轮询请求,也照样能够实时更新。然而,对付测试者来说,这可不是什么功德,因为撑持WebSockets的工具没有像撑持HTTP的工具那样遍及,并且,这些工具用起来也更为庞大。
除了Burp Suite之外,还有一些其他工具也能用来措置惩罚惩罚WebSockets。虽然我们已经测验考试过所有的工具,但没有一个完全切合我们的胃口。
Zed Attack Proxy(ZAP)
Pappy Proxy
Man-in-the-Middle Proxy(mitmproxy)
WebSocket/Socket.io(WSSiP)
对付但愿通过WebSockets来绕过进攻真个安适检测的读者来说,可以参阅下面这篇文章。
https://www.blackhillsinfosec.com/command-and-control-with-websockets-wsc2/
在本文中,我们存眷的重点是socket.io,这是一个风行的JavaScript WebSockets库。然而,需要说明的是,文中介绍的打击思路不只适用于其他库,同时,也适用于WebSockets协议。
那么,socket.io到底有多受欢迎呢?它在Github上收获了41,000多颗星。
同时,在NPM网站的WebSockets包排行榜上,它们还占据了第二名和第三名的位置。
事实上,就连优秀的OWASP Juice-Shop项目也给与了socket.io库,因此,我们决定使用socket.io来完成相应的演示。
https://github.com/bkimminich/juice-shop/search?utf8=%E2%9C%93&q=socket.io&type=
在本文中,我们假设读者可以熟练使用Burp Suite测试Web应用措施,同时,文中涉及的所有测试事情,都可以操作该软件的社区版原来完成。空话少说,直入主题吧!
如果通过浏览器访谒Juice-Shop的话,就可以在后台快速考察WebSocket的流量了。为此,可以打开Burp,然后转到Proxy-> WebSockets历史记录,从这里就可以看到相关的流量了。
我们知道,HTTP是一种无状态协议,所以,它需要不竭的发送请求/响应对;与此相反,WebSockets则是一种有状态协议。这就意味着,我们可以从处事器获得任意数量的传出“请求”和任意数量的传入“响应”。由于底层连接协议使用的是始终连结打开状态的TCP协议,因此,客户端和处事器可以随时发送动静,而无需期待另一端。看到这里,您就能够大白WebSockets历史记录视图与HTTP历史记录之间的差异了。
在该视图中,我们看到的,主要是发送和接收的单字节动静。但是,当应用措施执行一些有趣的操纵时,我们将看到带有更大的有效载荷的动静。
Burp供给的许多成果,也可以用来测试WebSockets。好比,Burp可以实时拦截和改削WebSocket动静,遗憾的是,Burp仍然缺乏针对WebSockets的Repeater、Scanner或Intruder成果。在Burp中,WebSocket拦截是默认启用的,所以,我们只需打开主拦截即可。
我们将会收到截获的WebSocket动静,这里跟措置惩罚惩罚HTTP动静的方法别无二致。同样,我们也可以在拦截窗口中编纂这些动静。
之后,就可以在WebSockets历史记录选项卡中检察编纂后的动静了。
将WebSockets降级为HTTP
要领1:活用Socket.io的HTTP备用机制
我很快注意到了一件奇怪的工作:有时,我会在HTTP历史记录中看到类似于在WebSockets历史记录中所见过的动静。实际上,这个有趣的WebSockets动静与回答记分板质询有关。下面展示的是来自处事器的不异响应,只不过此次是在HTTP历史记录中。所以,我断定socket.io能够通过WebSockets或HTTP发送动静。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32485.html