BIGip是对负载均衡的实现,主要通过Virtual Server、iRules、Pool、Node、Monitor和Persistent(会话保持)实现。BIGip在实现会话保持机制时会在用户首次发起请求时,会为用户设置一个cookie,即服务端会添加set-cookie响应头头(比如:Set-Cookie: BIGipServerFinanceAndAdminWebfo.unc.edu=105389996.20480.0000 )。后续的请求会判断并使用这个cookie值,服务端解码该cookie并使用服务器。
最近发现一款工具,可以解BigIP的cookie,以此获取内网ip或者真实ip地址。这款工具名叫rabid,是ruby语言编写,支持4种cookie格式。github地址:https://github.com/Orange-Cyberdefense/rabid
工具使用
工具使用ruby编写,需要ruby 2.4以上版本的环境。首先要保证安装好ruby。然后使用gem安装包
gem install rabid
安装完成后,可以使用ruby包含该库,也可以直接运行命令执行。
命令示例如下:
rabid 'BIGipServer~FinanceAndAdminWeb~fo.unc.edu=105389996.20480.0000'
上面的参数就是set-cookie的值。
运行结果(运行环境macos,ruby 2.6.3):