wireshark

redis中multi与pipeline介绍分析

限于喜欢 提交于 2020-08-07 09:50:53
背景 由于对redis缓存中数据有批量操作,例如预热缓存数据,或者在列表页批量去获取缓存数据,在使用了multi批量提交事务后,发现redis压力高居不下,而使用了pipeline之后压力回落了平常,也因为这个案例,特在此写个分析与笔记。 multi 简介 标记一个事务块的开始。 事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。 实现原理 我用php扩展调起redis服务,执行,代码如下: $redis = new redis(); $redis->connect('127.0.0.1',6379); $handle = $redis->multi(); $handle->incr('a'); $handle->incr('b'); $handle->exec(); 复制代码 为了查看这期间具体的连接过程,用wireshark监听回环地址端口6379,抓包请求如下图所示: redis客户端与服务端建立连接后,multi标记事务开始,之后每次执行,服务端返回queued队列标志。查看redis源码src/multi.c文件: void queueMultiCommand(client *c) { multiCmd *mc; int j; c->mstate.commands = zrealloc(c->mstate

炸裂!万字长文拿下 HTTP 我在字节跳动等你!

烈酒焚心 提交于 2020-08-07 07:06:30
作者 | L的存在 来源 | 我是程序员小贱 本文将从以下几个方面进行分享。其中包括 HTTP发展史,HTTP缓存代理机制,常用的web攻击,HTTP和HTTPS的流量识别 ,网络协议学习的 工具 推荐以及 高频HTTP与HTTPS的高频面试题 题解等,开工。 提纲 1989年,蒂姆·伯纳斯 - 李(Tim Berners-Lee)在论文中提出可以在互联网上构建超链接文档,并提出了三点: URI :统一资源标识符。互联网的唯一ID HTML :超文本文档 HTTP :传输超文本的文本传输协议 HTTP应用在哪儿 学习一门知识,采用五分钟时间看看这个知识是干啥的可能会更加有目的性。HTTP可谓无处不在,这里例举出几个。 HTTP应用场景 HTTP是什么 HTTP(hypertexttransport protocol)翻译过来为" 超文本传输协议 ",文本可以理解为简单的字符文字组合,也可以理解为更为复杂的音频或者图像等。那么将这个词语拆分为三个部分。 超文本传输协议 "超文本" 和 "文本" 相比多了一个字"超",这样看来比文本丰富,因为它可以将多种文本/图像等进行 混合 ,更重要的是可以从一个文本 跳转 到另一个文本(文本连接)。 "传输" ,传输的过程中需要沟通,沟通即可能一对一沟通也可能一对多沟通(进行内容协商),无论怎么样,参加沟通的人数>1

CCNA

本秂侑毒 提交于 2020-08-07 05:31:00
ICMP 协议 在之前 网络层 的介绍中,我们知道 IP 提供一种无连接的、尽力而为的服务。这就意味着无法进行流量控制与差错控制。因此在 IP 数据报的传输过程中,出现各种的错误是在所难免的,为了通知源主机 IP 数据报传输过程中遇到的问题,因此设计了因特网控制报文协议(ICMP)。 虽然说 ICMP 协议将 IP 协议封装在内部,所以大多数人将 ICMP 视为传输层的协议,但实际上 ICMP 是 IP 协议的重要组成部分,所以将其放在网络层更为合适。 ICMP 的报文一般有两种, 查询报文和查询报文 。 查询报文:例如我们在使用 ping 命令,子网掩码查询,时间戳查询等情况时,都会发送查询报文。 差错报文:而差错报文是在当对应的路由器或者终端设备收到查询报文后,产生了一系列问题。把出现的问题,回复给发起者的报文就是差错报文。 但考虑到整体网络资源的占用上,在如下情况下,是不会产生差错报文的: 差错报文不会产生差错报文 - 防止 ICMP 无限产生和传送差错报文 目的地址是广播或多播的 IP 数据包 链路层广播的数据包 不是 IP 分片的第一片 - IP 是尽力而为,自然不需要可靠性 源地址不是某个主机的数据包 ICMP 类型 由于 ICMP 本身就是为了弥补 IP 协议不可靠的特性,起到排错目的,所以它的 Header 并不复杂。 正如图中所示的,对于 ICMP Header

Lun4R-CyBRICSCTF wp

╄→гoц情女王★ 提交于 2020-08-06 21:08:03
和小伙伴们一起打了这个xctf|俄罗斯战队的比赛,题目质量真心不错hhh,部分题解小伙伴们还没更新,先发出来,嘻嘻。 WEB Hunt (Web, Baby, 50 pts) 打断点,然后就一个一个被抓住了... 接着F12就出现了.(这个flag是白色的,藏在下面。。。。)... RE Baby Rev 题目给了个github项目链接 看懂就行 一个简单的疑惑加密 , key 是33 c=[92,0,74,66,116,77,126,69,17,17,102,126, 69,79,97,126,18,76,17,98,16,77,18, 86,90,82,66,72,83,67,88,66] flag='' for i in range(len(c)): c[i]=c[i]^33 flag+=chr(c[i]) print (flag[::-1]) polyglot 先根据给的code.c改一下key跑出来一个c++的代码 因为递归深度限制在900,所以也要改代码,我菜所以直接手算了,t1是乘,t2是加,然后算出key,跑出来是个py+机器语言的代码: import types import dis def define_func(argcount, nlocals, code, consts, names): #PYTHON3.8!!! def inner(): return

Python3+WebSockets实现WebSocket通信

亡梦爱人 提交于 2020-08-06 14:10:37
一、说明 1.1 背景说明 前段时间同事说云平台通信使用了个websocket的东西,今天抽空来看一下具体是怎么个通信过程。 从形式上看,websocket是一个应用层协议,socket是数据链路层、网络层、传输层的抽像;从应用场合上看,websocket可以使用javascript实现,而socket不能用javascript实现(真不能吗?我不太确定);从实际效果上看,和一般的socket连接用起来没什么区别。 我们知道http是短连接的,反复建立和销毁连接比较耗费资源,另外http协议经常头部内容比主体内容还长也比较浪费资源;websocket可以认为就是一个内容使用载荷固定格式的socket长连接。 websocket基本协议格式如下,更多说明见 RFC 6455 : 1.2 环境说明 当前环境我使用Python3+WebSockets库,WebSockets直接使用pip安装即可: pip install websockets 二、代码实现 长连接是有状态的,所以一般在且只在最开始进行一次身份认证,而后通信过程不需要认证信息。我们这里实现一个简单的用户名密码认证过程。长连接更多内容可参考“ 长 连接 与短 连接 的安全差异讨论 ”。 另外,注意把代码中的ip改成自己的。 2.1 python服务端代码 import asyncio import websockets #

华为开发常用的2款利器,推荐给大家

懵懂的女人 提交于 2020-08-06 13:36:16
Fiddler Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。 既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原理,实现了抓包操作。 看一下效果,打开fiddler 浏览器中访问博客园 fiddler中显示了详细的访问请求 fiddler官网地址 https: //www.telerik.com/fiddler fiddler虽然好用,但只能抓取浏览器中的http请求数据,若需要抓取其他网络请求的数据,此时需要用到更强大的一个工具,wireshark。 wireshark wireshark是非常流行的网络封包分析软件,功能十分强大,可以截取各种网络封包,显示网络封包的详细信息。为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。 wireshark是开源软件,大家可以放心使用,可以运行在windows上和macos中,非常方便。 Fiddler是在windows上运行的程序

使用Wireshark抓取用户在网站的登陆密码

五迷三道 提交于 2020-08-06 10:14:03
使用Wireshark抓取用户在网站的登陆密码 下载Wireshark 获取想要抓取网站的IP 开始抓包 结束 下载Wireshark Wireshark下载地址 下载后傻瓜式安装 获取想要抓取网站的IP win+R 打开“运行”,在框里输入“cmd”,确定 用我们学校的教务系统为例子 记下网站:jw1.wzbc.edu.cn 然后在刚刚打开的黑色会话框里输入:ping jw1.wzbc.edu.cn ,然后回车,得到的IP为10.151.160.43,记下这个IP 开始抓包 打开Wireshark,选择你使用的网络,如果是WIFI就双击“WIFI”,有线就选择“以太网” 我是有线,所以我双击“以太网”打开,是这个样子,上面的数据先不用管,我们先点击左上角红色的方块停止抓包 然后在这里输入http and ip.addr==10.151.160.43(这句话是筛选数据,就是只显示IP为我们要抓取网站的数据) ,点击右边的蓝色箭头 点击Wireshark左上角蓝色的鲨鱼鳍,开始抓包 之后,打开我们的教务系统登陆页面,登录账户 登陆成功后,查看Wireshark,我们发现有一个POST(POST请求是浏览器向服务器提交数据的方式,我们的用户名和密码就是这样提交出去的),单击点开,发现我们的账号和密码,就被抓取到了,在HTML Form Encoded里面显示出来了 结束

Transfer a wireshark captured http request to a curl request

只谈情不闲聊 提交于 2020-08-06 07:26:28
问题 I am trying to simulate a post request from a system I am not familiar with(http thrift). With wire shark, I get the http request like :. But I am going to perform a stress test with tools like ab , so How I can transfer a Wireshark package to a ab or curl command http request ? 回答1: Here are two tools that can help you: h2c, HTTP headers to curl, which converts a HTTP request to a suitable curl command line. (written by me) pcap2curl, which is similar in style but instead converts a saved

使用fiddler抓取手机上的HTTPS包

故事扮演 提交于 2020-08-06 04:26:56
最近想抓取手机上app的数据包,在电脑上抓包可选的工具有很多, 比如 wireshark ,Linux命令行下有 tcpdump 等等工具。可是在这些工具在手机上都没法使用,这怎么搞 后来想了想能不能用网络代理抓包呢,说干就干。从网上查到,用fiddler可以代理手机的网络。 第一步下载fiddler 去下载一个fiddler,建议去官网下载 传送门 。 fiddler 勾选协议,填写邮箱,然后下载就可以 第二步安装fiddler 双击下载的.exe文件,然后选择目录,next,next,完成安装 第三步安装CertMaker插件 fiddler默认生成的证书不能满足Android和iOS系统的要求,需要使用这个插件 传送门 往下找,找到图片的地方,点击下载,下载后,双击安装 CertMaker 第四步配置fiddler代理 想要抓HTTPS的数据包,必须安装证书, fiddler 点击tools->options,然后出现这个界面,按照我标注的1,2,3,4都勾选,中间会出现一些提示,都点 yes 最后出现这个对话框说明证书已经安装成功。 第五步配置代理(手机和电脑在同一个网络中) 重启fiddler,开始手机的配置。查看电脑的IP地址,我的是192.168.31.56然后打开手机的浏览器(苹果手机一定要用Safari),输入 IP地址:端口号 我的是 192.168.31.56

Python3+WebSockets实现WebSocket通信

醉酒当歌 提交于 2020-08-05 12:24:15
一、说明 1.1 背景说明 前段时间同事说云平台通信使用了个websocket的东西,今天抽空来看一下具体是怎么个通信过程。 从形式上看,websocket是一个应用层协议,socket是数据链路层、网络层、传输层的抽像;从应用场合上看,websocket可以使用javascript实现,而socket不能用javascript实现(真不能吗?我不太确定);从实际效果上看,和一般的socket连接用起来没什么区别。 我们知道http是短连接的,反复建立和销毁连接比较耗费资源,另外http协议经常头部内容比主体内容还长也比较浪费资源;websocket可以认为就是一个内容使用载荷固定格式的socket长连接。 websocket基本协议格式如下,更多说明见 RFC 6455 : 1.2 环境说明 当前环境我使用Python3+WebSockets库,WebSockets直接使用pip安装即可: pip install websockets 二、代码实现 长连接是有状态的,所以一般在且只在最开始进行一次身份认证,而后通信过程不需要认证信息。我们这里实现一个简单的用户名密码认证过程。长连接更多内容可参考“ 长 连接 与短 连接 的安全差异讨论 ”。 另外,注意把代码中的ip改成自己的。 2.1 python服务端代码 import asyncio import websockets #