一个HTTP数据包的奇幻之旅
我是一个HTTP数据包,不知谁创建了我,把我丢到这个房间。
突然,来了一个大汉,我吓得缩到角落。
“该启程了,站起来”。
“去哪里啊?”
我弱弱的问。
“还能去哪里,你是一个数据包,当然要出远门,完成你的使命啊,别啰嗦,我要先把你复制到内核空间,一会要发出去,让我来看下你的内容”。
我不敢多言,乖乖的站好,一眨眼的功夫,我来到了另一个房间。
“这是哪里,我怎么到这里来了?”我有点好奇。
“这里是内核地址空间,刚才你在用户态地址空间,所有的数据包都得从这里出发,你也不例外”。
看着这片陌生的环境,我也不知道他说的内核空间是什么意思,这里有好多房间,还有好多跟他一样的大汉在工作,好多数据包都在这里,进进出出,好不热闹。
<————————————————————————————————>
出发前的俄罗斯套娃
“等着,我去拿点东西”,大汉去了一座大厦,我抬头一看,上面写着tcpip.sys。
这时,旁边另外一个数据包走了过来。
“唉,小子,刚出发呢。”
“你是谁?”
“我也是一个HTTP数据包,不过我是一个响应包,刚刚从遥远的Linux帝国过来这里,我马上就完成我的使命了,这一路给我累得”,这个数据包叹口气回答。
“很远吗,这么辛苦啊”,我开始有点担心我的旅程起来。
“这不好说,我不知道你去哪,接我的人来了,再见”。
不一会儿,大汉提着一个箱子走了出来,箱子正面写了三个大大的字母:TCP。
“这是传输层的箱子,快进去”,大汉命令的口吻。
“你要我钻进这个箱子啊?”我不太相信。
“对,没错,麻利的”。
“这箱子上面写的数字60059和80是什么意思?”我注意到箱子背面也写了很多东西。
“60059是创建你的人用的端口号码,80是后面接待你的人的端口号码”。
“那这第二排的0x2C877F30和0xBD62DFB3又是什么意思呢?”
“这是创建你的人使用的序列号和应答对方的确认号,你问题咋这么多”,大汉开始不耐烦了。
“还有这个···”“行啦,快进去,赶时间”,大汉打断了我的提问,我乖乖的钻进了这个叫TCP的箱子。
“是不是可以出发了?”我问大汉。
“还早着呢,这才刚开始呢”,大汉笑着说。
“再等一下,我还要进去一趟”,说完大汉又进了这个tcpip.sys大厦。
没过多久,大汉又出来了,手里又拎了一个更大的箱子,上面也写着两个大大的字母:IP。
这一次,大汉二话不说,直接把我连同TCP箱子一起丢进了这个IP箱子。
“怎么还要套一层啊”,我紧张的问他。“你不懂,这个网络是分层的,刚才那个箱子是......唉,我跟你说这些干啥”,大汉提着我离开了tcpip.sys大厦。
我们来到了一个码头,这里数据包来来往往特别繁华,大汉把我带到一个大大的仓库,里面有很多数据包,对我说:“乖乖待在这里排队,我就先走了,一会儿会有人来把你发出去的。”,大汉拍拍我的肩膀就离开了。
“咦,你也是去222.196.242.24的,我也是呢,真巧!”
前面一个数据包跟我打招呼。
我愣了一下:“你怎知我要去哪里?”
“喏,你这外面的箱子不是写了吗,你看我的,跟你的一样,这里写的就是咱们要去的地方的IP地址”,她特别激动。
<————————————————————————————————>
第一站:网关
很快,来了一个小胖子叫到我了,我小心翼翼的走了过去。
“你这是要去公网啊,来,先去网关那里吧”,说完,小胖又给我套了一个箱子,前面写着:Ethernet II,背面写了一串:FE-D8-65-C8-2B-D7;86-D5-32-01-0E-3B。
“小哥,这个箱子又是干嘛的,这上面写的又是啥呢?”
“这个箱子是把你送到网关那里去的,FE-D8-65-C8-2B-D7就是网关的网卡地址,后面那个是咱这里的地址”,小胖说话倒是很客气。
“坐好了,要出发了哦”,小胖一顿操作,我好像坐上火箭,离开了这片土地。
途中见到了好多好多的数据包,有出发的,也有过来的,像穿越时空隧道一般梦幻。还没来得及欣赏,就被一个黑脸的抓了下来,看来我是到小胖说的网关了。
黑脸人一脸冷漠,问他话也不答,只顾做自己的事情。几下功夫,便将我最外面的箱子拆掉,然后拿着一个手册查了下我的目的IP地址。
“好了,跟我来”,黑脸的把我带到另外一个码头,一顿操作把我给发了出去。
<————————————————————————————————>
穿越比特宇宙
这里的数据包比刚才那里更多,更热闹。一路上,不时有人把我抓下去,然后又从一个新的码头发出去,把我弄的晕头转向的。
过了好一会儿,到了一个地方,又一个胖子接待了我。
“大哥,我这是到终点了吗?”
“快了,你已经到目的网络网关了,下一站就到了”。
“来的路上那些人把我抓下去又发出来是干啥呢?”
“这叫网络路由,他们那些人接力才把你送到这里的”。说完,这胖子又给我套上了一个Ethernet II的箱子发了出去,我知道,这是要送我去最终目的地了。
不知道是什么web服务器会来接待我呢,即将完成使命的我开始兴奋起来。
<————————————————————————————————>
出师未捷身先死
很快,我又被人抓了下去。
“是不是我到站了啊,终于要完成任务了”,我伸伸懒腰。
那人却不说话,只是将我的Ethernet箱子拆去,放到了一个仓库。
没多久,来了一个大叔,把我带了出去。
“咱们是不是要去tcpip.sys大厦,把我的箱子都拆掉啊”,我小声的问。
“这里是Linux帝国,没有你说的大厦。不过你倒是猜对了,就是去拆箱子”。
很快,这位大叔就拆掉了我的IP箱子和TCP箱子,把我放到一个房间。
“在这等着,一会儿有人会来找你”。
“是不是web服务器的人来找我?”我激动的问。
大叔也没有理我,转身离开。
大叔刚走,就有一挎刀黑衣人过来,我吓了一跳,web服务器的人怎么这么凶,还带刀。
黑衣人用了一台仪器对我一通扫描,突然仪器红色警报灯响起,我紧张到了极点。
“小子,你的请求表单字段里面有SQL语句,你是来干什么的?”,黑衣人恶狠狠的质问我。
“我不知道谁创建的我啊,我只是个HTTP数据包,你们这里不是web服务器吗,我是不是走错了”,我吓得脸色惨白。
“你没有走错,是我们截下的你,这里不是web服务器,这里是WAF”,黑衣人得意的说到。
“WAF是什么,那我肯定走错了,快放我离开”,我想逃离这里。
然而,黑衣人大喝一声:“站住,你这个邪恶的数据包,伏诛吧!”。
我回头一看,只见黑衣人举起大刀······
未完待续·······
彩蛋
nginx公司的人正在紧张忙碌着,黑衣人突然闯了进来。“
叫你们管事儿的过来,发现针对一起80端口的SQL注入攻击,我们需要调查取证”
欲知后事如何,请关注后续精彩......
精彩回顾:
一个HTTP数据包的奇幻之旅的更多相关文章
- 一个DNS数据包的惊险之旅
踏上旅程 “小子,快去查一下www.paypal.com的IP地址,我急用,晚了我弄你!”,暴躁老哥一把关上了门,留我一个DNS数据包在冷冰冰的房间. 过了一会儿,一位大叔打开了门,带着我来到了一座叫 ...
- 我是一个Dubbo数据包...
hello,大家好呀,我是小楼! 今天给大家带来一篇关于Dubbo IO交互的文章,本文是一位同事写的文章,用有趣的文字把枯燥的知识点写出来,通俗易懂,非常有意思,所以迫不及待找作者授权然后分享给大家 ...
- 基于Libpcap实现一个网络数据包嗅探器
基本功能就是来捕获所有流经本网卡的数据包. 实现流程: 查找网络设备 打开网络设备 查找设备信息 输入过滤规则 编译输入规则 设置输入规则 开始捕获数据包 调用数据包分析模块 输出MAC,IP,协议以 ...
- Windows下底层数据包发送实战
1.简介 所谓“底层数据包”指的是在“运行”于数据链路层的数据包,简单的说就是“以太网帧”,而我们常用的Socket只能发送“运行”在传输层的TCP.UDP等包,这些传输层数据包已经能满足绝大部分需求 ...
- IM通信协议逆向分析、Wireshark自定义数据包格式解析插件编程学习
相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/I ...
- 对于数据包的截取,使用linux中的netfilter钩子函数
http://blog.csdn.net/wswifth/article/details/5115358 在师哥的代码(packet.c)中使用的是Linux2.4内核中的一个子系统:netfilte ...
- c# 生成json数据包
json数据类型,归根到底就是一个字符串,管他里面什么格式,它就是一个字符串来的! 看一个json数据包: { "touser":"OPENID", " ...
- 可视化数据包分析工具-CapAnalysis
可视化数据包分析工具-CapAnalysis 我们知道,Xplico是一个从pcap文件中解析出IP流量数据的工具,本文介绍又一款实用工具-CapAnalysis(可视化数据包分析工具),将比Xpli ...
- IP报文解析及基于IP 数据包的洪水攻击
版本(4bit) 报头长度(4bit) 优先级和服务类型(8bit) 总长度(16bit) 标识(16bit) 标志(3bit) 分段偏移(13bit) 存活期(8bit) 协议(8bit) 报头校验 ...
随机推荐
- Linux下run文件的直接运行
比如realplay.run 安装方法如下 chmod +x realplay.run ./realplay.run 然后他就会执行安装了,在过程中可能会要求你输入yes或no 安装完后就可以用了 , ...
- spring(四):DI流程
在IoC容器初始化过程中,一般不包含Bean依赖注入的实现. 依赖注入一般发生在应用第一次向容器获取Bean时(getBean),但是有一个例外. 在使用IoC容器时有一个预实例化的配置,即通过laz ...
- Apache Kafka(十二)Log Cleanup 策略
Log Cleanup 策略 在Kafka中,存在数据过期的机制,称为data expire.如何处理过期数据是根据指定的policy(策略)决定的,而处理过期数据的行为,即为log cleanup. ...
- webpack4.41.0配置三(插件minCssExtract/ DefinePlugin/Html)
(注:如无特殊说明这里的配置文件都指的是webpack.config.js) minCssExtract 我们通常期望js和js文件一起,css和css文件一起.该插件将CSS提取到单独的文件中.它为 ...
- JS 每次进入自动加载JS
对于动态文件,比如 index.asp?id=... 或者 index.aspx?id=... 相信有经验的程序员都知道怎样禁止浏览器缓存数据了.但是对于静态文件(css,jpg,gif等等), 在什 ...
- 每天进步一点点------Allegro 手工布线时控制面板各选项说明
在进行手工布线过程中,最重要的就是对控制面板中的各个选项进行设置,因此首先介绍控制面板中各个选项的含义. 手工布线的命令为Route->connect,执行命令后,右侧控制面板如图8.14所示. ...
- kali&BT5下利用nmap对mysql等数据库渗透与爆破
如今Nmap的脚本引擎从一个普通的端口扫描器转变为具有攻击性的渗透测试工具 .随着nmap各种脚本的存在.到目前为止,我们甚至可以进行完整的SQL数据库渗透而不需要任何其他的工具. 今天就在kali下 ...
- ($children,$refs,$parent)的使用
如果项目很大,组件很多,怎么样才能准确的.快速的寻找到我们想要的组件了?? $refs 首先你的给子组件做标记.demo :<firstchild ref="one"> ...
- 银行T0理财怎么选
## 从现金管理说开去 现金是资产配置中的基石,买股票需要花掉现金,吃饭消费也要花掉现金.现金和我们的生活息息相关,需要慎重地管理起来,因此现金管理应运而生. 现金管理需要兼顾 *流动性* 和 *收益 ...
- 【PAT甲级】1111 Online Map (30分)(dijkstra+路径记录)
题意: 输入两个正整数N和M(N<=500,M<=N^2),分别代表点数和边数.接着输入M行每行包括一条边的两个结点(0~N-1),这条路的长度和通过这条路所需要的时间.接着输入两个整数表 ...