<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>F4ke&#39;s Blog</title>
  
  
  <link href="/atom.xml" rel="self"/>
  
  <link href="http://yoursite.com/"/>
  <updated>2019-11-25T07:50:48.159Z</updated>
  <id>http://yoursite.com/</id>
  
  <author>
    <name>f4ke</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>鸟哥私房菜学习笔记</title>
    <link href="http://yoursite.com/2019/11/25/vbird1/"/>
    <id>http://yoursite.com/2019/11/25/vbird1/</id>
    <published>2019-11-25T07:06:35.000Z</published>
    <updated>2019-11-25T07:50:48.159Z</updated>
    
    <content type="html"><![CDATA[<h2 id="基础学习篇-CentOS-7-x"><a href="#基础学习篇-CentOS-7-x" class="headerlink" title="基础学习篇- CentOS 7.x"></a>基础学习篇- CentOS 7.x</h2><h3 id="第零章-计算机概论"><a href="#第零章-计算机概论" class="headerlink" title="第零章 计算机概论"></a>第零章 计算机概论</h3><ul><li>电脑由输入单元、输出单元、CPU中的控制单元、算数逻辑单元、内存五大部分组成</li></ul><p><img src="https://files.catbox.moe/0jhq3f.png" alt="1573529105568"></p><a id="more"></a><h4 id="CPU架构"><a href="#CPU架构" class="headerlink" title="CPU架构"></a>CPU架构</h4><ul><li>cpu内部含有微指令，软件都是经过cpu内部的微指令集进行运作。</li><li>指令集的设计主要被分为两种设计理念，也是世界上常见的CPU架构：精简指令集(RISC)和复杂指令集(CISC)</li><li>精简指令集(RISC)<ul><li>微指令精简，执行时间短性能佳，但执行复杂事情需多个指令完成</li><li>常见RISC微指令集如甲骨文(Oracle) 公司的SPARC 系列、 IBM 公司的Power Architecture (包括PowerPC) 系列、与安谋公司(ARM Holdings) 的ARM CPU 系列等</li></ul></li><li>复杂指令集(CISC)<ul><li>指令多且复杂，长度也不相同，个别指令处理工作比较丰富</li><li>常见的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架构的CPU</li></ul></li><li>注：在2003年以前由Intel所开发的x86架构CPU由8位元升级到16、32位元，后来AMD依此架构修改新一代的CPU为64位元， 为了区别两者的差异，因此64位元的个人电脑CPU又被统称为x86_64的架构。</li></ul><p><strong>小知识</strong>：网路传输单位为Mbps 是Mbits per second，亦即是每秒多少Mbit，而我们通常所说的容量存储单位的1M是1Mbyte，所以要在宽带的基础上/8才是真正的下载/上传流量</p><p><strong>小知识</strong>：一般硬碟制造商会使用十进位的单位，所以500GByte代表为500x1000x1000x1000Byte之意。转成档案的容量单位时使用二进位(1024为底)，所以就成为466GB左右的容量了。</p><p><img src="https://files.catbox.moe/32piw3.png" alt="1573544173841"></p><ul><li>时脉就是CPU每秒钟可以进行的工作次数。所以时脉越高表示这颗CPU单位时间内可以作更多的事情。举例来说，Intel的i7-4790 CPU时脉为3.6GHz，表示这颗CPU在一秒内可以进行3.6x10^9次工作，每次工作都可以进行少数的指令运作之意。适用于同个型号的CPU的性能比较</li><li>关于CPU的时脉部分：外频指的是CPU与外部元件进行资料传输时的速度，倍频则是CPU内部用来加速工作效能的一个倍数， 两者相乘才是CPU的时脉速度</li><li>CPU每次能够处理的资料量称为字组大小(word size)，字组大小依据CPU的设计而有32位元与64位元。我们现在所称的电脑是32或64位元主要是依据这个CPU解析的字组大小而来的！</li></ul><h4 id="软体程式运作"><a href="#软体程式运作" class="headerlink" title="软体程式运作"></a>软体程式运作</h4><ul><li>作业系统(Operating System, OS)其实也是一组程式，这组程式的重点在于管理电脑的所有活动以及驱动系统中的所有硬体。</li></ul><h3 id="第一章-Linux是什么"><a href="#第一章-Linux是什么" class="headerlink" title="第一章 Linux是什么"></a>第一章 Linux是什么</h3><ul><li>Linux是一套操作系统</li><li>Linux本身就是个最阳春的操作系统，其开发网站设立在<a href="http://www.kernel.org" target="_blank" rel="noopener">http://www.kernel.org</a>, 我们亦称Linux操作系统最底层的数据为“核心（Kernel）”</li><li>Liunx kernel 与 Linux distribution（CentOS,Kali,ubuntu）的关系</li></ul><p><img src="https://files.catbox.moe/1j8bzc.png" alt="1573610352732"></p><ul><li>目前distributions主要分为两大系统：<ul><li>一种是使用RPM方式安装软件的系统，包括Red Hat, Fedora, SuSE等都是这类</li><li>一种则是使用Debian的dpkg方式安装软件的系统，包括Debian, Ubuntu, B2D等</li></ul></li></ul><p><img src="https://files.catbox.moe/zg6b20.png" alt="1573611887819"></p><h4 id="Linux当前的角色"><a href="#Linux当前的角色" class="headerlink" title="Linux当前的角色"></a>Linux当前的角色</h4><ul><li>企业环境<ul><li>网络服务器</li><li>关键任务的应用（金融数据库系统）</li><li>学术机构高性能运算</li></ul></li><li>个人环境<ul><li>桌面电脑</li><li>手机 Android</li><li>嵌入式系统—操作系统嵌入到产品中</li></ul></li><li>云<ul><li>云程序</li><li>端设备，由于强大的云计算环境，端设备会越来越轻量<ul><li>手机</li><li>树莓派</li><li>香蕉派</li></ul></li></ul></li></ul><h3 id="第二章-主机规划与磁盘分区"><a href="#第二章-主机规划与磁盘分区" class="headerlink" title="第二章 主机规划与磁盘分区"></a>第二章 主机规划与磁盘分区</h3><ul><li>在Linux这个系统当中，几乎所有的硬件设备文件都在/dev这个目录内</li></ul><p><img src="https://files.catbox.moe/35dnn2.png" alt="1573626755814"></p><h4 id="磁盘分区"><a href="#磁盘分区" class="headerlink" title="磁盘分区"></a>磁盘分区</h4><ul><li>MSDOS （MBR） 分区表<ul><li>MBR 主要分区、延伸分区与逻辑分区的特性我们作个简单的定义啰：<ul><li>主要分区与延伸分区最多可以有四笔（硬盘的限制）</li><li>延伸分区最多只能有一个（操作系统的限制）</li><li>逻辑分区是由延伸分区持续切割出来的分区；</li><li>能够被格式化后，作为数据存取的分区为主要分区与逻辑分区。延伸分区无法格式化；</li><li>逻辑分区的数量依操作系统而不同，在Linux系统中SATA硬盘已经可以突破63个以上的<br>分区限制；</li></ul></li></ul></li><li>GUID partition table, GPT 磁盘分区表<ul><li>GPT 将磁盘所有区块以此 LBA（默认为 512Bytes 喔！） 来规划，<br>而第一个 LBA 称为 LBA0 （从 0 开始编号）</li></ul></li></ul><p><img src="https://files.catbox.moe/2nlfdf.png" alt="1573629788229"></p><ul><li>简单的说，整个开机流程到操作系统之前的动作应该是这样的：</li></ul><ol><li>BIOS：开机主动执行的固件，会认识第一个可开机的设备；</li><li>MBR：第一个可开机设备的第一个扇区内的主要开机记录区块，内含开机管理程序；</li><li>开机管理程序（boot loader）：一支可读取核心文件来执行的软件；<ul><li>boot loader的主要任务有下面这些项目：<ul><li>提供菜单：使用者可以选择不同的开机项目，这也是多重开机的重要功能！</li><li>载入核心文件：直接指向可开机的程序区段来开始操作系统；</li><li>转交其他loader：将开机管理功能转交给其他loader负责。</li></ul></li></ul></li><li>核心文件：开始操作系统的功能…</li></ol><ul><li>UEFI （Unified Extensible Firmware Interface） 这个统一可延伸固件界面的产生—加强版BIOS</li></ul><h4 id="Linux安装模式下，磁盘分区的选择"><a href="#Linux安装模式下，磁盘分区的选择" class="headerlink" title="Linux安装模式下，磁盘分区的选择"></a>Linux安装模式下，磁盘分区的选择</h4><ul><li>文件系统与目录树的关系（挂载mount）<ul><li>所谓的“挂载”就是利用一个目录当成进入点，将磁盘分区的数据放置在该目录下； 也就是说，进入该目录就可以读取该分区的意思。这个动作我们称为“挂载”，那个进入点的目录我们称为“挂载点”。 由于整个Linux系统最重要的是根目录，因此根目录一定需要挂载到某个分区的。 至于其他的目录则可依使用者自己的需求来给予挂载到不同的分区。</li></ul></li></ul><p><img src="https://files.catbox.moe/otanua.png" alt="1573631331858"></p><h3 id="第三章-安装CentOS7-x"><a href="#第三章-安装CentOS7-x" class="headerlink" title="第三章 安装CentOS7.x"></a>第三章 安装CentOS7.x</h3><ul><li>建议练习机安装时的磁碟分割能有/, /boot, /home, swap四个分割槽</li><li>CentOS 7 会主动依据你的磁碟容量判断要用MBR 或GPT 分割方式，你也可以强迫使用GPT</li><li>安装过程进入分割后，请以『自订的分割模式』来处理自己规划的分割方式</li><li>在安装的过程中，可以建立逻辑卷轴管理员(LVM)</li></ul><h3 id="第四章-首次登陆与线上求助"><a href="#第四章-首次登陆与线上求助" class="headerlink" title="第四章 首次登陆与线上求助"></a>第四章 首次登陆与线上求助</h3><ul><li><p>Linux当中，默认root的提示字符为 # ，而一般身份使用者的提示字符为 $ </p></li><li><p>指令太长的时候，可以使用反斜线 （\） 来跳脱[Enter]符号，使指令连续到下一行。注意！反斜线后就立刻接特殊字符，才能跳脱</p></li><li><p>快捷键</p><ul><li>Tab  命令补全/文件不全</li><li>Ctrl+C  中断程序</li><li>Ctrl+D  EOF（End of File）/ exit</li><li>Shift+PageUp/PageDown</li></ul></li><li><p>Linux 系统上的英文大小写为不同的数据</p></li><li><p>man page说明后面的数字中，1代表一般帐号可用指令，8代表系统管理员常用指令，5代表系统配置文件格式</p></li><li><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[dmtsai@study ~]$ whatis [指令或者是资料]    &lt;==相当于man -f [指令或者是资料] //找左边</span><br><span class="line">[dmtsai@study ~]$ apropos [指令或者是资料]    &lt;==相当于man -k [指令或者是资料] //找右边</span><br></pre></td></tr></table></figure></li></ul><h3 id="第五章-Linux-的文件权限与目录配置"><a href="#第五章-Linux-的文件权限与目录配置" class="headerlink" title="第五章 Linux 的文件权限与目录配置"></a>第五章 Linux 的文件权限与目录配置</h3><ul><li>owner/group/others   类似于19532（owner）加入知识星球代码审计（group），其他没加入知识星球的知识星球用户（others）</li><li>每个帐号可以加入的群组个数基本上是没有限制的</li><li>文件权限与类型<ul><li>第一组为“文件拥有者可具备的权限”，以“initial-setup-ks.cfg”那个文件为例， 该文件的拥有者可以读写，但不可执行；</li><li>第二组为“加入此群组之帐号的权限”；</li><li>第三组为“非本人且没有加入本群组之其他帐号的权限”。</li></ul></li><li>/etc/shadow 文件的权限为[ ———- ]，但是root基本上是不受系统的权限所限制的， 所以无论文<br>件权限为何，默认root都可以存取</li><li>改变文件属性与权限<ul><li>chgrp ：改变文件所属群组<ul><li>要被改变的群组名称必须要在/etc/group文件内存在才行，否则就会显示错误</li></ul></li><li>chown ：改变文件拥有者<ul><li>在/etc/passwd 这个文件中有纪录的使用者名称才能改变</li></ul></li><li>chmod ：改变文件的权限, SUID, SGID, SBIT等等的特性<ul><li>可以用数字或者符号进行文件权限的改变</li></ul></li></ul></li><li>对一般文件来说，rwx 主要是针对“文件的内容”来设计权限，对目录来说，rwx则是针对“目录内的文件名列表”来设计权限</li><li>文件权限的意义<ul><li>r （read）：可读取此一文件的实际内容，如读取文本文件的文字内容等；</li><li>w （write）：可以编辑、新增或者是修改该文件的内容（但不含删除该文件）；</li><li>x （eXecute）：该文件具有可以被系统执行的权限。</li></ul></li><li>目录权限的意义<ul><li>r : 表示具有读取目录结构清单的权限，所以当你具有读取（r）一个目录的权限时，表示你可以查询该目录下的文件名数据。</li><li>w<ul><li>创建新的文件与目录；</li><li>删除已经存在的文件与目录（<strong>不论该文件的权限为何！</strong>）</li><li>将已存在的文件或目录进行更名；</li><li>搬移该目录内的文件、目录位置。 </li></ul></li><li>x: 目录的x代表的是使用者能否进入该目录成为工作目录的用途</li></ul></li></ul><p><img src="https://files.catbox.moe/iysqvk.png" alt="1574653102720"></p><ul><li>单一文件或目录的最大容许文件名为 255Bytes，以一个 ASCII 英文占用一个 Bytes 来说，则大约可达 255 个字符长度。若是以每个中文字占用 2Bytes 来说， 最大文件名就是大约在 128 个中文字之谱</li><li>Linux目录配置的依据–FHS(Filesystem Hierarchy Standard)<ul><li>FHS针对目录树架构仅定义出三层目录下面应该放置什么数据<ul><li>/ （root, 根目录）：与开机系统有关；</li><li>/usr （unix software resource）：与软件安装/执行有关；</li><li>/var （variable）：与系统运行过程有关。</li></ul></li></ul></li></ul><p><img src="https://files.catbox.moe/76uvjr.png" alt="1574330606793"></p><ul><li>绝对路径：由根目录（/）开始写起的文件名或目录名称</li><li>相对路径：相对于目前路径的文件名写法。<ul><li>. ：代表当前的目录，也可以使用 ./ 来表示；</li><li>.. ：代表上一层目录，也可以 ../ 来代表</li></ul></li><li>除了FHS之外，还有个Linux Standard Base (LSB)的标准是可以依循的</li></ul><h3 id="第六章-Linux-文件与目录管理"><a href="#第六章-Linux-文件与目录管理" class="headerlink" title="第六章 Linux 文件与目录管理"></a>第六章 Linux 文件与目录管理</h3><ul><li><p>特殊目录</p><ul><li>. 代表此层目录</li><li>.. 代表上一层目录</li><li>“-“ 代表前一个工作目录</li><li>~ 代表“目前使用者身份”所在的主文件夹</li><li>~account 代表 account 这个使用者的主文件夹（account是个帐号名称）</li></ul></li><li><p>cd == change directory</p></li><li><p>pwd == Print Working Directory</p></li><li><p><code>[root@study ~]# PATH=&quot;${PATH}:/root&quot;</code>    //将root加入PATH中</p></li><li><p>ll == ls -l</p></li><li><p>cp</p><ul><li>由于 cp 有<strong>种种的文件属性与权限的特性</strong>，所以，在复制时，你必须要清楚的了解到：<ul><li>是否需要完整的保留来源文件的信息？</li><li>来源文件是否为链接文件 （symbolic link file）？</li><li>来源文件是否为特殊的文件，例如 FIFO, socket 等？</li><li>来源文件是否为目录？</li></ul></li></ul></li><li><p>文件内容查阅</p><ul><li>cat 由第一行开始显示文件内容<ul><li>cat ==  Concatenate </li></ul></li><li>tac 从最后一行开始显示，可以看出 tac 是 cat 的倒着写</li><li>nl 显示的时候，顺道输出行号</li><li>more 一页一页的显示文件内容</li><li>less 与 more 类似，但是比 more 更好的是，他可以往前翻页</li><li>head 只看头几行</li><li>tail 只看尾巴几行</li><li>od 以二进制的方式读取文件内容</li></ul></li><li><p>linux文件三个时间</p><ul><li>modification time （mtime）： 当该文件的“内容数据”变更时，就会更新这个时间！内<br>容数据指的是文件的内容，而不是文件的属性或权限</li><li>status time （ctime）： 当该文件的“状态 （status）”改变时，就会更新这个时间，举<br>例来说，像是权限与属性被更改了，都会更新这个时间</li><li>access time （atime）： 当“该文件的内容被取用”时，就会更新这个读取时间<br>（access）。举例来说，我们使用 cat 去读取 /etc/man_db.conf ， 就会更新该文件的<br>atime </li></ul></li><li><p>文件与目录的默认权限</p><ul><li>若使用者创建为“文件”则默认“没有可执行（ x ）权限”，亦即只有 rw 这两个项目，也就<br>是最大为 666 分，默认权限如下： -rw-rw-rw-</li><li>若使用者创建为“目录”，则由于 x 与是否可以进入此目录有关，因此默认为所有权限均开<br>放，亦即为 777 分，默认权限如下： drwxrwxrwx</li><li>umask 的分数指的是“该默认值需要减掉的权限”<ul><li>root的umask==022</li><li>普通账户的umask==002</li></ul></li></ul></li><li><p>文件与目录的隐藏权限</p><ul><li>chattr  a/i <ul><li>当设置 a 之后，这个文件将只能增加数据，而不能删除也不能修改数据，只有root 才能设置这属性</li><li>这个 i 可就很厉害了！他可以让一个文件“不能被删除、改名、设置链接也无法写入或新增数据！”对于系统安全性有相当大的助益！只有 root 能设置此属性</li></ul></li><li>lsattr 查看文件隐藏属性</li></ul></li><li><p>文件与目录的特殊权限</p><ul><li>4 为 SUID</li><li>2 为 SGID</li><li>1 为 SBIT</li><li>Set UID  U==user==owner    仅仅对文件具有如下功能<ul><li>SUID 权限仅对二进制程序（binary program）有效；</li><li>执行者对于该程序需要具有 x 的可执行权限；</li><li>本权限仅在执行该程序的过程中有效 （run-time）；</li><li>执行者将具有该程序拥有者 （owner） 的权限。</li></ul></li><li>Set GID    G==group     对文件与目录功能不同<ul><li>对文件来说， SGID 有如下的功能：<ul><li>SGID 对二进制程序有用；</li><li>程序执行者对于该程序来说，需具备 x 的权限；</li><li>执行者在执行的过程中将会获得该程序群组的支持！</li></ul></li><li>当一个目录设置了 SGID 的权限后，他将具有如下的功能：<ul><li>使用者若对于此目录具有 r 与 x 的权限时，该使用者能够进入此目录；</li><li>使用者在此目录下的有效群组（effective group）将会变成该目录的群组；</li><li>用途：若使用者在此目录下具有 w 的权限（可以新建文件），则使用者所创建的新文<br>件，该新文件的群组与此目录的群组相同。</li></ul></li></ul></li><li>Sticky Bit   仅仅对于目录有功能<ul><li>SBIT 对于目录的作用是：    <ul><li>当使用者对于此目录具有 w, x 权限，亦即具有写入的权限时；</li><li>当使用者在该目录下创建文件或目录时，仅有自己与 root 才有权力删除该文件</li></ul></li></ul></li></ul></li><li><p>which是根据“PATH”这个环境变量所规范的路径，去搜寻“可执行文件”的文件名</p></li><li><p>文件名的查找</p><ul><li>首先用whereis/locate</li><li>whereis 只找系统中某些特定目录下面的文件/locate 则是利用数据库来搜寻文件名</li><li>find—在磁盘中搜索，速度最慢<ul><li>以时间为条件   -mtime/-newer</li><li>以使用者或群组为条件  -uid/-user/-group/-nouser</li><li>以文件权限及名称为条件  -name/-perm/-size/-type</li><li>额外可进行的动作   -exec/-print</li></ul></li></ul></li></ul><h3 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h3><p>鸟哥Linux私房菜基础学习篇</p>]]></content>
    
    <summary type="html">
    
      &lt;h2 id=&quot;基础学习篇-CentOS-7-x&quot;&gt;&lt;a href=&quot;#基础学习篇-CentOS-7-x&quot; class=&quot;headerlink&quot; title=&quot;基础学习篇- CentOS 7.x&quot;&gt;&lt;/a&gt;基础学习篇- CentOS 7.x&lt;/h2&gt;&lt;h3 id=&quot;第零章-计算机概论&quot;&gt;&lt;a href=&quot;#第零章-计算机概论&quot; class=&quot;headerlink&quot; title=&quot;第零章 计算机概论&quot;&gt;&lt;/a&gt;第零章 计算机概论&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;电脑由输入单元、输出单元、CPU中的控制单元、算数逻辑单元、内存五大部分组成&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://files.catbox.moe/0jhq3f.png&quot; alt=&quot;1573529105568&quot;&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="Linux基础" scheme="http://yoursite.com/tags/Linux%E5%9F%BA%E7%A1%80/"/>
    
  </entry>
  
  <entry>
    <title>防火墙知识学习（二）—— VPN</title>
    <link href="http://yoursite.com/2019/10/28/FW2/"/>
    <id>http://yoursite.com/2019/10/28/FW2/</id>
    <published>2019-10-28T06:25:04.000Z</published>
    <updated>2019-10-28T06:57:10.854Z</updated>
    
    <content type="html"><![CDATA[<h2 id="防火墙VPN总论"><a href="#防火墙VPN总论" class="headerlink" title="防火墙VPN总论"></a>防火墙VPN总论</h2><ul><li>VPN 是指在公用网络上建立一个私有的、专用的虚拟通信网络。</li></ul><a id="more"></a><h3 id="VPN分类"><a href="#VPN分类" class="headerlink" title="VPN分类"></a>VPN分类</h3><ul><li>根据<strong>建设单位不同</strong>分类：根据 VPN 网络端点设备（ 关键设备）由运营商提供，还是由企业自己提供来划分。<ul><li>租用运营商 VPN 专线搭建企业 VPN 网络：目前主要指租用运营商 MPLS VPN 专线，比如联通、电信都提供 MPLS VPN 专线服务。优势主要在于线路租用成本低。</li><li>用户自建企业 VPN 网络：目前最常用的就是基于 Internet 建立企业 VPN 网络，具体技术包括 GRE、L2TP、IPSec、SSL VPN 等。此方案只需支付设备购买费用和上网费用，无VPN专线租用费用，企业也可更加灵活调整网络。</li></ul></li><li>根据<strong>组网方式不同</strong>分类<ul><li>远程访问 VPN（Access VPN）：适合出差员工 VPN 拨号接入的场景。员工可以在任何能够接入公网的地方，通过远程拨号接入企业内网，从而访问内网资源。</li><li>局域网到局域网的 VPN（也称为网关到网关的 VPN）：它适用于公司两个异地机构的局域网互连。</li></ul></li><li>根据<strong>应用场景不同</strong>分类<ul><li>远程访问 VPN：Access VPN 面向出差员工。允许出差员工跨越公用网络远程接入公司内部网络。</li><li>Intranet VPN（企业内部虚拟专网）：Intranet VPN 通过公用网络进行企业内部各个网络的互连。</li><li>Extranet VPN（扩展的企业内部虚拟专网）：Extranet VPN 是指利用 VPN 将企业网延伸至合作伙伴处，使不同企业间通过公网来构筑 VPN。Intranet VPN 和 Extranet VPN 的不同点主要在于访问公司总部网络资源的权限有区别。</li></ul></li><li>根据<strong>VPN 技术实现的网络层次</strong>进行分类<ul><li>基于数据链路层的 VPN：L2TP、L2F、PPTP。其中 L2F 和 PPTP 已经基本上被 L2TP替代</li><li>基于网络层的 VPN：GRE、IPSec</li><li>基于应用层的 VPN：SSL</li></ul></li></ul><h3 id="VPN-关键技术"><a href="#VPN-关键技术" class="headerlink" title="VPN 关键技术"></a>VPN 关键技术</h3><ul><li>隧道技术<ul><li>隧道技术是 VPN 的基本技术，类似于点到点连接技术。它的基本过程就是在数据进入源 VPN网关后，将数据“封装”后通过公网传输到目的 VPN 网关后再对数据“解封装”。“封装/解封装”过程本身就可以为原始报文提供安全防护功能，所以<strong>被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”</strong>。</li></ul></li></ul><p><img src="https://files.catbox.moe/pky7c8.png" alt></p><ul><li>身份认证技术<ul><li>主要用于移动办公的用户远程接入的情况。通过对用户的身份进行认证，确保接入内部网络的用户是合法用户，而非恶意用户。</li><li>不同VPN提供身份认证方法不同：<ul><li>GRE 不支持身份认证技术。</li><li>L2TP：依赖 PPP 提供的认证（比如 CHAP、PAP、EAP）。接入用户的用户名和密码本地认证也可以通过 RADIUS 服务器认证。认证通过以后再给用户分配内部的 IP 地址，通过此 IP 地址对用户进行授权和管理。</li><li>IPSec：通过 IKEv2 拨号时，支持进行 EAP 认证。接入用户的用户名和密码可以本地认证可以通过 RADIUS 服务器认证。认证通过以后再给用户分配内部的 IP 地址，通过此 IP地址对用户进行授权和管理。另外 IPSec 还支持数据源认证。</li><li>SSL VPN：支持本地认证、证书认证和服务器认证。主要是对服务器进行身份认证，确认 Web 网页的合法性</li></ul></li></ul></li></ul><ul><li>机密技术<ul><li>加密对象有数据报文和协议报文之分，能够实现协议报文和数据报文都加密的协议安全系数更高。</li><li>GRE 和 L2TP 协议本身不提供加密技术，所以通常结合 IPSec 协议一起使用，使用 IPSec的加密技术。</li><li>IPSec：支持数据报文和协议报文加密。IPSec 一般采用<strong>对称密钥算法</strong>加密数据。对称加密算法采用相同的密钥加密和解密数据。</li><li>SSL VPN：支持数据报文和协议报文加密。SSL VPN 采用<strong>公钥体制</strong>进行加密。</li></ul></li></ul><ul><li><p>数据验证技术</p><ul><li>采用“摘要”的技术。“摘要”技术主要采用 HASH 函数将一段长的报文通过函数变换，映射为一段短的报文。在收发两端都对报文进行验证，只有摘要一致的报文才被认可。</li><li>GRE：本身只提供简单的校验和验证和关键字验证，但可结合 IPSec 协议一起使用，使用 IPSec 的数据验证技术。</li><li>L2TP：本身不提供数据验证技术，但可结合 IPSec 协议一起使用，使用 IPSec 的数据验证技术。</li><li>IPSec：支持对数据进行完整性验证和数据源验证。</li><li>SSL VPN：支持对数据进行完整性验证和数据源验证。SSL VPN 采用公钥体制，利用Hash 算法生成摘要，再用私钥加密摘要生成数字签名。利用公钥进行解密。利用公钥和私钥的一一的关系可以对数据源进行认证。</li></ul></li></ul><ul><li>总结</li></ul><p><img src="https://files.catbox.moe/1bk7iq.png" alt></p><h3 id="GRE"><a href="#GRE" class="headerlink" title="GRE"></a>GRE</h3><ul><li>产生原因：<ul><li>私有 IP 网络之间无法直接通过 Internet 互通。</li><li>异种网络（IPX、AppleTalk）之间无法通过 Internet 直接进行通信。</li><li>私网之间部署的动态路由无法跨越 Internet等。</li></ul></li><li>GRE协议问世，（General Routing Encapsulation）即通用路由封装协议<ul><li>人话：GRE封装等于给私有网络报文穿上能让Internet 识别的“马甲”，使其在 Internet 上传输。反正对于 Internet 而言，它是只认“马甲”不认人。</li></ul></li><li>封装技术构成三要素：乘客协议、封装协议、运输协议<ul><li><strong>乘客协议</strong>：为了便于理解封装技术，我们用邮政系统打个比方。乘客协议就是我们写的信，信的语言可以是汉语、英语、法语等，具体如何解释由写信人、读信人自己负责。</li><li><strong>封装协议</strong>：封装协议可以理解为信封，可能是平信、挂号或者是 EMS，这对应于多种封装协议。</li><li><strong>运输协议</strong>：运输协议就是信的运输方式，可以是陆运、海运或者空运，这对应于不同的运输协议。</li></ul></li><li>GRE封装图示<ul><li>GRE 能够承载的协议包括 IP 协议、IPX 协议，GRE 所使用的运输协议是 IP 协议。</li></ul></li></ul><p><img src="https://files.catbox.moe/gjm8eo.png" alt></p><ul><li><p>GRE封装原理</p><ul><li>第一步是在私有数据中添加 GRE 头，第二步是在 GRE头前面再加上新的 IP 头。加上新的 IP 头以后，就意味着这个私有网络的报文在经过层层封装以后就可以在 Internet 上传输了。<br><img src="https://files.catbox.moe/okh1mw.png" alt></li><li>封装操作是通过鼎鼎有名的Tunnel逻辑接口来实现，Tunnel 接口是一个通用的隧道接口。</li><li>防火墙对GRE流量转发过程</li></ul><p><img src="https://files.catbox.moe/0uy0t1.png" alt></p><ol><li>企业的私网流量到达防火墙的入接口，防火墙查询路由表对此流量进行转发。</li><li>防火墙根据路由查找结果，将此流量引导到 Tunnel 接口进行 GRE 封装。</li><li>封装后的 GRE 报文再次查找路由进行流量转发。</li><li>防火墙根据路由查找结果，找到出接口，并将流量发送到 Internet。</li></ol><ul><li>解封装时，IP头中如果这个Protocol字段值是47，就表示这个报文是GRE报文。</li></ul></li><li><p>安全问题</p><ul><li>GRE具有身份验证，GRE报文头中的key字段为1表示用户设置了身份验证功能。</li><li>数据报文防篡改，GRE头中的另一个字段checksum为1，表示启用了校验和功能。</li><li>但GRE自身并不支持报文加密功能。GRE over IPSec技术就是在GRE将报文封装后，再经过IPSec封装。</li><li>由于IPSec技术具备很强的加密功能，就解决了GRE的安全性问题。</li><li>GRE 隧道提供了一种保活机制（keepalive）来感知对端设备状态</li></ul></li></ul><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><p><a href="https://forum.huawei.com/enterprise/zh/thread-331003.html" target="_blank" rel="noopener">强叔侃墙</a></p>]]></content>
    
    <summary type="html">
    
      &lt;h2 id=&quot;防火墙VPN总论&quot;&gt;&lt;a href=&quot;#防火墙VPN总论&quot; class=&quot;headerlink&quot; title=&quot;防火墙VPN总论&quot;&gt;&lt;/a&gt;防火墙VPN总论&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;VPN 是指在公用网络上建立一个私有的、专用的虚拟通信网络。&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
    
      <category term="Firewall,VPN,GRE" scheme="http://yoursite.com/tags/Firewall-VPN-GRE/"/>
    
  </entry>
  
  <entry>
    <title>网络基础</title>
    <link href="http://yoursite.com/2019/10/28/CCNA/"/>
    <id>http://yoursite.com/2019/10/28/CCNA/</id>
    <published>2019-10-28T06:22:40.000Z</published>
    <updated>2019-10-28T06:32:41.483Z</updated>
    
    <content type="html"><![CDATA[<h1 id="网络基础知识（CCNA）"><a href="#网络基础知识（CCNA）" class="headerlink" title="网络基础知识（CCNA）"></a>网络基础知识（CCNA）</h1><h2 id="基础的基础"><a href="#基础的基础" class="headerlink" title="基础的基础"></a>基础的基础</h2><ul><li>默认时，路由器用来分隔广播域，也分隔冲突域</li><li>交换机用来分隔冲突域（广播域内的冲突），本质上交换机是多端口的网桥，集线器啥都不分隔，连接他的设备只有一个广播域和冲突域。</li><li>OSI模型上三层定义了终端系统中的<strong>应用程序</strong>将如何彼此通信，以及如何与用户通信；下四层定义了怎么进行<strong>端对端的数据传输</strong>。</li><li>在网络层有两种类型的包：<strong>数据包</strong>和<strong>路由更新包</strong>。其中路由更新包用来向相邻路由器通告连接到网络的所有路由器的更新信息。发送路由更新包的协议叫主动路由协议。如RIP,OSPF等。</li><li>三层设备定位特定的网络，二层设备定位特定的设备。路由器用路由表”映射“网络，交换机和网桥用过滤表”映射“单个设备。</li><li>阻止广播风暴在互联网络中传播的唯一方法是使用路由器</li></ul><p>A 0-127  保留：10.0.0.0-10.255.255.255</p><p>B 128-191         172.16.0.0-172.31.255.255</p><p>C 192-223         192.168.0.0-192.168.255.255</p><p>DE 用于组播和科学实验</p><ul><li>CSMA/CD 冲突避免机制</li></ul><a id="more"></a><h2 id="网络基础"><a href="#网络基础" class="headerlink" title="网络基础"></a>网络基础</h2><h3 id="OSI-七层模型"><a href="#OSI-七层模型" class="headerlink" title="OSI 七层模型"></a>OSI 七层模型</h3><ul><li>应用层  为应用软件提供接口，使应用程序能使用网络服务。<ul><li>http (80),ftp (20/21) ,smtp (25),pop3 (110) ,telnet (23) ,dns (53) , ssh (22)</li></ul></li><li>表示层<ul><li>数据的解码和编码</li><li>数据的加密和解密</li><li>数据的压缩和解压缩</li></ul></li><li>会话层<ul><li>作用：建立、维护、管理应用程序之间的会话</li></ul></li><li>传输层<ul><li>负责建立端到端连接，保证报文在端对端之间的传输</li><li>分段重组，流量控制，</li></ul></li><li>网络层    数据包<ul><li>负责将分组数据从源端传输到目的端</li><li>功能：逻辑IP地址、路由选择、分组转发</li><li>设备：路由器<ul><li>广播控制</li><li>组播控制</li><li>决定最优路径</li><li>流量管理</li><li>提供逻辑地址</li><li>连接WAN（广域网）</li></ul></li></ul></li><li>数据链路层  数据叫帧<ul><li>在不可靠的物理链路上，提供可靠的数据传输服务，把帧从一跳移动到下一跳。</li><li>设备：交换机–透明网桥</li></ul></li><li>物理层<ul><li>负责把逐个比特从一跳（结点）移动到下一跳（结点）</li><li>设备：集线器HUB  （被交换机取代） </li></ul></li></ul><p><img src="https://files.catbox.moe/nl3io9.png" alt></p><p>七   应用层   HTTP  FTP SMTP SSH DNS</p><p>​        端口号     80        23     25     22    53</p><p>四   传输层   TCP   UDP   eigrp   ospf</p><p>​       协议号   6   17   88   89</p><p>三   网络层      IPv4   IPv6</p><p>​       type字段   0X0800  0X86DD</p><p>二   数据链路层</p><h3 id="TCP-IP模型"><a href="#TCP-IP模型" class="headerlink" title="TCP/IP模型"></a>TCP/IP模型</h3><p><img src="https://files.catbox.moe/x4tw7b.png" alt></p><h3 id="IOS基本操作"><a href="#IOS基本操作" class="headerlink" title="IOS基本操作"></a>IOS基本操作</h3><p>见基础命令</p><h3 id="IP子网划分"><a href="#IP子网划分" class="headerlink" title="IP子网划分"></a>IP子网划分</h3><p>子网掩码的作用是识别子网号</p><p>C类地址子网划分</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">有多少子网？  2^x     x为掩码的位数</span><br><span class="line"></span><br><span class="line">每个子网中有多少主机？  2^(8-x)-2</span><br><span class="line"></span><br><span class="line">合法的子网？  256-子网掩码=块大小，即增量值</span><br><span class="line"></span><br><span class="line">每个子网中的广播地址？   每个子网-1</span><br><span class="line"></span><br><span class="line">合法的主机？ 每个子网除去网络地址和广播地址的范围</span><br></pre></td></tr></table></figure><p>以下面方式记录</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">子网地址064    128    192</span><br><span class="line">第一个合法的主机号 165129193</span><br><span class="line">最后一个合法的主机号62126190254</span><br><span class="line">广播地址63127191255</span><br></pre></td></tr></table></figure><h3 id="IP寻址故障诊断"><a href="#IP寻址故障诊断" class="headerlink" title="IP寻址故障诊断"></a>IP寻址故障诊断</h3><ol><li>ping 127.0.0.1    失败则要重装TCP/IP</li><li>ping 本机地址    失败网络接口卡（NIC）有问题</li><li>ping 网关       存在本地物理网络问题</li><li>ping 远程主机     远程主机物理问题或者域名解析问题</li></ol><h2 id="路由协议"><a href="#路由协议" class="headerlink" title="路由协议"></a>路由协议</h2><ul><li>DV （distance vector距离矢量）：只知道目的网络大概的远近方向，道听途说，自身没选路算法，容易形成数据包环路  如：RIP/EIGRP</li><li>LS （link state链路状态）：知道全网拓扑，不会形成环路。如：OSPF</li><li>混合型：EIGRP</li><li>路由协议使用的范围：<ul><li>AS（自治系统号）：一个逻辑管理域，有统一的机构负责管理 号码范围：1-65535</li><li>IGP（内部网关协议）：运行在同一个AS内部的路由协议  RIP,EIGRP,OSPF</li><li>EGP：运行在不同AS之间的路由协议  BGP（边界网关协议）</li></ul></li><li><del>有类路由</del>：已淘汰</li><li>无类路由：传递路由更新时带子网掩码，传递路由精确</li><li>收敛时间：从网络拓扑发生变化到网络中所有路由器都知道这个变化的时间</li></ul><h3 id="static-静态路由"><a href="#static-静态路由" class="headerlink" title="static 静态路由"></a>static 静态路由</h3><p><code>ip route   目的网段  子网掩码  下一跳地址/出站接口名称</code></p><p>ip route 34.1.1.5 255.255.255.255 12.1.1.2   主机静态路由  只有34.1.1.5能Ping通</p><ul><li>小型网络适合配置静态路由</li><li>双向路径，有去有回</li><li>源IP 是跟下一跳同个网段的端口IP</li><li>默认路由：ip route 0 0.0.0.0 0 0.0.0.0 192.168.23.2</li><li>路由器只看目的IP，查找路由表进行转发</li></ul><h3 id="RIP-已被淘汰"><a href="#RIP-已被淘汰" class="headerlink" title="RIP  已被淘汰"></a>RIP  已被淘汰</h3><ul><li><p>metirc（度量值）：同种路由协议之间的可信程度。有五种参数</p><ul><li>带宽</li><li>可靠性</li><li>延迟</li><li>负载</li><li>MTU</li></ul></li><li><p>AD（管理距离）：不同种路由协议之间的可信程度，0-255，值越小可信度越高</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"># 常见路由协议默认AD  思科</span><br><span class="line">直连：0</span><br><span class="line">静态路由：1</span><br><span class="line">EIGRP：90</span><br><span class="line">OSPF：110</span><br><span class="line">RIP：120</span><br></pre></td></tr></table></figure></li><li><p>路由器定期与相邻路由器互相学习更新路由表，从收集到的源信息中选择到达目的地址的最佳路径</p></li><li><p>DV型协议环路防止方法</p><ul><li>水平分割：从一个接口收到的路由更新不会再从这个接口发出</li></ul></li></ul><h3 id="EIGRP-（增强网关路由协议）思科私有协议"><a href="#EIGRP-（增强网关路由协议）思科私有协议" class="headerlink" title="EIGRP （增强网关路由协议）思科私有协议"></a>EIGRP （增强网关路由协议）思科私有协议</h3><p>平衡混合路由选择协议</p><ul><li>不定期更新，网络变化时才更新</li><li>通过协议无关模块支持IP,Appletalk</li><li>无类</li><li>支持VLSM，CIDR</li><li>邻居发现术语：<ul><li>FD（可行距离）：邻居报告的度量值 + 报告此路由的邻居度量值</li><li>AD（通告距离）：邻居报告到达远程网络度量</li><li>S（继任者）：最优路径，FD最小的路径</li><li>FS（可行继任者）：备份路径   条件：AD&lt;S的FD</li></ul></li><li>有效邻居发现<ul><li>要能收到hello （hello 发现，建立，维持直连路由邻居关系）</li><li>AS号要相同</li><li>度量标准要一致</li><li>认证要一致（只支持密文认证）</li></ul></li><li>支持汇总和不连续网络 </li></ul><p>三张表</p><ul><li>邻居关系表  show ip eigrp neighbors </li><li>拓扑表          show ip eigrp topology </li><li>路由表         show ip route</li></ul><p><img src="https://files.catbox.moe/eqdsck.png" alt></p><ul><li>均支持等价负载均衡和不等价负载均衡</li></ul><h3 id="OSPF-（开放式最短路径优先）公有协议"><a href="#OSPF-（开放式最短路径优先）公有协议" class="headerlink" title="OSPF  （开放式最短路径优先）公有协议"></a>OSPF  （开放式最短路径优先）公有协议</h3><ul><li>引入区域概念：0-65535  0是骨干区域  其他常规区域，所有常规区域必须和骨干区域相连，数据交换也是一样，常规区域之间不直接数据交流</li><li>邻居/邻接<ul><li>邻居(two-way)：直连的两台路由器之间交互hello包，满足其中的参数，不能传递路由信息</li><li>邻接(full)：直连的两台路由器之间交互路由信息</li></ul></li><li>RouteID (RID) : 运行OSPF路由器的名字、标识<ul><li>表现形式：点分十进制</li><li>RID在同一个区域中必须唯一，冲突会造成邻居关系无法形成</li><li>自动选举原则：<ul><li>逻辑口 （大）</li><li>物理口（大）</li></ul></li><li>RID一旦选举出来就是一个稳定状态，体现ospf稳定性</li><li>推荐手动指定： route-id 1.1.1.1</li></ul></li><li>ospf邻居关系建立要素：<ul><li>RID不能冲突</li><li>hello/dead时间间隔</li><li>区域号两端要一致</li><li>认证密码要一致</li></ul></li><li>DR（指定路由器）/ BDR（备份制定路由器）<ul><li>减轻路由器负担，减少邻接关系</li></ul></li><li>MA（多路访问）网络中才会选举DR/BDR<ul><li>BMA（支持广播的多路访问网络）：以太网</li><li>NBMA（支持广播的多路访问网络）：帧中继</li></ul></li><li>选举DR/BDR原则：<ul><li>比较接口优先级（大）</li><li>比较RID（大）</li><li>DR一但选举出来也是一个稳定状态</li></ul></li><li>建立邻居/邻接关系的原则：<ul><li>DR和BDR：邻接</li><li>DR/BDR和Drother：邻接</li><li>Drother和Drother：邻居</li><li>接口优先级为0，则不参与DR/BDR的选举，只能成为Drother</li></ul></li></ul><h2 id="交换网络"><a href="#交换网络" class="headerlink" title="交换网络"></a>交换网络</h2><h3 id="VLAN-（虚拟局域网）"><a href="#VLAN-（虚拟局域网）" class="headerlink" title="VLAN  （虚拟局域网）"></a>VLAN  （虚拟局域网）</h3><p>VLAN = Broadcast Domain = Subnet   分隔广播域，逻辑分段</p><h3 id="VLAN-trunk"><a href="#VLAN-trunk" class="headerlink" title="VLAN trunk"></a>VLAN trunk</h3><ul><li>交换机两种接口模式 ：access（承载一个vlan）、trunk（承载多个vlan）</li><li>2^12 = 4096 个vlan  0-4095</li><li>不同VLAN号具有不同标记  只有交换机认识并识别。同一vlan号通过trunk在不同交换机之间进行通信</li></ul><h3 id="单臂路由-（VLAN间路由）"><a href="#单臂路由-（VLAN间路由）" class="headerlink" title="单臂路由 （VLAN间路由）"></a>单臂路由 （VLAN间路由）</h3><ul><li>vlan根本的目的是分隔广播，但是不同vlan之间有单播访问的需求</li><li>用路由器来实现VLAN间路由的技术叫单臂路由</li></ul><h3 id="VTP-（VLAN-干道协议）"><a href="#VTP-（VLAN-干道协议）" class="headerlink" title="VTP （VLAN 干道协议）"></a>VTP （VLAN 干道协议）</h3><ul><li>一个vlan号在成百上千台交换机上时，不可能一个一个配置vlan号</li><li>一个能够宣告VLAN配置信息的信息系统（协议）</li><li>通过共有的管理域，维持VLAN配置信息的一致性</li><li>VTP模式</li></ul><p><img src="https://files.catbox.moe/6kfigg.png" alt="1569830166887"></p><ul><li>show vtp status</li><li>生成树协议</li></ul><h2 id="广域网技术"><a href="#广域网技术" class="headerlink" title="广域网技术"></a>广域网技术</h2><h3 id="ACL（访问控制列表）"><a href="#ACL（访问控制列表）" class="headerlink" title="ACL（访问控制列表）"></a>ACL（访问控制列表）</h3><ul><li>标准   1-99  1300-1999<ul><li>检查源地址</li><li>允许、拒绝的是完整协议</li></ul></li><li>扩展   100-199      五要素：源目IP、源目端口、协议号<ul><li>检查源、目的地址</li><li>允许、拒绝某个特定协议</li></ul></li></ul><p><img src="https://files.catbox.moe/k5hk5e.png" alt></p><ul><li>访问列表不能过滤自己产生的数据包—只能过滤穿越流量</li></ul><p>PPP</p><h3 id="NAT-（网络地址转换）"><a href="#NAT-（网络地址转换）" class="headerlink" title="NAT  （网络地址转换）"></a>NAT  （网络地址转换）</h3><ul><li>在出口路由器上来配置</li><li>三种基本实现方式<ul><li>静态NAT     通常用于外网访问内网</li><li>动态NAT   淘汰  一对一</li><li>PAT（端口复用） 多对一     内网访问外网</li></ul></li></ul><h2 id="基础命令"><a href="#基础命令" class="headerlink" title="基础命令"></a>基础命令</h2><h3 id="通用命令"><a href="#通用命令" class="headerlink" title="通用命令"></a>通用命令</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br></pre></td><td class="code"><pre><span class="line">Switch&gt;                  # 用户模式，类似于电脑系统的来宾账户</span><br><span class="line">Switch&gt;enable            # 特权模式，类似于电脑系统的管理员账户，最高权限</span><br><span class="line">Switch#disable # 特权模式的返回命令，可以返回到用户模式</span><br><span class="line">Switch&gt;e? # 字母加？显示当前模式下此字母开头的所有命令，供选择</span><br><span class="line">enable exit # 当前 e 开头的命令有两个</span><br><span class="line">Switch&gt;e # 命令支持简写，但是必须所敲字符已唯一，不唯一会报错</span><br><span class="line">% Ambiguous command: &quot;e&quot; # 由于 e 开头的命令不唯一，所以系统无法识别</span><br><span class="line">Switch&gt;en # en 开头的命令已唯一，系统识别为 enable 命令</span><br><span class="line">Switch# # 使用简写命令 en 成功登陆特权模式</span><br><span class="line">Switch#configure ? # 命令加？可以显示此命令后还可以输入的命令或参数</span><br><span class="line">terminal Configure from the terminal</span><br><span class="line">&lt;cr&gt;</span><br><span class="line">Switch#configure terminal # 进入配置模式，所有的配置均要先进入此模式</span><br><span class="line">Switch(config)#hostname # 配置设备名称</span><br><span class="line">% Incomplete command. # 提示命令输入不完整，说明 hostname 后还需要继续输入</span><br><span class="line">Switch(config)#hostname ? # 可以使用？查看输入提示</span><br><span class="line">WORD This system&apos;s network name # 提示需要输入自定义的系统名称</span><br><span class="line">ccna(config)#hostnameee ccna</span><br><span class="line">^</span><br><span class="line">% Invalid input detected at &apos;^&apos; marker. # 提示^符号对应处命令错误</span><br><span class="line">Switch(config)#hostname ccnp # 修改设备名称为 ccnp</span><br><span class="line">ccnp(config)#no hostname ccnp # 在原命令前配置 no，可以删除已配置命令</span><br><span class="line">Switch(config)#hostname ccna # 重新配置设备名称为 ccna</span><br><span class="line">ccna(config)#no ip domain-lookup # 关闭设备域名解析的功能</span><br><span class="line">ccna(config)#line console 0 # 进入 console 接口</span><br><span class="line">ccna(config-line)#logging synchronous # 开启日志同步功能，配置命令不会被日志打断</span><br><span class="line">ccna(config-line)#exec-timeout 0 0 # 关闭 console 接口配置超时（推荐使用）</span><br><span class="line">ccna(config-line)#no exec-timeout # 关闭console接口配置超时（不推荐使用，不要写成no exec）</span><br><span class="line">ccna(config-line)#exit # 返回命令，一次只能返回一个级别</span><br><span class="line">ccna(config)#end # 返回命令，直接返回到特权模式下</span><br><span class="line">ccna#</span><br><span class="line">ccna #configure terminal</span><br><span class="line">ccna(config)#enable password ccna # 配置明文特权密码，老命令，不安全，不建议使用</span><br><span class="line">ccna(config)#enable secret ccnp # 配置加密特权密码</span><br><span class="line">ccna(config)#line vty ? # 查看当前设备支持的最大虚拟终端线</span><br><span class="line">3</span><br><span class="line">&lt;0-15&gt; First Line number # 当前设备最大支持 16 条虚拟终端线</span><br><span class="line">ccna(config)#line vty 0 8 # 对前 9 条虚拟终端线进行配置</span><br><span class="line">ccna(config-line)#password ccna # 配置 vty 密码，即 telnet 密码</span><br><span class="line">ccna(config-line)#login # 配置 vty 登陆验证</span><br><span class="line">ccna(config-line)#exec-timeout 5 30 # 配置 vty 超时时间为 5 分钟 30 秒</span><br><span class="line">ccna(config-line)#logging synchronous # 开启 vty 日志同步功能</span><br><span class="line">ccna(config-line)#exit</span><br><span class="line">ccna(config)#line console 0 # 进入 console 口</span><br><span class="line">ccna(config-line)#password ccna # 配置 console 口密码</span><br><span class="line">ccna(config-line)#login # 配置 console 口验证</span><br><span class="line">ccna(config)#banner motd # this is ccna # # 配置登录横幅，类似于“声明”</span><br><span class="line">ccna(config)#interface fa0/1 # 进入接口配置模式，配置某个接口</span><br><span class="line">ccna(config-if)#description it,addny,qq,396898532 # 配置接口描述，方便管理</span><br><span class="line">ccna(config-if)#speed ? # 配置端口的速率，可以用？查看当前接口支持的速率</span><br><span class="line">10 Force 10 Mbps operation</span><br><span class="line">100 Force 100 Mbps operation</span><br><span class="line">auto Enable AUTO speed configuration</span><br><span class="line">ccna(config-if)#speed 100 # 配置端口的速率为 100M</span><br><span class="line">ccna(config-if)#duplex ? # 配置端口双工模式，可以用？查看当前接口支持的模式</span><br><span class="line">auto Enable AUTO duplex configuration</span><br><span class="line">full Force full duplex operation</span><br><span class="line">half Force half-duplex operation</span><br><span class="line">ccna(config-if)#duplex full # 配置端口双工模式为全双工</span><br><span class="line">ccna#copy running-config startup-config # 保存配置（标准命令）</span><br><span class="line">ccna#write memory # 保存配置，快捷命令，常用</span><br><span class="line">ccna#reload # 重启设备</span><br><span class="line">ccna#erase startup-config # 清除当前配置，但不清除保存在 Flash 中的配置</span><br></pre></td></tr></table></figure><h3 id="交换机命令"><a href="#交换机命令" class="headerlink" title="交换机命令"></a>交换机命令</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">Switch&gt;</span><br><span class="line">Switch&gt;enable</span><br><span class="line">Switch#configure terminal</span><br><span class="line">Switch(config)#hostname ccna</span><br><span class="line">ccna(config)#interface vlan 1 # 配置 VLAN1 地址即是配置交换机的管理地址</span><br><span class="line">ccna(config-if)#ip address 192.168.1.1 255.255.255.0</span><br><span class="line">ccna(config-if)#no shutdown # 交换机的 VLAN1 虚拟接口需要手工开启</span><br><span class="line">ccna(config-if)#exit</span><br><span class="line">ccna(config)#ip default-gateway 192.168.1.254 # 配置交换机默认网关</span><br></pre></td></tr></table></figure><h3 id="路由命令"><a href="#路由命令" class="headerlink" title="路由命令"></a>路由命令</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">Continue with configuration dialog? [yes/no]: n # 命令 no，跳出对话配置模式</span><br><span class="line">Router&gt;</span><br><span class="line">Router&gt;enable</span><br><span class="line">Router#configure terminal</span><br><span class="line">Router(config)#hostname R1</span><br><span class="line">R1(config)#interface fa0/0 # 配置接口地址，路由器的所有接口都需要配置地址</span><br><span class="line">R1(config-if)#ip address 192.168.1.2 255.255.255.0</span><br><span class="line">R1(config-if)#no shutdown # 路由器的物理接口都需要手工开启</span><br><span class="line">R1(config-if)#inter s0/3/0</span><br><span class="line">R1(config-if)#ip address 192.168.1.3 255.255.255.0</span><br><span class="line">% 192.168.1.0 overlaps with FastEthernet0/0 # 网段和 fa0/0 口重叠，每个端口应配置独立网段</span><br><span class="line">R1(config-if)#ip address 192.168.2.2 255.255.255.0 # 重新配置地址在一个独立的网段</span><br><span class="line">R1(config-if)#no shutdown</span><br><span class="line">R1(config-if)#clock rate 64000 # 配置 DCE 接口时钟频率</span><br><span class="line">R1(config)#config-register 0x2142 # 开机不加载配置文件，常用于密码恢复</span><br></pre></td></tr></table></figure><h3 id="常用show命令"><a href="#常用show命令" class="headerlink" title="常用show命令"></a>常用show命令</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">R1#show running-config # 查看当前配置，包括设备的默认配置</span><br><span class="line">R1#show startup-config # 查看启动配置，即已经保存好的配置</span><br><span class="line">R1#show version # 查看系统版本，即显示系统自检的主要内容</span><br><span class="line">R1#show flash: # 查看 Flash，包含空间大小、使用情况以及文件信息</span><br><span class="line">R1#show interfaces fa0/0 # 显示接口信息，主要显示物理层信息</span><br><span class="line">R1#show ip interface brief # 简要显示所有接口信息，主要包含端口地址以及端口状态</span><br><span class="line">R1(config-if)#do show ip inter bri # 在任何模式都可以使用 do 加查看或者测试命令</span><br><span class="line">R1(config-if)#do ping 192.168.1.254 # 不需要退出即可查看或者测试，非常方便</span><br></pre></td></tr></table></figure><h2 id="相关实验"><a href="#相关实验" class="headerlink" title="相关实验"></a>相关实验</h2><h3 id="VLAN配置"><a href="#VLAN配置" class="headerlink" title="VLAN配置"></a>VLAN配置</h3><p><img src="https://files.catbox.moe/rryd8r.png" alt></p><p>实现不同VLAN之间的通信</p><h3 id="VLAN-trunk配置"><a href="#VLAN-trunk配置" class="headerlink" title="VLAN trunk配置"></a>VLAN trunk配置</h3><p><img src="https://files.catbox.moe/fbknkh.png" alt="1569827759648"></p><h3 id="单臂路由"><a href="#单臂路由" class="headerlink" title="单臂路由"></a>单臂路由</h3><p><img src="https://files.catbox.moe/388rzb.png" alt="1569829654810"></p><h3 id="VTP配置"><a href="#VTP配置" class="headerlink" title="VTP配置"></a>VTP配置</h3><p><img src="https://files.catbox.moe/672u65.png" alt="1569834079597"></p><h3 id="静态路由配置"><a href="#静态路由配置" class="headerlink" title="静态路由配置"></a>静态路由配置</h3><p><img src="https://files.catbox.moe/m425dc.png" alt></p><p><code># ip route 目的网段   子网掩码  下一跳地址/出站接口名称</code></p><p>默认路由：ip route 0 0.0.0.0 0 0.0.0.0 192.168.23.2</p><p><strong>路由器需要学习的是非直连网段的路由条目。</strong></p><h3 id="RIP配置"><a href="#RIP配置" class="headerlink" title="RIP配置"></a>RIP配置</h3><p><img src="https://files.catbox.moe/c46imh.png" alt></p><h3 id="ACL配置"><a href="#ACL配置" class="headerlink" title="ACL配置"></a>ACL配置</h3><p><img src="https://files.catbox.moe/u4qzw9.png" alt></p><h3 id="NAT配置"><a href="#NAT配置" class="headerlink" title="NAT配置"></a>NAT配置</h3>]]></content>
    
    <summary type="html">
    
      &lt;h1 id=&quot;网络基础知识（CCNA）&quot;&gt;&lt;a href=&quot;#网络基础知识（CCNA）&quot; class=&quot;headerlink&quot; title=&quot;网络基础知识（CCNA）&quot;&gt;&lt;/a&gt;网络基础知识（CCNA）&lt;/h1&gt;&lt;h2 id=&quot;基础的基础&quot;&gt;&lt;a href=&quot;#基础的基础&quot; class=&quot;headerlink&quot; title=&quot;基础的基础&quot;&gt;&lt;/a&gt;基础的基础&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;默认时，路由器用来分隔广播域，也分隔冲突域&lt;/li&gt;
&lt;li&gt;交换机用来分隔冲突域（广播域内的冲突），本质上交换机是多端口的网桥，集线器啥都不分隔，连接他的设备只有一个广播域和冲突域。&lt;/li&gt;
&lt;li&gt;OSI模型上三层定义了终端系统中的&lt;strong&gt;应用程序&lt;/strong&gt;将如何彼此通信，以及如何与用户通信；下四层定义了怎么进行&lt;strong&gt;端对端的数据传输&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;在网络层有两种类型的包：&lt;strong&gt;数据包&lt;/strong&gt;和&lt;strong&gt;路由更新包&lt;/strong&gt;。其中路由更新包用来向相邻路由器通告连接到网络的所有路由器的更新信息。发送路由更新包的协议叫主动路由协议。如RIP,OSPF等。&lt;/li&gt;
&lt;li&gt;三层设备定位特定的网络，二层设备定位特定的设备。路由器用路由表”映射“网络，交换机和网桥用过滤表”映射“单个设备。&lt;/li&gt;
&lt;li&gt;阻止广播风暴在互联网络中传播的唯一方法是使用路由器&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A 0-127  保留：10.0.0.0-10.255.255.255&lt;/p&gt;
&lt;p&gt;B 128-191         172.16.0.0-172.31.255.255&lt;/p&gt;
&lt;p&gt;C 192-223         192.168.0.0-192.168.255.255&lt;/p&gt;
&lt;p&gt;DE 用于组播和科学实验&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CSMA/CD 冲突避免机制&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
    
      <category term="CCNA" scheme="http://yoursite.com/tags/CCNA/"/>
    
  </entry>
  
  <entry>
    <title>文件上传</title>
    <link href="http://yoursite.com/2019/10/21/file-upload/"/>
    <id>http://yoursite.com/2019/10/21/file-upload/</id>
    <published>2019-10-21T07:49:01.000Z</published>
    <updated>2019-10-21T08:11:14.065Z</updated>
    
    <content type="html"><![CDATA[<h1 id="文件上传"><a href="#文件上传" class="headerlink" title="文件上传"></a>文件上传</h1><p>一个文件以http协议上传的时候，将以post请求发送至web服务器。服务器接受并同意后，用户与web服务器建立连接，并且传输数据<br><img src="https://files.catbox.moe/mumxwa.png" alt></p><a id="more"></a><h2 id="定义"><a href="#定义" class="headerlink" title="定义"></a>定义</h2><p>由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型，导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP/ASP/JSP文件，并能够将这些文件传递给PHP/ASP/JSP解释器，就可以在远程服务器上执行任意脚本。</p><h2 id="一般文件上传过程中检测部分"><a href="#一般文件上传过程中检测部分" class="headerlink" title="一般文件上传过程中检测部分"></a>一般文件上传过程中检测部分</h2><ul><li>A 客户端javascript检测 （检测文件扩展名）</li><li>B 服务端MIME类型检测 （检测Content—Type）</li><li>C 服务端目录路径检测（检测和path相关参数）</li><li>D 服务端文件扩展名检测 （检测文件扩展名）</li><li>E 服务端内容检测 （检测是否含有恶意代码）</li><li>F WAF设备校验（根据不同的WAF产品而定）</li></ul><h2 id="绕过方式"><a href="#绕过方式" class="headerlink" title="绕过方式"></a>绕过方式</h2><ul><li>客户端js检测文件扩展名<ul><li>burp抓包改包</li></ul></li><li>检测Content—Type<ul><li>burp抓包改包</li></ul></li><li>服务端检测文件扩展名<ul><li>文件名大小写绕过</li><li>黑名单列表绕过，白名单截断</li><li>特殊文件名绕过</li><li>截断绕过</li><li>.htaccess 文件攻击</li></ul></li><li>文件内容检测<ul><li>文件头检测<br><img src="https://files.catbox.moe/iimltx.png" alt></li><li>文件加载检测<ul><li>对渲染/加载测试攻击 代码注入绕过</li><li>二次渲染攻击 攻击加载器</li></ul></li></ul></li><li>解析攻击<ul><li><a href="http://www.91ri.org/7789.html" target="_blank" rel="noopener">Apache 解析漏洞</a></li><li>IIS 解析漏洞</li><li>Nginx 解析漏洞<ul><li>php-cgi</li></ul></li></ul></li></ul><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p><img src="https://files.catbox.moe/g7dqnw.png" alt></p><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><p><a href="https://github.com/cnnetarmy/uploadfile" target="_blank" rel="noopener">文件上传漏洞</a>:流程清晰详细<br><a href="https://thief.one/2016/09/22/%E4%B8%8A%E4%BC%A0%E6%9C%A8%E9%A9%AC%E5%A7%BF%E5%8A%BF%E6%B1%87%E6%80%BB-%E6%AC%A2%E8%BF%8E%E8%A1%A5%E5%85%85/" target="_blank" rel="noopener">绕过总结</a>:绕过细节<br><a href="https://www.jianshu.com/p/4e2248c486ee" target="_blank" rel="noopener">绕过总结2</a><br><a href="http://blog.sina.com.cn/s/blog_61bd83dc0102v12k.html" target="_blank" rel="noopener">文件上传攻击与防御</a>:高级总结<br><a href="https://thief.one/2016/09/21/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A7%A3%E6%9E%90%E6%BC%8F%E6%B4%9E/" target="_blank" rel="noopener">服务器解析漏洞</a><br><a href="https://thief.one/2017/05/25/1/" target="_blank" rel="noopener">浅谈中间件漏洞与防护</a></p><h2 id="upload-labs"><a href="#upload-labs" class="headerlink" title="upload-labs"></a>upload-labs</h2><ol><li>前端js检测，可以禁止js脚本，或者先符合js再抓包改php上传</li><li>MIME检测，只要符合就行</li><li>重写.htaccess文件,抓包上传，在上传名为”03.jpg”的webshell。或者<a href="https://www.waitalone.cn/php-windows-upload.html" target="_blank" rel="noopener">当php邂逅windows通用上传缺陷</a>，先上传3.php:jpg，上传成功但是空白，再上传名为”3.&lt;&lt;&lt;”的webshell</li></ol><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&lt;FilesMatch &quot;03.jpg&quot;&gt;</span><br><span class="line">SetHandler application/x-httpd-php</span><br><span class="line">&lt;/FilesMatch&gt;</span><br></pre></td></tr></table></figure><ol start="4"><li>同3</li><li>服务端扩展名大小写绕</li><li>“php “后加空格绕过</li><li>“php.”绕过</li><li>“php::$DATA”绕过，jut见3中</li><li>“php. .”绕过，利用Windows系统的文件名特性最后的一个.会被去掉</li><li>“phphpp”绕过</li><li>%00截断绕过(GET)</li><li>%00截断绕过(POST)</li></ol><p><strong>小结一下</strong>：除了客户端检测绕过，服务端扩展名的检测首先参考5~12看是否能成功绕过，如果不能尝试3中文章的两个特性，一是php+window+iis环境下</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">双引号(&quot;&quot;&quot;) &lt;==&gt; 点号(&quot;.&quot;);</span><br><span class="line">大于符号(&quot;&gt;&quot;) &lt;==&gt; 问号(&quot;?&quot;);</span><br><span class="line">小于符号(&quot;&lt;&quot;) &lt;==&gt; 星号(&quot;*&quot;);</span><br></pre></td></tr></table></figure><p>二是<br><img src="https://files.catbox.moe/tmtq23.png" alt><br>利用冒号截断产生空白文件+特性一匹配任意字符覆盖文件内容可成功绕过，特性二如未过滤也可成功绕过。最后就是如果具有服务器解析漏洞那就是通杀了，比如<strong>使用module模式与php结合的所有版本apache存在未知扩展名解析漏洞，当把httpd.conf配置文件中#AddType application/x-httpd-php .php .phtml注释符去掉，形如这样的文件名”f4ck.php.x”,基本上可以绕过过滤作为php文件解析。不然上传此文件名绘本当成配置中的默认格式处理，通常是文本格式。</strong></p><ol start="13"><li>gif加图片文件头绕过，或者直接在图片中加马两种方式，一：</li></ol><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">使用CMD制作一句话木马。</span><br><span class="line">参数/b指定以二进制格式复制、合并文件; 用于图像类/声音类文件</span><br><span class="line">参数/a指定以ASCII格式复制、合并文件。用于txt等文档类文件</span><br><span class="line">copy 1.jpg/b+1.php 2.jpg </span><br><span class="line">//意思是将1.jpg以二进制与1.php合并成2.jpg</span><br><span class="line">那么2.jpg就是图片木马了。</span><br></pre></td></tr></table></figure><p>二是直接hex工具打开添加一句话<br><img src="https://files.catbox.moe/i6aaji.png" alt><br>在自己进行本地包含用菜刀连的时候发现一直报语法错误，因为编码或者图片的问题，最后用很小的图片成功连接<br><img src="https://files.catbox.moe/16rzsq.png" alt><br><img src="https://files.catbox.moe/hr18ox.png" alt></p><ol start="14"><li>同13</li><li>同13</li><li>这一题要求上传png,gif,jpg三种格式图片，再上传后会对图片进行渲染重新生成，方法是写脚本对比找出不变的部分插入一句话，比较有趣的就是渲染时文件头不会变化，直接在文件头插入一句话虽然报错但成功上传文件名也不变。脚本以后碰到实战学习。</li><li>“.php:.jpg”冒号截断上传空文件，”.&lt;&lt;&lt;”成功覆盖</li><li>上传重命名竞争+Apache解析漏洞（作者环境）</li><li>“.php.”绕过</li></ol><p><a href="https://fuping.site/2018/06/04/upload-labs-writeup/" target="_blank" rel="noopener">题解1</a><br><a href="https://github.com/LandGrey/upload-labs-writeup" target="_blank" rel="noopener">题解2</a></p>]]></content>
    
    <summary type="html">
    
      &lt;h1 id=&quot;文件上传&quot;&gt;&lt;a href=&quot;#文件上传&quot; class=&quot;headerlink&quot; title=&quot;文件上传&quot;&gt;&lt;/a&gt;文件上传&lt;/h1&gt;&lt;p&gt;一个文件以http协议上传的时候，将以post请求发送至web服务器。服务器接受并同意后，用户与web服务器建立连接，并且传输数据&lt;br&gt;&lt;img src=&quot;https://files.catbox.moe/mumxwa.png&quot; alt&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="file_upload" scheme="http://yoursite.com/tags/file-upload/"/>
    
  </entry>
  
  <entry>
    <title>防火墙知识学习(一)</title>
    <link href="http://yoursite.com/2019/10/14/FW/"/>
    <id>http://yoursite.com/2019/10/14/FW/</id>
    <published>2019-10-14T07:18:44.000Z</published>
    <updated>2019-10-14T07:28:15.724Z</updated>
    
    <content type="html"><![CDATA[<h3 id="防火墙知识学习-一"><a href="#防火墙知识学习-一" class="headerlink" title="防火墙知识学习(一)"></a>防火墙知识学习(一)</h3><h3 id="基础知识篇"><a href="#基础知识篇" class="headerlink" title="基础知识篇"></a>基础知识篇</h3><h4 id="安全区域"><a href="#安全区域" class="headerlink" title="安全区域"></a>安全区域</h4><ul><li>安全区域（Security Zone）: 是一个或多个接口的集合，是防火墙区别于路由器的主要特性。华为防火墙默认提供三个安全区域，分别是Trust(85)、DMZ(50)、Untrust(5)，还有一个防火墙本身Local(100)区域</li><li><strong>报文从低级别的安全区域向高级别的安全区域流动时为入方向（Inbound ），报文从由高级别的安全区域向低级别的安全区域流动时为出方向（Outbound）。</strong></li><li>防火墙通过安全区域来划分网络、标识报文流动的“路线”，当报文在不同的安全区域之间流动时，才会触发安全检查。</li></ul><a id="more"></a><h4 id="基于会话的状态检测"><a href="#基于会话的状态检测" class="headerlink" title="基于会话的状态检测"></a>基于会话的状态检测</h4><ul><li>状态检测防火墙使用基于连接状态的检测机制，将通信双方之间交互的属于同一连接的所有报文都作为整体的数据流来对待。</li><li>会话是通信双方的连接在防火墙上的具体体现，代表两者的连接状态，一条会话就表示通信双方的一个连接。</li></ul><h3 id="安全策略篇"><a href="#安全策略篇" class="headerlink" title="安全策略篇"></a>安全策略篇</h3><ul><li>对于同一条数据流，在访问发起的方向上应用安全策略即可，反向报文不需<br>要额外的策略。</li><li>对于同一条数据流只有首包匹配安全策略并建立会话，后续包都匹配会话转发。</li><li>实现包过滤的核心技术是访问控制列表 ACL。</li><li>NGFW 的安全策略应用在全局，安全区域与 IP 地址等一样只是作为可选的匹配条件。</li><li>ASPF（Application Specific Packet Filter）： 是针对应用层的包过滤，其原理是检测通过设备的报文的应用层协议信息，记录临时协商的数据连接，使得某些在安全策略中没有明确定义要放行的报文也能够得到正常转发。下图Server1为FTP服务器，演示了ASPF</li></ul><p><img src="https://files.catbox.moe/f8b9s4.png" alt></p><h3 id="攻击防范篇"><a href="#攻击防范篇" class="headerlink" title="攻击防范篇"></a>攻击防范篇</h3><h4 id="单包攻击"><a href="#单包攻击" class="headerlink" title="单包攻击"></a>单包攻击</h4><ul><li>Ping of Death<ul><li>防火墙在处理 Ping of Death 攻击报文时，是通过判定数据包的大小是否大于 65535 字节，如果数据包大于 65535 字节，则判定为攻击报文，直接丢弃。</li></ul></li><li>Land 攻击<ul><li>Land 攻击是指攻击者向受害者发送伪造的 TCP 报文，此 TCP 报文的源地址和目的地址同为受害者的 IP 地址。这将导致受害者向它自己的地址发送回应报文，从而造成资源的消耗。</li><li>防火墙在处理Land攻击报文时，通过检查TCP报文的源地址和目的地址是否相同，或者TCP报文的源地址是否为环回地址，如果是则丢弃。</li></ul></li><li>IP 地址扫描攻击<ul><li>防火墙对收到的 TCP、UDP、ICMP 报文进行检测，当某源 IP 地址连续发送报文的目的 IP地址与前一个报文的目的 IP 地址不同时，则记为一次异常，当异常次数超过预定义的阈值时，则认为该源 IP 的行为为 IP 地址扫描行为，防火墙会将该源 IP 地址加入黑名单。</li></ul></li></ul><h4 id="流量型攻击-：-SYN-Flood"><a href="#流量型攻击-：-SYN-Flood" class="headerlink" title="流量型攻击 ： SYN Flood"></a>流量型攻击 ： SYN Flood</h4><ul><li>防火墙针对 SYN Flood 攻击，一般会采用 TCP 代理和源探测两种方式进行防御。</li><li>TCP 代理是指我们的防火墙部署在客户端和服务器中间，当客户端向服务器发送的 SYN 报文经过防火墙时，防火墙代替服务器与客户端建立三次握手。一般<strong><a href="http://www.vants.org/?post=217" target="_blank" rel="noopener">用于报文来回路径一致</a></strong>的场景。  :question:报文路径一致知识点</li><li>源探测<ul><li>当防火墙收到客户端发送的 SYN 报文时，对 SYN 报文进行拦截，并伪造一个带有错误序列号的的 SYN+ACK 报文回应给客户端。</li><li>如果客户端是虚假源，则不会对错误的 SYN+ACK 报文进行回应。</li><li>如果客户端是真实源发送的正常请求 SYN 报文，当收到错误的 SYN+ACK 报文时，会再发出一个 RST 报文，让防火墙重新发一个正确的 SYN+ACK 报文；防火墙收到这个 RST报文后，判定客户端为真实源，则将这个源加入白名单，在白名单老化前，这个源发出的报文都认为是合法的报文，防火墙直接放行，不在做验证。</li></ul></li></ul><p><img src="https://files.catbox.moe/prsqa3.png" alt="1570676001162"></p><ul><li>华为专业 AntiDDoS 设备正是利用了 TCP 这种重传的机制，推出“首包丢弃”功能与“TCP 源探测”结合的防御方式，以应对超大流量的 SYN Flood 攻击。当 SYN报文蜂拥而至时，专业 AntiDDoS 设备会将收到的第一个报文记录并直接丢弃，然后等待第二个重传报文。收到重传报文后，再对重传报文进行源探测。</li></ul><h4 id="流量型攻击-：-UDP-Flood"><a href="#流量型攻击-：-UDP-Flood" class="headerlink" title="流量型攻击 ： UDP Flood"></a>流量型攻击 ： UDP Flood</h4><ul><li>UDP 具有 TCP 所望尘莫及的速度优势。</li><li>防火墙防御 UDP Flood 攻击主要有两种方式：限流和指纹学习</li><li>限流<ul><li>基于目的 IP 地址的限流：即以某个 IP 地址作为统计对象，对到达这个 IP 地址的 UDP流量进行统计并限流，超过部分丢弃。</li><li>基于目的安全区域的限流：即以某个安全区域作为统计对象，对到达这个安全区域的 UDP流量进行统计并限流，超过部分丢弃。</li><li>基于会话的限流：即对每条 UDP 会话上的报文速率进行统计，如果会话上的 UDP 报文速率达到了告警阈值，这条会话就会被锁定，后续命中这条会话的 UDP 报文都被丢弃。当这条会话连续 3 秒或者 3 秒以上没有流量时，防火墙会解锁此会话，后续命中此会话的报文可以继续通过。</li></ul></li><li>指纹学习</li></ul><p><img src="https://files.catbox.moe/rj8pk4.png" alt></p><ul><li>指纹学习是通过分析客户端向服务器发送的 UDP 报文载荷是否有大量的一致内容，来判定这个 UDP 报文是否异常。</li></ul><h4 id="应用层攻击-：DNS-Flood"><a href="#应用层攻击-：DNS-Flood" class="headerlink" title="应用层攻击 ：DNS Flood"></a>应用层攻击 ：DNS Flood</h4><ul><li>常见的 DNS Flood 攻击一般都是攻击者向 DNS 服务器发送大量的不存在的域名解析请求，导致 DNS 缓存服务器不停向授权服务器发送解析请求，最终导致 DNS 缓存服务器瘫痪，影响对正常请求的回应。</li><li>DNS服务器可以设定使用TCP连接。当客户端向 DNS 服务器发起查询请求时，DNS 回应报文里有一个 TC 标志位，如果 TC 标志位置 1，就表示需要通过 TCP 方式查询。我们的防火墙就是利用这一机制对 DNS Flood 攻击进行防御。</li><li>防御流程图：</li></ul><p><img src="https://files.catbox.moe/imnhco.png" alt></p><h4 id="应用层攻击-：HTTP-Flood"><a href="#应用层攻击-：HTTP-Flood" class="headerlink" title="应用层攻击 ：HTTP Flood"></a>应用层攻击 ：HTTP Flood</h4><ul><li>常见的 HTTP Flood 攻击，一般指黑客通过代理或僵尸主机向目标服务器发起大量的 HTTP报文，这些请求涉及数据库操作的 URI 或其它消耗系统资源的 URI，目的是为了造成服务器资源耗尽，无法响应正常请求。</li><li>防火墙对于 HTTP Flood 的防御，主要依靠 HTTP 协议所支持的重定向方式，譬如说客户端向服务器请求 <a href="http://www.sina.com" target="_blank" rel="noopener">www.sina.com</a> ，服务器可以返回一个命令，让客户端改为访问 <a href="http://www.sohu.com。" target="_blank" rel="noopener">www.sohu.com。</a> 这种重定向的命令在 HTTP 协议栈中是合法的。我们防火墙的防御机制就是利用这个技术点，来探测 HTTP 客户端是否为真实存在的主机。</li><li>防御流程图：</li></ul><p><img src="https://files.catbox.moe/ntz0he.png" alt></p><h3 id="NAT篇"><a href="#NAT篇" class="headerlink" title="NAT篇"></a>NAT篇</h3><h4 id="源NAT"><a href="#源NAT" class="headerlink" title="源NAT"></a>源NAT</h4><ul><li>NAT No-PAT  /  NAPT(PAT)</li></ul><p><img src="https://files.catbox.moe/4jb2zz.png" alt></p><figure class="highlight plain"><figcaption><span>配置ip</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"># 配置IP</span><br><span class="line">int g0/0/0</span><br><span class="line">ip add 192.168.0.1 24</span><br><span class="line"></span><br><span class="line"># 加入安全域</span><br><span class="line">firewall zone trust</span><br><span class="line">add int g0/0/0</span><br><span class="line"></span><br><span class="line">## 建立地址池</span><br><span class="line">nat address-group 1 202.30.1.1 202.30.1.2</span><br><span class="line">## 配置NAT策略</span><br><span class="line">nat-policy interzone trust untrust outbound</span><br><span class="line"> policy 1</span><br><span class="line"> action source-nat</span><br><span class="line"> policy source 192.168.0.0 0.0.0.255</span><br><span class="line"> address-group 1 no-pat  //ip变，端口不变</span><br><span class="line"></span><br><span class="line">## 配置安全策略</span><br><span class="line">policy interzone turst untrust outbound</span><br><span class="line"> policy 1</span><br><span class="line">  action permit</span><br><span class="line">  policy source 192.168.0.0 0.0.0.255</span><br><span class="line"></span><br><span class="line">## 配置黑洞路由</span><br><span class="line">ip route-static 202.30.1.1 255.255.255.255 NULL0</span><br><span class="line">ip route-static 202.30.1.2 255.255.255.255 NULL0</span><br></pre></td></tr></table></figure><ul><li>easy-ip : 出接口地址方式</li></ul><p><img src="https://files.catbox.moe/a7rfur.png" alt></p><ul><li>Smart NAT （仅高端防火墙支持）<ul><li>假设 Smart NAT 使用的地址池中包含 N 个 IP，其中一个 IP 被指定为预留地址，另外N-1 个地址构成地址段 1（section 1）。进行 NAT 转换时，Smart NAT 会先使用 section 1 做NAT No-PAT 类型的转换，当 section 1 中的 IP 都被占用后，才使用预留 IP 做 NAPT 类型的转换。</li><li>Smart NAT 可以理解为是对 NAT No-PAT 功能的增强，他防止了用户数量激增导致大量用户不能上网的情况，即克服了 NAT No-PAT 的缺点——只能让有限的用户上网，当用户数量大于地址池中 IP 数量时，后面的用户将无法上网，只能等待公网 IP 被释放（会话老化）。Smart NAT 预留一个公网 IP 做 NAPT 后，无论有多少新增用户需要上网，都能满足其需求。</li></ul></li><li>三元组 NAT（仅高端防火墙支持）<ul><li>支持外网主动访问 —-无论内网主机是否主动访问过某个外网主机，只要外网主机知道内网主机 NAT 转换后的地址和端口，就可以主动向该内网主机发起访问。</li><li>动态对外端口一致性—–内网主机做 NAT 转换后的地址和端口将在一段时间内保持不变，在此时间内段，内网主机固定地使用此 NAT 后地址和端口访问任意外网主机，任意外网主机也可以通过此 NAT 后地址和端口访问内网主机。</li><li>从实现原理角度讲，三元组 NAT 是通过 Server-map 表使外网主机可以主动访问内网主机，并保证 NAT 转换关系在一段时间内保持不变。</li></ul></li></ul><h4 id="NAT-Server"><a href="#NAT-Server" class="headerlink" title="NAT Server"></a>NAT Server</h4><ul><li><p>源 NAT 是对私网用户访问公网的报文的源地址进行转换，而服务器对公网提供服务时，是公网用户向私网发起访问，方向正好反过来了。于是，NAT 转换的目标也由报文的源地址变成了目的地址。针对服务器的地址转换，我们赋予了它一个形象的名字——NAT Server（服务器映射）。</p></li><li><p>32字真言</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">一正一反，出入自如 去反存正，自断出路</span><br><span class="line">#[FW] nat server protocol tcp global 1.1.1.1 9980 inside 192.168.1.2 80 no-reverse //去反</span><br><span class="line">一分为二，源进源回 虚实变换，合二为一</span><br><span class="line">reverse-route next-hop next-hop-address  //源进源回</span><br><span class="line">[FW1] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80 vrrp 1 //虚实结合 合二为一</span><br></pre></td></tr></table></figure></li></ul><h5 id="NAT-Server-基础"><a href="#NAT-Server-基础" class="headerlink" title="NAT Server 基础"></a>NAT Server 基础</h5><p><img src="https://files.catbox.moe/gs2wq7.png" alt></p><ul><li>与 ASPF Server-map 表项的动态老化不同的是，NAT Server 的 Server-map 表项是静态的，只有当 NAT Server 配置被删除时，对应的 Server-map 表项才会被删除。</li><li>对 NAT Server的正反 Server-map 表项作用，配置命令中的两个重要的参数 no-reverse、vrrp 的使用方法，以及多出口 NAT Server 的配置方法等都有了更加全面和深入的了解。</li></ul><h4 id="双向NAT"><a href="#双向NAT" class="headerlink" title="双向NAT"></a>双向NAT</h4><p><img src="https://files.catbox.moe/zuwg9v.png" alt="1570852866223"></p><p><img src="https://files.catbox.moe/gs97ca.png" alt="1570852893595"></p><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><p><a href="https://forum.huawei.com/enterprise/zh/thread-331003.html" target="_blank" rel="noopener">强叔侃墙</a></p><p><a href="https://blog.csdn.net/foamy_3379/article/details/45103967" target="_blank" rel="noopener">华为防火墙安全策略配置</a></p>]]></content>
    
    <summary type="html">
    
      &lt;h3 id=&quot;防火墙知识学习-一&quot;&gt;&lt;a href=&quot;#防火墙知识学习-一&quot; class=&quot;headerlink&quot; title=&quot;防火墙知识学习(一)&quot;&gt;&lt;/a&gt;防火墙知识学习(一)&lt;/h3&gt;&lt;h3 id=&quot;基础知识篇&quot;&gt;&lt;a href=&quot;#基础知识篇&quot; class=&quot;headerlink&quot; title=&quot;基础知识篇&quot;&gt;&lt;/a&gt;基础知识篇&lt;/h3&gt;&lt;h4 id=&quot;安全区域&quot;&gt;&lt;a href=&quot;#安全区域&quot; class=&quot;headerlink&quot; title=&quot;安全区域&quot;&gt;&lt;/a&gt;安全区域&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;安全区域（Security Zone）: 是一个或多个接口的集合，是防火墙区别于路由器的主要特性。华为防火墙默认提供三个安全区域，分别是Trust(85)、DMZ(50)、Untrust(5)，还有一个防火墙本身Local(100)区域&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;报文从低级别的安全区域向高级别的安全区域流动时为入方向（Inbound ），报文从由高级别的安全区域向低级别的安全区域流动时为出方向（Outbound）。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;防火墙通过安全区域来划分网络、标识报文流动的“路线”，当报文在不同的安全区域之间流动时，才会触发安全检查。&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
    
      <category term="Firewall" scheme="http://yoursite.com/tags/Firewall/"/>
    
  </entry>
  
  <entry>
    <title>SQL基础（一）</title>
    <link href="http://yoursite.com/2019/09/23/SQL%E5%9F%BA%E7%A1%80%EF%BC%88%E4%B8%80%EF%BC%89/"/>
    <id>http://yoursite.com/2019/09/23/SQL基础（一）/</id>
    <published>2019-09-23T09:58:06.000Z</published>
    <updated>2019-09-23T12:38:28.890Z</updated>
    
    <content type="html"><![CDATA[<h1 id="SQL基础（一）"><a href="#SQL基础（一）" class="headerlink" title="SQL基础（一）"></a>SQL基础（一）</h1><h2 id="sqli-labs安装配置"><a href="#sqli-labs安装配置" class="headerlink" title="sqli-labs安装配置"></a>sqli-labs安装配置</h2><p>基本环境</p><ul><li><a href="http://phpstudy.php.cn/" target="_blank" rel="noopener">phpStudy</a>:php5.4.0+Apache+mysql</li><li><a href="https://github.com/Audi-1/sqli-labs" target="_blank" rel="noopener">sqli-labs</a></li></ul><p>将sqli-labs下载放到phpStudy的WWW目录下，在db-creds.inc文件中填写mysql的用户名密码，然后打开浏览器与数据库mysql连接，将题目的数据库导入到mysql中，网上都有教程<br>配置时一直连不上mysql,通过搜索试图用以下方法解决</p><ul><li>git下来后，class-20文件夹感叹号，尝试重新下载</li><li>修改php版本，保证函数兼容</li><li>查看端口是否一致</li></ul><p>配置成功条件：</p><ul><li>php在7.0版本以下</li><li>mysql端口保证默认3306</li></ul><a id="more"></a><h2 id="SQL注入基础"><a href="#SQL注入基础" class="headerlink" title="SQL注入基础"></a>SQL注入基础</h2><p><strong>原理</strong>：数据被当做命令执行，对数据库操作<br>1，按<strong>参数类型</strong>分类：数字型，字符型<br>2，按<strong>数据库返回结果</strong>分类：回显，报错，盲注<br>3，按<strong>注入位置</strong>分类：post注入，get注入，cookie注入，盲注，延时注入，搜索注入，base64注入，无论此种分类如何多，都可以归纳为以上两种形式。<br><strong>基本语句</strong>：<br>判断注入：</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">'</span><br><span class="line">and 1=1</span><br><span class="line">and 1=2</span><br></pre></td></tr></table></figure><p>查看字段数（列数）</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">order by 数字    <span class="comment">#当数字超过字段数返回错误</span></span><br><span class="line">union <span class="keyword">select</span> <span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,..,n    <span class="comment">#匹配字段，是否回显及位置</span></span><br></pre></td></tr></table></figure><p>暴数据库信息</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">union <span class="keyword">select</span> <span class="number">1</span>,<span class="keyword">concat_ws</span>(<span class="built_in">char</span>(<span class="number">32</span>,<span class="number">58</span>,<span class="number">32</span>),<span class="keyword">database</span>(),<span class="keyword">version</span>(),<span class="keyword">user</span>()),<span class="number">3</span>   <span class="comment">#库名，用户及版本信息</span></span><br></pre></td></tr></table></figure><p>Mysql 5 以上有内置库 information_schema，存储着mysql的所有数据库和表结构信息</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">库名 and 1=2 union <span class="keyword">select</span> <span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,SCHEMA_NAME,<span class="number">5</span>,<span class="number">6</span>,<span class="number">7</span>,<span class="number">8</span>,<span class="number">9</span>,<span class="number">10</span> <span class="keyword">from</span> information_schema.SCHEMATA <span class="keyword">limit</span> <span class="number">0</span>,<span class="number">1</span>  </span><br><span class="line">表名 <span class="keyword">and</span> <span class="number">1</span>=<span class="number">2</span> <span class="keyword">union</span> <span class="keyword">select</span> <span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,TABLE_NAME,<span class="number">5</span>,<span class="number">6</span>,<span class="number">7</span>,<span class="number">8</span>,<span class="number">9</span>,<span class="number">10</span> <span class="keyword">from</span> information_schema.TABLES <span class="keyword">where</span> TABLE_SCHEMA=数据库（十六进制） <span class="keyword">limit</span> <span class="number">0</span>（开始的记录，<span class="number">0</span>为第一个开始记录）,<span class="number">1</span>（显示<span class="number">1</span>条记录）</span><br><span class="line">字段 <span class="keyword">and</span> <span class="number">1</span>=<span class="number">2</span> <span class="keyword">Union</span> <span class="keyword">select</span> <span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>,COLUMN_NAME,<span class="number">5</span>,<span class="number">6</span>,<span class="number">7</span>,<span class="number">8</span>,<span class="number">9</span>,<span class="number">10</span> <span class="keyword">from</span> information_schema.COLUMNS <span class="keyword">where</span> TABLE_NAME=表名（十六进制）<span class="keyword">limit</span> <span class="number">0</span>,<span class="number">1</span></span><br></pre></td></tr></table></figure><h2 id="sqli-labs题目"><a href="#sqli-labs题目" class="headerlink" title="sqli-labs题目"></a>sqli-labs题目</h2><p>方法：尝试注入，成功与否都进行代码审计，再不懂搜索。看代码弄通每一步的逻辑。<br>class_1:报错注入，字符型，闭合’<br>class_2:报错注入，整形<br>class_3:报错注入，字符型，闭合’)<br>class_4:报错注入，字符型，闭合”<br>class_5:<a href="https://www.2cto.com/article/201303/192718.html" target="_blank" rel="noopener">双查询注入</a>，字符型，闭合’<br>class_6:双查询注入，字符型，闭合”</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">http://127.0.0.1:8088/sql/Less-6/?id=1&quot; union select count(*),1,concat((select password from users limit 0,1), &apos;~&apos;,floor(rand()*2)) as a from information_schema.tables group by a%23</span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      &lt;h1 id=&quot;SQL基础（一）&quot;&gt;&lt;a href=&quot;#SQL基础（一）&quot; class=&quot;headerlink&quot; title=&quot;SQL基础（一）&quot;&gt;&lt;/a&gt;SQL基础（一）&lt;/h1&gt;&lt;h2 id=&quot;sqli-labs安装配置&quot;&gt;&lt;a href=&quot;#sqli-labs安装配置&quot; class=&quot;headerlink&quot; title=&quot;sqli-labs安装配置&quot;&gt;&lt;/a&gt;sqli-labs安装配置&lt;/h2&gt;&lt;p&gt;基本环境&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://phpstudy.php.cn/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;phpStudy&lt;/a&gt;:php5.4.0+Apache+mysql&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/Audi-1/sqli-labs&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;sqli-labs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;将sqli-labs下载放到phpStudy的WWW目录下，在db-creds.inc文件中填写mysql的用户名密码，然后打开浏览器与数据库mysql连接，将题目的数据库导入到mysql中，网上都有教程&lt;br&gt;配置时一直连不上mysql,通过搜索试图用以下方法解决&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;git下来后，class-20文件夹感叹号，尝试重新下载&lt;/li&gt;
&lt;li&gt;修改php版本，保证函数兼容&lt;/li&gt;
&lt;li&gt;查看端口是否一致&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配置成功条件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;php在7.0版本以下&lt;/li&gt;
&lt;li&gt;mysql端口保证默认3306&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
    
      <category term="SQL注入" scheme="http://yoursite.com/tags/SQL%E6%B3%A8%E5%85%A5/"/>
    
  </entry>
  
  <entry>
    <title>Pentest Wiki</title>
    <link href="http://yoursite.com/2019/08/19/WIKI/"/>
    <id>http://yoursite.com/2019/08/19/WIKI/</id>
    <published>2019-08-19T09:58:06.000Z</published>
    <updated>2019-08-20T05:33:49.696Z</updated>
    
    <content type="html"><![CDATA[<h2 id="越权"><a href="#越权" class="headerlink" title="越权"></a>越权</h2><p>通常情况下，我们使用一个web应用程序提供的功能时，流程是：登录—&gt;提交请求—&gt;验证权限—&gt;数据库查询—&gt;返回结果。如果在“验证权限”环节存在缺陷，那么便会导致越权。</p><p><a href="http://www.hackdig.com/11/hack-40894.htm" target="_blank" rel="noopener">越权那些事儿</a><br><a href="http://wooyun.jozxing.cc/static/drops/tips-727.html" target="_blank" rel="noopener">越权之道</a></p><a id="more"></a><h2 id="DNS域传送"><a href="#DNS域传送" class="headerlink" title="DNS域传送"></a>DNS域传送</h2><p>DNS服务器分为：主服务器、备份服务器和缓存服务器。在主备服务器之间同步数据库，需要使用“DNS域传送”。<strong>域传送是指后备服务器从主服务器拷贝数据，并用得到的数据更新自身数据库。</strong> 这样是为了增加冗余，万一主服务器挂了还有备份服务器顶着。而“域传送”漏洞则是由于dns配置不当，本来只有备份服务器能获得主服务器的数据，由于漏洞导致任意client都能通过“域传送”获得主服务器的数据（zone数据库信息）。这样，攻击者就能获得某个域的所有记录，甚至整个网络拓扑都暴露无遗，同时节省了信息收集的时间，还提升了准确度。</p><p><a href="http://drops.xmd5.com/static/drops/papers-64.html" target="_blank" rel="noopener">DNS域传送信息泄露</a><br><a href="http://www.lijiejie.com/dns-zone-transfer-1/" target="_blank" rel="noopener">nslookup,dig,nmap验证</a></p><h2 id="命令执行"><a href="#命令执行" class="headerlink" title="命令执行"></a>命令执行</h2><p><a href="https://www.jianshu.com/p/1e706f13b088" target="_blank" rel="noopener">原理、利用条件、利用、建议</a><br><a href="https://chybeta.github.io/2017/08/08/php%E4%BB%A3%E7%A0%81-%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/" target="_blank" rel="noopener">具体用法</a></p><h2 id="代码执行"><a href="#代码执行" class="headerlink" title="代码执行"></a>代码执行</h2><p><a href="https://www.jianshu.com/p/3f0cf18adbe7" target="_blank" rel="noopener">原理、利用条件、利用、建议</a></p><h2 id="PHP反序列化漏洞"><a href="#PHP反序列化漏洞" class="headerlink" title="PHP反序列化漏洞"></a>PHP反序列化漏洞</h2><p><a href="https://chybeta.github.io/2017/06/17/%E6%B5%85%E8%B0%88php%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E/" target="_blank" rel="noopener">看的明明白白</a></p><h2 id="文件下载"><a href="#文件下载" class="headerlink" title="文件下载"></a>文件下载</h2><h2 id="信息泄露"><a href="#信息泄露" class="headerlink" title="信息泄露"></a>信息泄露</h2><p><a href="https://www.jianshu.com/p/be2cac664eb5" target="_blank" rel="noopener">敏感信息</a><br><a href="https://www.anquanke.com/post/id/94787" target="_blank" rel="noopener">信息泄露之总结</a></p><h2 id="逻辑漏洞"><a href="#逻辑漏洞" class="headerlink" title="逻辑漏洞"></a>逻辑漏洞</h2><p><a href="https://www.jianshu.com/p/7501f2e20626" target="_blank" rel="noopener">密码找回漏洞、多线程条件竞争漏洞和支付漏洞理解</a><br><a href="http://wooyun.jozxing.cc/static/drops/web-5048.html" target="_blank" rel="noopener">密码找回逻辑漏洞总结</a><br><a href="http://wooyun.jozxing.cc/static/drops/papers-345.html" target="_blank" rel="noopener">在线支付逻辑漏洞总结</a></p><h2 id="Access数据库注入"><a href="#Access数据库注入" class="headerlink" title="Access数据库注入"></a>Access数据库注入</h2><p>判断方式：<br>如果目标数据库同时支持len函数和chr函数，且不支持length和char函数，则很可能是Access数据库。在不返回报错信息的情况下，这种方式是我最常用的。</p><p>access数据库默认不允许访问系统表，常规方式只能通过爆破或者根据之前收集的信息进行猜解表名和字段，常用payload：</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">AND exists(<span class="keyword">select</span> * <span class="keyword">from</span> tablename)</span><br><span class="line"><span class="keyword">AND</span> (<span class="keyword">SELECT</span> TOP <span class="number">1</span> <span class="number">1</span> <span class="keyword">FROM</span> TableNameToBruteforce[i])</span><br><span class="line"><span class="keyword">AND</span> exist(<span class="keyword">select</span> fieldname <span class="keyword">from</span> tablename)</span><br><span class="line"><span class="keyword">AND</span> <span class="keyword">IIF</span>((<span class="keyword">SELECT</span> <span class="keyword">COUNT</span>(*) <span class="keyword">FROM</span> validTableName) = X, <span class="number">1</span>, <span class="number">0</span>)</span><br></pre></td></tr></table></figure><p><a href="https://blog.csdn.net/happyorange2014/article/details/49754951" target="_blank" rel="noopener">总结</a></p><h2 id="CSRF"><a href="#CSRF" class="headerlink" title="CSRF"></a>CSRF</h2><p><a href="http://www.freebuf.com/column/151816.html" target="_blank" rel="noopener">各大SRC中的CSRF技巧</a>：原理思想，利用，防御，很清晰</p><h2 id="SSRF"><a href="#SSRF" class="headerlink" title="SSRF"></a>SSRF</h2><p><a href="http://www.freebuf.com/articles/web/20407.html" target="_blank" rel="noopener">SSRF攻击实例解析</a></p><h2 id="XXE"><a href="#XXE" class="headerlink" title="XXE"></a>XXE</h2><p><a href="https://thief.one/2017/06/20/1/" target="_blank" rel="noopener">浅谈XXE漏洞攻击与防御</a><br><a href="https://b1ngz.github.io/XXE-learning-note/" target="_blank" rel="noopener">XXE漏洞的简单理解和测试</a><br><a href="https://chybeta.github.io/2017/07/04/%E5%B0%8F%E8%AF%95XML%E5%AE%9E%E4%BD%93%E6%B3%A8%E5%85%A5%E6%94%BB%E5%87%BB/" target="_blank" rel="noopener">小试XML实体注入攻击</a><br><a href="https://k4ngx.github.io/2018/03/04/xxe/#XML%E4%B8%8EDTD%E7%9A%84%E5%85%B3%E7%B3%BB" target="_blank" rel="noopener">康师傅</a>：膜</p>]]></content>
    
    <summary type="html">
    
      &lt;h2 id=&quot;越权&quot;&gt;&lt;a href=&quot;#越权&quot; class=&quot;headerlink&quot; title=&quot;越权&quot;&gt;&lt;/a&gt;越权&lt;/h2&gt;&lt;p&gt;通常情况下，我们使用一个web应用程序提供的功能时，流程是：登录—&amp;gt;提交请求—&amp;gt;验证权限—&amp;gt;数据库查询—&amp;gt;返回结果。如果在“验证权限”环节存在缺陷，那么便会导致越权。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.hackdig.com/11/hack-40894.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;越权那些事儿&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://wooyun.jozxing.cc/static/drops/tips-727.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;越权之道&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="Pentest" scheme="http://yoursite.com/tags/Pentest/"/>
    
  </entry>
  
</feed>
