# 1 前言
最近接到公司的一个API接口测试的项目,除了常规的HTTP协议的API接口外,其中还有一部分是需要测试Websocket接口的。
回想了一下除了之前复现Jumpserver漏洞时候用过Websocket,以外就没有对它有过什么研究了。
这次也算是第一次与它交手,开始测试的时候就不是很顺利,但是好在最后解决了,故在此做下简单的记录。
# 2 希望达到的目标
能够使用Burpsuite来测试Websocket接口。
# 3 测试过程
1、使用Burpsuite自带的Websocket建立连接(失败)
2、使用浏览器插件测试(失败)
这里使用的是一款叫做“WebSocket King”的chrome插件进行测试的。
但是使用插件多次连接WS接口发现都是403,研究了一番后发现,目标会检测Origin头,如果不是自己站点,就直接返回403,因此需要用Burp来修改请求头。
修改了请求头后,浏览器插件终于可以正常连接到目标了,可以看到已经收到了来自服务器的Ping包。
这里要说明一下,该Websocket接口存在心跳检测的机制,服务端会定期向客户端发送ping包,需要客户端回复pong包来证明存活。
然而在我寻找了插件的各个角落,也没有发现存在自动回复pong包的功能,很遗憾这种方法失败。
3、既然没有现成的工具(也许是我没找到),只能自己造了,思路非常简单,如下:
-
能够自动给服务器回复pong包
-
能够将流量打到Burpsuite上
-
使用Python编写代码
基于以上思路,开始搜索python相关的websocket的教程,最后发现利用“websocket-client”库,可以很便捷的实现我的需求,代码如下:
import websocket
from websocket._exceptions import *
from urllib.parse import urlparse
import json
url = "wss://xxxxxxxx.com/xxxxxxxx"
# proxy = ""
proxy = "http://127.0.0.1:8080"
options = {}
if proxy != "":
p = urlparse(proxy)
options["http_proxy_host"] = p.hostname
options["http_proxy_port"] = p.port
ws = websocket.create_connection(url, **options)
while True:
try :
data = ws.recv()
print(data)
j = json.loads(data)
if j["type"] == "ping":
send_data = '{"type":"pong","data":"%s"}' % j["data"]
print(send_data)
ws.send(send_data)
except WebSocketConnectionClosedException:
print("[!] Connection to remote host was lost.")
break
ws.close()
ps:临时使用的代码,请不要在意编写细节
使用起来还是很方便的,脚本中的代理服务器指向Burpsuite,然后开始运行,发现数据包ping、pong正常交互。
打开bp,找到repeater,新建一个websocket会话,选择刚刚已经建立连接的Websocket会话,并点击下方的Attach。
接下来就可以开始发送数据,测试这个接口了,自此问题得到解决。
`黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取