<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Echo战队培训系列 on Red的小屋</title><link>https://redshome.top/tags/echo%E6%88%98%E9%98%9F%E5%9F%B9%E8%AE%AD%E7%B3%BB%E5%88%97/</link><description>Recent content in Echo战队培训系列 on Red的小屋</description><image><title>Red的小屋</title><url>https://redshome.top/images/papermod-cover.png</url><link>https://redshome.top/images/papermod-cover.png</link></image><generator>Hugo -- 0.140.2</generator><language>hk</language><copyright>Red</copyright><lastBuildDate>Sat, 13 Apr 2024 00:00:00 +0800</lastBuildDate><atom:link href="https://redshome.top/tags/echo%E6%88%98%E9%98%9F%E5%9F%B9%E8%AE%AD%E7%B3%BB%E5%88%97/index.xml" rel="self" type="application/rss+xml"/><item><title>AWD与ISW</title><link>https://redshome.top/posts/2024-04-13-awd%E4%B8%8Eisw/</link><pubDate>Sat, 13 Apr 2024 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2024-04-13-awd%E4%B8%8Eisw/</guid><description>&lt;h2 id="awd">AWD&lt;/h2>
&lt;p>西安交大的大佬给我们队现阶段打AWD的建议：别怕，很多人也没打过，在大家实力都差不多的时候，就是拼前期准备和**&lt;em>速度&lt;/em>**&lt;/p>
&lt;h3 id="加固阶段防御">加固阶段防御&lt;/h3>
&lt;h4 id="修改密码">修改密码&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>1.改linux用户密码：&lt;/strong>&lt;/li>
&lt;/ul>
&lt;pre tabindex="0">&lt;code>passwd
&lt;/code>&lt;/pre>&lt;p>如果有权限就删除用户：&lt;/p>
&lt;pre tabindex="0">&lt;code>userdel -r [用户名]
&lt;/code>&lt;/pre>&lt;ul>
&lt;li>&lt;strong>2.改mysql密码：&lt;/strong>&lt;/li>
&lt;/ul>
&lt;pre tabindex="0">&lt;code>update mysql.user set password=password(&amp;#39;密码&amp;#39;) where user=&amp;#39;root&amp;#39;;
&lt;/code>&lt;/pre>&lt;p>删除匿名用户：&lt;/p>
&lt;pre tabindex="0">&lt;code>delete from mysql.user where user=&amp;#39; &amp;#39;;
&lt;/code>&lt;/pre>&lt;p>刷新配置：&lt;/p>
&lt;pre tabindex="0">&lt;code>flush privileges;
&lt;/code>&lt;/pre>&lt;ul>
&lt;li>&lt;strong>3.改网站后台密码&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>登录mysql：&lt;/p>
&lt;pre tabindex="0">&lt;code>mysql -u root -p show databases；use test; show tables;
&lt;/code>&lt;/pre>&lt;p>updata 表名 set 字段名 = ‘值’：&lt;/p>
&lt;pre tabindex="0">&lt;code>updata admin set user pass=’123456’;
&lt;/code>&lt;/pre>&lt;p>刷新配置：&lt;/p>
&lt;pre tabindex="0">&lt;code>flush privileges;
&lt;/code>&lt;/pre>&lt;h4 id="dump源码">dump源码&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>1.备份原代码&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>使用ssh工具保留源码，复制两份，用d盾去扫一份&lt;/p>
&lt;blockquote>
&lt;p>注意：如果使用tar命令打包文件夹，.index.php（隐藏类型文件）将不会被打包，因此最好用ls -a检查一遍&lt;/p>
&lt;/blockquote>
&lt;p>或者使用scp命令&lt;/p>
&lt;p>先将网站目录打包成tar&lt;/p>
&lt;pre tabindex="0">&lt;code>tar -cvf [打包后的文件名.tar] [要打包的文件名]
&lt;/code>&lt;/pre>&lt;p>用ssh或ftp将打包文件拉到本地&lt;/p>
&lt;p>ssh法:&lt;/p>
&lt;pre tabindex="0">&lt;code>scp 用户名@IP地址:要下载的文件路径 存放路径
如：scp root@192.168.16.8:/root/flag.txt /root/
&lt;/code>&lt;/pre>&lt;p>ftp法：&lt;/p>
&lt;pre tabindex="0">&lt;code>ftp [IP地址]
get [文件名]
或者用ftp登入软件下载
&lt;/code>&lt;/pre>&lt;ul>
&lt;li>&lt;strong>2.备份数据库&lt;/strong>&lt;/li>
&lt;/ul>
&lt;pre tabindex="0">&lt;code>mysqldump -u db_user -p db_passwd db_name &amp;gt; 1.sql //备份指定数据库
cd /var/lib/mysqlmysqldump -u db_user -p db_passwd &amp;gt; 1.sql //先进入数据库目录再备份
mysqldump —all-databases &amp;gt; 1.sql //备份所有数据库
&lt;/code>&lt;/pre>&lt;ul>
&lt;li>&lt;strong>3.数据库还原&lt;/strong>&lt;/li>
&lt;/ul>
&lt;pre tabindex="0">&lt;code>mysql -u db_user -p db_passwd db_name &amp;lt; 1.sql //还原指定数据库
cd /var/lib/mysqlmysql -u db_user db_passwd &amp;lt; 1.sql //先进入数据库目录再还原
&lt;/code>&lt;/pre>&lt;h4 id="防御部署">防御部署&lt;/h4>
&lt;p>先进行服务器检查：&lt;/p></description></item><item><title>Echo战队第19次培训——渗透实战思路和实践</title><link>https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/</link><pubDate>Wed, 21 Jun 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/</guid><description>&lt;p>实战是各个方向的结合，甚至没有明确的方向区分。下面将展示实战思路和Lampiao靶机渗透&lt;/p>
&lt;h2 id="实战思路">实战思路&lt;/h2>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/%E6%94%BB%E9%98%B2%E5%AE%9E%E6%88%98.jpg">&lt;/p>
&lt;p>上面是我整理的一份实战思路和总结，看不清楚可以点&lt;a href="https://www.processon.com/v/649252103005fc25839f9878">这里&lt;/a>&lt;/p>
&lt;h2 id="lampiao靶机渗透">Lampiao靶机渗透&lt;/h2>
&lt;p>什么是Lampiao靶机？知道Lampiao前得先介绍一下什么是&lt;a href="https://www.vulnhub.com/">vulnhub&lt;/a>&lt;/p>
&lt;p>vulnhub是一个提供漏洞靶机的经典靶场，其中不乏一些高频漏洞，例如Log4j，Dirty cow，常见CMS漏洞等，非常适合萌新黑客练手。并且，vulnhub提供的靶机使用的是VMware镜像，和在线靶场所使用的docker靶机不一样，渗透环境更加真实。Lampiao是vulnhub中的一个非常经典的Dirty cow漏洞复现靶机。&lt;/p>
&lt;p>接下来我们直接开始模拟一次真实的渗透过程&lt;/p>
&lt;h3 id="渗透环境">渗透环境&lt;/h3>
&lt;blockquote>
&lt;p>攻击者：kali（ip: 192.168.2.6）&lt;/p>
&lt;p>受害者：一台服务器，其他信息全部未知，只知道和这台服务器在同一个内网&lt;/p>
&lt;/blockquote>
&lt;h3 id="渗透过程">渗透过程&lt;/h3>
&lt;h4 id="第一步信息收集">第一步：信息收集&lt;/h4>
&lt;p>我们已经知道需要入侵内网中一台服务器，可是服务器在哪？要怎么入侵它？一切都是未知的，既然这样，第一步当然就是信息收集&lt;/p>
&lt;p>我们可以使用&lt;code>nmap -PS 192.168.2.1-225&lt;/code>对同一C段的内网进行存活主机扫描。&lt;code>-PS&lt;/code>是使用ping发包探测主机是否在线，同时可以粗略地检测端口。&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-4.png">&lt;/p>
&lt;p>经过扫描可以看到这台机子上开放了一个80端口和一个22端口，根据上面的总结不难看出这大概率是一台服务器，因为80端口通常就是用来提供http服务的&lt;/p>
&lt;p>我们可以直接输入ip地址尝试访问&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-8-861x1024.png">&lt;/p>
&lt;p>为了进一步验证猜想，可以用&lt;code>nmap -O 192.168.2.13&lt;/code>来探测这台设备的操作系统，结果如下&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-5.png">&lt;/p>
&lt;p>可以看到nmap推断其大概率运行的是Linux 3.X或4.X内核的系统&lt;/p>
&lt;p>为了获得更具体的系统版本，可以通过各个端口服务的对应版本来推断。什么意思呢？就是我们需要扫描一下80端口和22端口提供服务的软件版本分别是什么，是提供给哪一个linux发行版的&lt;/p>
&lt;p>可以使用&lt;code>-sV&lt;/code>参数再次进行扫描&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-6.png">&lt;/p>
&lt;p>通过扫描可以看到，22端口的ssh服务由openSSH提供，同时可以看到出这是个ubuntu版本，因此可以知道这台机器运行的系统是ubuntu，具体版本未知&lt;/p>
&lt;p>接下来我们继续使用&lt;code>-A&lt;/code>参数来扫描有关这台机器的所有详细信息（刚刚不这么做是因为进行粗扫描能够更快断定一些有关信息，便于后面渗透方向判断），这里我们还需要设置一下全端口扫描，你可以使用&lt;code>-p 1-65535&lt;/code>或&lt;code>-p-&lt;/code>参数来设置。扫描结果如下&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-7.png">&lt;/p>
&lt;p>可以看到，在设置了全端口扫描后还发现了一个刚刚没扫出来的1898端口，并且是一个Apache的httpd服务，意味着我们同样可以使用http协议访问&lt;/p>
&lt;p>尝试访问结果如下&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-9-1024x655.png">&lt;/p>
&lt;p>可以发现这是一个后端登录界面，乱点看了一圈后发现没用什么有价值的信息，但页面最下面的一句&lt;code>Powered by [Drupal](https://www.drupal.org/)&lt;/code>引起了我的注意，搜索后发现这是个前端框架，并且发现了一个可利用的CVE漏洞&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-10.png">&lt;/p>
&lt;h4 id="第二步getshell">第二步：Getshell&lt;/h4>
&lt;p>经过上面信息搜集并了解这个CVE漏洞后， 知道CVE-2018-7600 根本原因出在 Drupal 对表单的渲染，发现可以直接使用MSF自带的攻击模块进行利用。先对msf自带的drupal模块进行搜索&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-11-1024x293.png">&lt;/p>
&lt;p>根据Description内容，选中第4个模块，并设置options&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-12-1024x600.png">&lt;/p>
&lt;p>&lt;code>show options&lt;/code>用来查看这个模块需要设置的内容。这里根据&lt;code>required&lt;/code>一列可以看到还差&lt;code>RHOST&lt;/code>这一项。在MSF所有攻击模块中，&lt;code>RHOST&lt;/code>需要填上的是被攻击对象。&lt;/p>
&lt;p>需要注意的是，在这个攻击模块中&lt;code>RPORT&lt;/code>默认是80，需要修改成1898&lt;/p>
&lt;p>执行&lt;code>run&lt;/code>就能成功拿到Shell&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-13-1024x861.png">&lt;/p>
&lt;p>不过这个没有交互式Shell前缀的界面看着不太舒服，我们可以利用这台服务器上自带的python服务自己构造一个”伪Shell“，代码如下&lt;/p>
&lt;pre tabindex="0">&lt;code>python -c &amp;#39;import pty;pty.spawn(&amp;#34;/bin/bash&amp;#34;)&amp;#39;
&lt;/code>&lt;/pre>&lt;p>有兴趣可以去看一下pty这个包是什么&lt;/p>
&lt;p>执行后就能得到一个类似正常交互式Shell的前缀，就能直观地看到当前所在目录和用户名了&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-14.png">&lt;/p>
&lt;h4 id="第三步权限提升">第三步：权限提升&lt;/h4>
&lt;p>只拿到shell依然不能满足我们很多操作，例如我们没法看到一些存放在root文件里的东西，也没法执行一些需要更高权限指令。因此提权就十分重要。&lt;/p>
&lt;p>到这里，还记得我们在信息搜集步骤时留下的一个问题吗？我们还不知道这个系统的具体版本是什么。但现在我们已经拿到了shell，查看版本就很简单了，只需要执行以下&lt;code>uname -a&lt;/code>就能知道&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-06-21-echo%E6%88%98%E9%98%9F%E7%AC%AC18%E6%AC%A1%E5%9F%B9%E8%AE%AD-%E6%B8%97%E9%80%8F%E5%AE%9E%E6%88%98%E6%80%9D%E8%B7%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/images/image-15-1024x67.png">&lt;/p></description></item><item><title>Echo战队第18次培训——Metasploit之“永恒之蓝”漏洞利用</title><link>https://redshome.top/posts/2023-04-23-96/</link><pubDate>Sun, 23 Apr 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-04-23-96/</guid><description>&lt;h1 id="一-环境准备">&lt;strong>一、 环境准备&lt;/strong>&lt;/h1>
&lt;p>1 一台Windows电脑&lt;/p>
&lt;p>（可以使用虚拟机代替）&lt;/p>
&lt;h3 id="2-metasploit任意平台">2 Metasploit任意平台&lt;/h3>
&lt;p>可以是Windows版，可以是kali自带版&lt;/p>
&lt;h1 id="二-cve-2017-0144-介绍">&lt;strong>二、&lt;/strong> CVE-2017-0144 介绍&lt;/h1>
&lt;p>1.何为CVE-2017-0144？&lt;/p>
&lt;p>​ CVE-2017-0144 既 永恒之蓝最早爆发于2017年4月14日晚，是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限，以此来控制被入侵的计算机。甚至于2017年5月12日， 不法分子通过改造“永恒之蓝”制作了勒索病毒，使全世界大范围内遭受了勒索病毒，甚至波及到学校、大型企业、政府等机构，只能通过支付高额的赎金才能恢复出文件。&lt;/p>
&lt;p>2.什么是SMB协议？&lt;/p>
&lt;p>SMB是一个协议服务器信息块，它是一种客户机/服务器、请求/响应协议，通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源，电脑上的网上邻居就是靠SMB实现的；SMB协议工作在应用层和会话层，可以用在TCP/IP协议之上，SMB使用TCP139端口和TCP445端口。&lt;/p>
&lt;p>3.SMB工作原理是什么？&lt;/p>
&lt;p>（1）：首先客户端发送一个SMB negport 请求数据报，，并列出它所支持的所有SMB的协议版本。服务器收到请求消息后响应请求，并列出希望使用的SMB协议版本。如果没有可以使用的协议版本则返回0XFFFFH，结束通信。&lt;/p>
&lt;p>（2）：协议确定后，客户端进程向服务器发起一个用户或共享的认证，这个过程是通过发送SessetupX请求数据包实现的。客户端发送一对用户名和密码或一个简单密码到服务器，然后通过服务器发送一个SessetupX应答数据包来允许或拒绝本次连接。&lt;/p>
&lt;p>（3）：当客户端和服务器完成了磋商和认证之后，它会发送一个Tcon或TconX SMB数据报并列出它想访问的网络资源的名称，之后会发送一个TconX应答数据报以表示此次连接是否接收或拒绝。&lt;/p>
&lt;p>（4）：连接到相应资源后，SMB客户端就能够通过open SMB打开一个文件，通过read SMB读取文件，通过write SMB写入文件，通过close SMB关闭文件。&lt;/p>
&lt;h1 id="三原理-永恒之蓝是在windows的smb服务处理smb-v1请求时发生的漏洞这个漏洞导致攻击者在目标系统上可以执行任意代码通过永恒之蓝漏洞会扫描开放445文件共享端口的windows机器无需用户任何操作只要开机上网不法分子就能在电脑和服务器中植入勒索软件远程控制木马虚拟货币挖矿机等恶意程序">&lt;strong>三、原理&lt;/strong> 永恒之蓝是在Windows的SMB服务处理SMB v1请求时发生的漏洞，这个漏洞导致攻击者在目标系统上可以执行任意代码。通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器，无需用户任何操作，只要开机上网，不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。&lt;/h1>
&lt;h1 id="四cve-2017-0144-利用方法">&lt;strong>四、CVE-2017-0144 利用方法&lt;/strong>&lt;/h1>
&lt;p>1 启动Metasploit&lt;/p>
&lt;p>终端里输入 msfconsole&lt;/p>
&lt;p>2 查询利用模块&lt;/p>
&lt;p>终端里输入 search ms17_010&lt;/p>
&lt;p>a&lt;img alt="img" loading="lazy" src="https://redshome.top/posts/2023-04-23-96/images/960ae38818084260be8eb69e589edba4.png" title="img">&lt;/p>
&lt;p>3 使用探测模块&lt;/p>
&lt;p>终端内输入 use auxiliary/scanner/smb/smb_ms17_010&lt;/p>
&lt;p>4 设置探测范围&lt;/p>
&lt;p>终端内输入 show options&lt;/p>
&lt;p>&lt;img alt="img" loading="lazy" src="https://redshome.top/posts/2023-04-23-96/images/ab7ca3d4ba774677bc2a239c420349f7.png" title="img">&lt;/p>
&lt;p>上图中我们可以看到是需要配置一个RHOSTS&lt;/p>
&lt;p>终端内输入 set rhosts 192.168.3.0/24 （设置扫描当前网段 可以通过 在终端内输入ip a 查看）&lt;/p>
&lt;p>也可以设置范围 set rhosts 192.168.3.1-192.168.3.10&lt;/p></description></item><item><title>Echo战队第17次培训——个人博客搭建</title><link>https://redshome.top/posts/2023-04-02-90/</link><pubDate>Sun, 02 Apr 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-04-02-90/</guid><description>&lt;p>众所周知，一个完整博客网站的组成离不开必要的三件套&lt;/p>
&lt;blockquote>
&lt;p>1.网站基本框架 2.运行网站的服务器 3.一个自己喜欢的域名&lt;/p>
&lt;/blockquote>
&lt;p>可以说是缺一不可 下面就带大家看看完整的博客网站是如何被搭建起来的&lt;/p>
&lt;h2 id="准备工作">准备工作&lt;/h2>
&lt;h3 id="1网站框架typecho">1.网站框架——Typecho&lt;/h3>
&lt;p>Typecho 是国内开发者开发的一款开源免费的动态博客程序，可以运行在基于 PHP 环境的各种平台上。&lt;/p>
&lt;p>官网：&lt;a href="http://typecho.org/">Typecho Official Site&lt;/a> GitHub：&lt;a href="https://github.com/typecho/typecho">typecho: A PHP Blogging Platform.&lt;/a> 相比于同为动态博客并且广为人知的 WordPress 来说，Typecho 的一大特点就是 “精简”。全部文件不足 500KB，但却也实现了完整的主题和插件支持。博客程序很轻量，资源占用也很低，原生支持 Markdown 语法。属于省心并且简洁的博客类型。&lt;/p>
&lt;h3 id="2服务器购买">2.服务器购买&lt;/h3>
&lt;p>这里我推荐桔子数据的香港云，关键是价格便宜（不是广告！） 这里是&lt;a href="https://www.95vps.com/">传送门&lt;/a>&lt;/p>
&lt;p>个人建议买这个 &lt;img alt="1" loading="lazy" src="https://redshome.top/posts/2023-04-02-90/images/1.png" title="1"> 配置随意，但是系统记得选择&lt;code>Ubuntu 20&lt;/code>&lt;/p>
&lt;p>等待机器初始化完成后再点开安全组 &lt;img alt="2" loading="lazy" src="https://redshome.top/posts/2023-04-02-90/images/2.png" title="2"> 用&lt;code>ssh&lt;/code>为名字添加一组新的策略，再点击&lt;code>应用&lt;/code>即可&lt;/p>
&lt;h3 id="3域名购买">3.域名购买&lt;/h3>
&lt;p>域名推荐在 Namesilo 购买，价格便宜，同时赠送永久免费的隐私保护。&lt;/p>
&lt;p>官网：&lt;a href="https://www.namesilo.com">Namesilo&lt;/a>&lt;/p>
&lt;p>首先 注册账户。注册信息建议使用&lt;a href="https://www.shenfendaquan.com/">美国生成信息&lt;/a>，国家选择美国（United States），并勾选 “Keep my information private” 默认使用隐私保护。 &lt;img alt="1" loading="lazy" src="https://redshome.top/posts/2023-04-02-90/images/v2-b3ed58d7a5da1bf2ff262b0698016fcf_1440w.webp" title="1"> 然后 搜索想要注册的域名，进行购买。&lt;/p>
&lt;p>设置域名续费规则、注册时长等。在 “Have a Coupon……” 处输入优惠码 okoff 或者 go2think ，点击 “Submit” 应用，优惠一美元。&lt;/p>
&lt;p>完成后点击 “CONTINUE” 付款，支持支付宝和 Paypal&lt;/p>
&lt;p>之后进行域名解析。先进行登录&lt;/p>
&lt;p>&lt;img alt="登录NaemSilo域名后台" loading="lazy" src="https://redshome.top/posts/2023-04-02-90/images/Pasted-into-NameSilo%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E5%92%8CDNS%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BF%AE%E6%94%B9%E6%95%99%E7%A8%8B.png">&lt;/p>
&lt;p>进到个人主页后点击&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2023-04-02-90/images/namesilo.png">&lt;/p></description></item><item><title>Echo战队第16次培训——CDN原理、ARP欺骗、奈菲解锁原理1</title><link>https://redshome.top/posts/2023-03-30-87/</link><pubDate>Thu, 30 Mar 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-03-30-87/</guid><description>&lt;h2 id="cdn原理">CDN原理&lt;/h2>
&lt;p>我们先来看一下正常上网的拓补图&lt;br>
&lt;img alt="1" loading="lazy" src="https://redshome.top/posts/2023-03-30-87/images/1.png" title="1">&lt;br>
图中是一个正常的网站请求，这个应该不难理解&lt;br>
但不知道你有没有注意到一个问题，如果这个网站是一个被架设在大洋彼岸的网站，那么网站的内容要想从地球的另一端来到你的电脑，得有多费劲？&lt;br>
所以聪明的人类就发明出了一种十分暴力但却有效的方法来解决这一世纪难题，也就是将网站的内容先缓存到一台离你的电脑比较近的服务器上存起来，等你要用的时候直接调用这台服务器上的内容就行。而这种技术，就被叫做CDN存储技术（Content Delivery Network）&lt;br>
这样的方法看着简单，但却十分有效。不过也有一个致命硬伤，就是你没法保证你所访问内容的时效性。因为听名字就知道，缓存，就是暂时存储的意思，那就必然会有时间差的存在。而这个时间差的大小也就取决于网站管理者，不过一般来说这个时间差和网站访问速度是成反比的&lt;/p>
&lt;p>不过对于科学上网而言，内容储存并不是我们关注的重点。重点是CDN服务所提供的域名。对于一个可以高速裸奔的科学上网的节点，其最大的痛处想必就是稳定性没法得到保证。因此，想办法提升稳定性就变成了非安全节点的关键。而一个节点之所以会被长城防火墙干趴，本质上就是节点ip或域名被拉了黑名单。&lt;br>
而CDN的存在就误打误撞地解决了这个问题。&lt;br>
&lt;img alt="2" loading="lazy" src="https://redshome.top/posts/2023-03-30-87/images/7.png" title="2">&lt;br>
当防火墙在探测你的节点ip时，碰到的确实CDN的域名。而CDN本身只起到了挡箭牌的作用，就算一个CDN域名被拉黑了，再把你的节点服务器重新再部署一个就行了。而且整个过程都是免费的（如使用&lt;a href="https://www.cloudflare.net">cloudlare&lt;/a>），这对科学上网来说简直就算一大神器。&lt;/p>
&lt;p>但CDN也不是完全没有缺点。CDN确实能够保障你的节点安全，但速度却大打折扣。从上面的原理图里应该可以看出CDN服务器其实本身就是一个挂在墙外的东西，即便你的节点本身速度够快，但被CDN这么一折腾，也还是会有很大程度上的降速。因此，给你的节点套CDN作为一个备选方案，才算是一个不错的选择&lt;/p>
&lt;h2 id="arp欺骗">ARP欺骗&lt;/h2>
&lt;p>ARP（Address Resolution Protocol），中文解释为地址解析协议，是根据IP地址获取物理地址的一个TCP/IP协议。&lt;/p>
&lt;p>ARP大致工作流程如下：&lt;br>
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机，并接收返回消息，以此确定目标的物理地址。&lt;br>
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间，下次请求时直接查询ARP缓存以节约资源。&lt;br>
地址解析协议是建立在网络中各个主机互相信任的基础上的，网络上的主机可以自主发送ARP应答消息，其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存（重点来了，我们要利用的就是这个点！）&lt;br>
攻击者可以向某一主机发送伪ARP应答报文，使其发送的信息无法到达预期的主机或到达错误的主机，这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。&lt;br>
那么 我们如何利用ARP协议来进行断网攻击呢？大致思路如下：&lt;br>
首先，ARP是建立在网络中各个主机互相信任的基础上的，它的诞生使得网络能够更加高效的运行，但其本身也存在缺陷：&lt;br>
ARP地址转换表（ARP缓存）是依赖于计算机中高速缓冲存储器动态更新的，而高速缓冲存储器的更新是受到更新周期的限制的，只保存最近使用的地址的映射关系表项，这使得攻击者有了可乘之机，可以在高速缓冲存储器更新表项之前修改地址转换表，实现攻击。ARP请求为广播形式发送的，网络上的主机可以自主发送ARP应答消息，并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表，这样攻击者就可以向目标主机发送伪ARP应答报文，从而篡改本地的MAC地址表。这就是所谓的APR欺骗攻击。&lt;br>
ARP欺骗可以导致目标计算机与网关通信失败，更会导致通信重定向，所有的数据都会通过攻击者的机器，因此存在极大的安全隐患，这里我们是使目标主机通信失败，之后的教程会介绍重定向的方法。&lt;br>
ARP攻击大致流程如下：&lt;/p>
&lt;p>第一步：假设主机A访问某网站，那么要告知某网站我的IP和MAC地址，但这是以广播的方式告知的。&lt;br>
第二步，由于是广播方式告知，猥琐的B主机也知道了A的IP和Mac地址，于是猥琐的B主机把自己伪装成某网站，给A发送回复，A误以为B就是某网站，因此更新了自己本机的ARP缓存。&lt;br>
第三步，两者建立连接，A不断将自己的请求发给B，可怜的某网站被挂在一遍了。如果B转发A的请求给某网站，再转发给A，那相当于A的流量都从B经过，这就是步骤4，因此可以会话劫持；如果B给A的是一个假地址，那么可怜的A永远上不了网了。&lt;/p></description></item><item><title>Echo战队培训番外——CSRF伪造银行转账请求漏洞复现</title><link>https://redshome.top/posts/2023-03-24-86/</link><pubDate>Fri, 24 Mar 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-03-24-86/</guid><description>&lt;h2 id="欺骗的最高境界就是不说任何一句假话">“欺骗的最高境界，就是不说任何一句假话”&lt;/h2>
&lt;p>昨天和实验室的朋友在聊天时提到了一些典型的漏洞案例，我用白话向他们介绍了一些攻击手段，不乏ARP欺骗、metaploit病毒制作、常规抓包等，其中“访问一些不该访问的页面就能把你银行卡里的钱转走”好像让他们比较提起兴趣，正好之前给Echo培训的时候也演示过，反映还不错。下面我尽量用所有0基础者都能听懂的话，再复现一遍整个过程&lt;/p>
&lt;p>下面来介绍一下实验环境&lt;/p>
&lt;h2 id="环境">环境&lt;/h2>
&lt;p>受害者：windows 7，chrome浏览器 攻击者：windows 11（黄色网站运营者） 银行：windows 7,Mysql 5.7数据库&lt;/p>
&lt;h2 id="背景">背景&lt;/h2>
&lt;p>有三个银行账户，账户ID、密码、原始金额如下 &lt;img alt="1" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/1.png" title="1">&lt;/p>
&lt;h2 id="实验开始">实验开始&lt;/h2>
&lt;p>（实验确保严格按照下面步骤进行，无多余操作） 某天康康想给杰瑞转1000块钱，于是就正常地打开了银行的网站并登录，看到了自己账户的余额和转账的界面 &lt;img alt="2" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/2.png" title="2">&lt;/p>
&lt;p>出于平时“网上冲浪”的经验，对于1000块的巨款，康康谨慎地打开了所有杀毒软件，在确保了“全盘扫描”全部正常并绿灯通行后，才输入了杰瑞银行账号并进行了转账 &lt;img alt="3" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/3.png" title="3"> 杰瑞此时也收到了这1000块钱，这一切似乎都很安全并且正常，至少目前为止是这样的 &lt;img alt="4" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/4.png" title="4"> 转完帐后闲来无事的康康，打算看点网站来保障青少年的身心健康，于是他“安全退出”了银行账户后，便进入了下面这个网站 &lt;img alt="5" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/5.png" title="5"> 激动的康康决定马上接受美女荷官的邀请，于是他便点进了链接 &lt;img alt="6" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/6.png" title="6"> 在经过一番荷官的心理辅导后，康康看了一眼自己的手机，发现手机短信似乎多了一条来自银行的短信。嗯？1000块转账？怎么转给杰瑞的钱到现在才提醒 不信邪的康康决定打开账户一探究竟，但让他不解的是，为什么银行卡里的钱又少了1000？ &lt;img alt="7" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/7.png" title="7"> 不行，一定是我眼花了，嗯，一定是辅导还不到位，再看一遍就好了 机智的康康再次刷新了荷官的页面 又过了一段时间，康康再次返回银行账户界面，7000？？wtf？？ &lt;img alt="8" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/8.png" title="8"> 康康急忙打电话给杰瑞，发现杰瑞的账户里只收到了最开始的1000块 这期间究竟发生了什么呢？让我们切换一下视角，从银行的数据库这个“上帝视角”来一探究竟 &lt;img alt="9" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/9.png" title="9"> 你一定已经发现了康康的2000去了哪，但是这期间究竟发生了什么呢？&lt;/p>
&lt;h2 id="原理分析">原理分析&lt;/h2>
&lt;p>我们先来看一下CSRF漏洞的wiki定义 &lt;img alt="10" loading="lazy" src="https://redshome.top/posts/2023-03-24-86/images/10.png" title="10"> 其实简单来说就是以利用受害者本身被银行信任的设备请发起正常的转账请求，但显然CSRF漏洞的应用远不止这一种 我们先来看一下正常银行转账页面发起转账请求的代码&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;lt;?php
include(&amp;#34;config.php&amp;#34;);
if(isset($_COOKIE[&amp;#34;userid1&amp;#34;]) &amp;amp;&amp;amp; isset($_COOKIE[&amp;#34;pass1&amp;#34;]))
{
$TOID=$_GET[&amp;#39;nameid&amp;#39;];
$TOMONEY= $_GET[&amp;#39;balance&amp;#39;];
include(&amp;#34;conn/conn.php&amp;#34;);
$sql=$db-&amp;gt;query(&amp;#34;select * from account where userid=&amp;#39;&amp;#34;.$TOID.&amp;#34;&amp;#39;&amp;#34;);
$sqlres = $sql-&amp;gt;fetch();
if($sqlres[&amp;#39;userid&amp;#39;] != $TOID)
{
echo &amp;#34;&amp;lt;script language=\&amp;#34;javascript\&amp;#34;&amp;gt;&amp;#34;;
echo &amp;#34;alert(&amp;#39;用户名或密码错误!&amp;#39;)&amp;#34;;
echo &amp;#34;return(true)&amp;#34;;
echo &amp;#34;location.href=\&amp;#34;default.php\&amp;#34;&amp;#34;;
echo &amp;#34;&amp;lt;/script&amp;gt;&amp;#34;;
}
$balance_new = $TOMONEY + $sqlres[&amp;#39;balance&amp;#39;];
$sql=$db-&amp;gt;exec(&amp;#34;update account set balance=&amp;#39;&amp;#34;.$balance_new.&amp;#34;&amp;#39; where userid=&amp;#39;&amp;#34;.$TOID.&amp;#34;&amp;#39;&amp;#34;);
$sql=$db-&amp;gt;query(&amp;#34;select * from account where userid=&amp;#39;&amp;#34;.$_COOKIE[&amp;#39;userid1&amp;#39;].&amp;#34;&amp;#39;&amp;#34;);
$sqlres = $sql-&amp;gt;fetch();
$balance_new = $sqlres[&amp;#39;balance&amp;#39;]- $TOMONEY;
$sql=$db-&amp;gt;exec(&amp;#34;update account set balance=&amp;#39;&amp;#34;.$balance_new.&amp;#34;&amp;#39; where userid=&amp;#39;&amp;#34;.$_COOKIE[&amp;#39;userid1&amp;#39;].&amp;#34;&amp;#39;&amp;#34;);
echo &amp;#34;&amp;lt;script language=\&amp;#34;javascript\&amp;#34;&amp;gt;&amp;#34;;
echo &amp;#34;location.href=\&amp;#34;default.php\&amp;#34;&amp;#34;;
echo &amp;#34;&amp;lt;/script&amp;gt;&amp;#34;;
}
?&amp;gt;
&lt;/code>&lt;/pre>&lt;p>可以看到整个过程其实很好理解，就是调用银行本身数据库进行数据增减 接下来我们再看看荷官页面的代码，相信你就知道问题出在哪里了&lt;/p></description></item><item><title>Echo战队第14次培训——密码学基础</title><link>https://redshome.top/posts/2023-03-03-71/</link><pubDate>Fri, 03 Mar 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-03-03-71/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/%E5%AF%86%E7%A0%81%E5%AD%A6%E5%9F%BA%E7%A1%80/%E5%AF%86%E7%A0%81.pdf">课件下载&lt;/a>&lt;/p></description></item><item><title>Echo战队第12次培训——XXE漏洞和文件包含漏洞</title><link>https://redshome.top/posts/2023-01-11-55/</link><pubDate>Wed, 11 Jan 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-01-11-55/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/XXE%E5%92%8C%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB/1.pdf">课件下载1&lt;/a>&lt;br>
&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/XXE%E5%92%8C%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB/2.pdf">课件下载2&lt;/a>&lt;/p></description></item><item><title>Echo战队第13次培训——RCE漏洞</title><link>https://redshome.top/posts/2023-01-11-56/</link><pubDate>Wed, 11 Jan 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-01-11-56/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/RCE/1.pdf">课件下载&lt;/a>&lt;/p></description></item><item><title>Echo战队第11次培训——SSRF漏洞和文件上传漏洞</title><link>https://redshome.top/posts/2023-01-09-54/</link><pubDate>Mon, 09 Jan 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-01-09-54/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/SSRF%E5%92%8C%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/1.pdf">课件下载1&lt;/a>&lt;br>
&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/SSRF%E5%92%8C%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/2.pdf">课件下载2&lt;/a>&lt;/p></description></item><item><title>Echo战队第10次培训——CSRF漏洞</title><link>https://redshome.top/posts/2023-01-07-53/</link><pubDate>Sat, 07 Jan 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-01-07-53/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/CSRF/1.pdf">课件下载&lt;/a>&lt;/p></description></item><item><title>Echo战队第9次培训——XSS基础</title><link>https://redshome.top/posts/2023-01-07-51/</link><pubDate>Sat, 07 Jan 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-01-07-51/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/XSS/4.pdf">课件下载&lt;/a>&lt;/p></description></item><item><title>Echo战队第8次培训——SQL盲注+SQL文件读取+SQL高权限注入+SQLmap使用</title><link>https://redshome.top/posts/2023-01-05-49/</link><pubDate>Thu, 05 Jan 2023 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2023-01-05-49/</guid><description>&lt;h1 id="sql注入之文件读写">SQL注入之文件读写&lt;/h1>
&lt;h4 id="文件读写注入的原理">文件读写注入的原理&lt;/h4>
&lt;p>就是利用文件的读写权限进行注入，它可以写入一句话木马，也可以读取系统文件的敏感信息。&lt;/p>
&lt;h4 id="文件读写注入的条件">文件读写注入的条件&lt;/h4>
&lt;p>高版本的MYSQL添加了一个新的特性secure_file_priv，该选项限制了mysql导出文件的权限&lt;/p>
&lt;p>&lt;strong>secure_file_priv选项&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>linux
cat etc/conf
win
www/mysql / my.ini
&lt;/code>&lt;/pre>&lt;p>show global variables like &amp;lsquo;%secure%&amp;rsquo; 查看mysql全局变量的配置&lt;/p>
&lt;p>1、读写文件需要 &lt;code>secure_file_priv&lt;/code>权限&lt;/p>
&lt;p>&lt;strong>&lt;code>secure_file_priv=&lt;/code>&lt;/strong>&lt;/p>
&lt;p>代表对文件读写没有限制&lt;/p>
&lt;p>&lt;code>secure_file_priv=NULL&lt;/code>&lt;/p>
&lt;p>代表不能进行文件读写&lt;/p>
&lt;p>&lt;code>secure_file_priv=d:/phpstudy/mysql/data&lt;/code>&lt;/p>
&lt;p>代表只能对该路径下文件进行读写&lt;/p>
&lt;p>2、知道网站绝对路径&lt;/p>
&lt;p>Windows常见：&lt;/p>
&lt;p>&lt;img alt="image.png" loading="lazy" src="https://redshome.top/posts/2023-01-05-49/images/52b8185c15804b098e5832e56952f9d5.png" title="image.png">&lt;/p>
&lt;p>Linux常见：&lt;/p>
&lt;p>&lt;img alt="image.png" loading="lazy" src="https://redshome.top/posts/2023-01-05-49/images/c22c368cda784e5ebb911ff0bbd0fa99.png" title="image.png">&lt;/p>
&lt;p>路径获取常见方式：&lt;/p>
&lt;p>报错显示，遗留文件，漏洞报错，平台配置文件等&lt;/p>
&lt;h4 id="读取文件">读取文件&lt;/h4>
&lt;p>使用函数：&lt;code>load_file()&lt;/code>&lt;/p>
&lt;p>后面的路径可以是单引号，0x，char转换的字符。&lt;/p>
&lt;p>注意：路径中斜杠是/不是\。&lt;/p>
&lt;p>一般可以与union中做为一个字段使用，查看config.php(即mysql的密码)，apache配置&amp;hellip;&lt;/p>
&lt;h4 id="写入文件">写入文件&lt;/h4>
&lt;p>使用函数：&lt;code>Into Outfile&lt;/code>（能写入多行，按格式输出）和 &lt;code>into Dumpfile&lt;/code>（只能写入一行且没有输出格式）&lt;/p>
&lt;p>outfile 后面不能接0x开头或者char转换以后的路径，只能是单引号路径&lt;/p>
&lt;h1 id="sql注入之基础防御">SQL注入之基础防御&lt;/h1>
&lt;h3 id="魔术引号">魔术引号&lt;/h3>
&lt;p>魔术引号（Magic Quote）是一个自动将进入 PHP 脚本的数据进行转义的过程。&lt;br>
最好在编码时不要转义而在运行时根据需要而转义。&lt;/p>
&lt;p>魔术引号：&lt;br>
在php.ini文件内找到&lt;/p>
&lt;pre tabindex="0">&lt;code>magic_quotes_gpc = On 开启
将其改为
magic_quotes_gpc = Off 关闭
&lt;/code>&lt;/pre>&lt;h3 id="内置函数">内置函数&lt;/h3>
&lt;p>做数据类型的过滤&lt;/p>
&lt;p>is_int()等&lt;/p>
&lt;p>addslashes()&lt;/p>
&lt;p>mysql_real_escape_string()&lt;/p>
&lt;p>mysql_escape_string()&lt;/p>
&lt;h3 id="自定义关键字">自定义关键字&lt;/h3>
&lt;p>str_replace()&lt;/p></description></item><item><title>Echo战队第6次培训——SQL注入方法及其原理1</title><link>https://redshome.top/posts/2022-12-04-37/</link><pubDate>Sun, 04 Dec 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-12-04-37/</guid><description>&lt;h1 id="sql注入之数据库概述">SQL注入之数据库概述&lt;/h1>
&lt;p>数据库就是一个存储数据的仓库，数据库是以一定方式存储在一起，能与多个用户共享，具有尽可能小的冗余，与应用程序彼此独立的数据集合。&lt;/p>
&lt;h3 id="关系型数据库">关系型数据库&lt;/h3>
&lt;p>关系型数据库，存储的格式可以直观地反映实体间的关系，和常见的表格比较相似&lt;/p>
&lt;p>关系型数据库中表与表之间有很多复杂的关联关系的&lt;/p>
&lt;p>常见的关系型数据库有MySQL，Orcale，PostgreSQL , SQL Server等。&lt;/p>
&lt;h3 id="非关系型数据库">非关系型数据库&lt;/h3>
&lt;p>随着近些年技术方向的不断扩展，大量的NoSQL数据库如 Mon goDB，Redis出于简化数据库结构，避免冗余，影响性能的表连接。摒弃复杂分布式的目的被设计&lt;/p>
&lt;p>NoSQL数据库适合追求速度和可扩展性，业务多变的场景&lt;/p>
&lt;p>&lt;a href="https://db-engines.com/en/ranking">数据库排行：https://db-engines.com/en/ranking&lt;/a>&lt;/p>
&lt;p>&lt;img alt="image.png" loading="lazy" src="https://redshome.top/posts/2022-12-04-37/images/061b29bf0a964fc09f9db997b127a63e.png" title="image.png">&lt;/p>
&lt;h3 id="数据库服务器层级关系">&lt;strong>数据库服务器层级关系：&lt;/strong>&lt;/h3>
&lt;p>服务器里面&lt;/p>
&lt;pre tabindex="0">&lt;code> ：多个数据库
：多个数据表
：多个行 列 字段
： 数据
&lt;/code>&lt;/pre>&lt;p>&lt;img alt="image.png" loading="lazy" src="https://redshome.top/posts/2022-12-04-37/images/4d27fc6e0941461193ba75ebcaafce1b.png" title="image.png">&lt;/p>
&lt;h3 id="sql语句语法回顾">SQL语句语法回顾：&lt;/h3>
&lt;pre tabindex="0">&lt;code> 查询当前数据库服务器所有的数据库
show databases;
选中某个数据库
use 数据库名字 test
查询当前数据库所有的表
show tables；
查询t1表所有数据
查询关键 select
* 所有
from 表名
select * from t1;
条件查询 id=2
where 条件 编程 if（条件 true）{执行}
select * from t1 where id=2；
查询id=2 pass =111
union 合并查询
2个特性：
前面查询的语句 和 后面的查询语句 结果互不干扰！
前面的查询语句的字段数量 和 后面的查询语句字段数量 要一致
* == 3
select id from t1 where id=-1 union select * from t1 where pass =111;
order by 排序
order by 字段名字 id 也可以 跟上数字 1 2 3 4 .。。。。。
猜解表的列数 知道表有几列
&lt;/code>&lt;/pre></description></item><item><title>Echo战队第6次培训——SQL注入方法及其原理2</title><link>https://redshome.top/posts/2022-12-04-38/</link><pubDate>Sun, 04 Dec 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-12-04-38/</guid><description>&lt;h1 id="sql注入之mysql手工注入">SQL注入之MYSQL手工注入&lt;/h1>
&lt;p>本章节重点在于熟悉注入流程，以及注入原理。练习靶场为sqli-labs第二关数字型注入。&lt;/p>
&lt;h3 id="sqli-labs数字型注入">sqli-labs数字型注入&lt;/h3>
&lt;p>&lt;img alt="image.png" loading="lazy" src="https://redshome.top/posts/2022-12-04-38/images/a6c51cb8e8ec4a3b8840fa3c8e105f86.png" title="image.png">&lt;/p>
&lt;p>在url中输入id值，执行查询sql语句。即可得到对应数据&lt;/p>
&lt;p>less-2源码分析：&lt;/p>
&lt;p>&lt;img alt="image.png" loading="lazy" src="https://redshome.top/posts/2022-12-04-38/images/d4245f8d3a7b423ebb96ddaa5f894fa8.png" title="image.png">&lt;/p>
&lt;p>浏览器 进行数据提交 服务器 ：&lt;/p>
&lt;pre tabindex="0">&lt;code>get 提交 ： url 数据长度
速度快
用于：
post 提交 ： 服务器 安全性 数据量
&lt;/code>&lt;/pre>&lt;h3 id="注入流程">注入流程&lt;/h3>
&lt;p>&lt;img alt="image.png" loading="lazy" src="https://redshome.top/posts/2022-12-04-38/images/708c5f66672d462d8bffd38e68791f2f.png" title="image.png">&lt;/p>
&lt;h3 id="注入语句">注入语句&lt;/h3>
&lt;pre tabindex="0">&lt;code>尝试手工注入：
SQL注入：
1.判断有无注入点 and 1 = 1； true
随便输入内容 == 报错 注入
== 没有注入
2.猜解列名数量 order by %20 空格
字段 4个
3.报错，判断回显点 union
4.信息收集
数据库版本 version()
高版本：5.0
系统库： information 。。。
数据库名称：database（）
低版本：5.0
5.使用对应SQL进行注入
数据库库名：security
. 下一级
information_schema.tables 查找表名
table_name
查询security库下面 所有的表名
database（）
= 前后 连到一起
union select 1,group_concat(table_name),3 from information_schema.tables
where table_schema=database()
表： users
如何查询表里面有那些字段？
user 字符 转行 16进制
union select 1,group_concat(column_name),3 from information_schema.columns
where table_name=&amp;#39;users&amp;#39;
username password 字段数据
select username,password from users
union select 1,2,(select group_concat(username,:,password)from users)
&lt;/code>&lt;/pre></description></item><item><title>Echo战队第7次培训——SQL注入方法及其原理3</title><link>https://redshome.top/posts/2022-12-04-39/</link><pubDate>Sun, 04 Dec 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-12-04-39/</guid><description>&lt;h1 id="sql注入之数据提交方式">SQL注入之数据提交方式&lt;/h1>
&lt;h3 id="get方式注入">GET方式注入&lt;/h3>
&lt;p>get注入方式比较常见，主要是通过url中传输数据到后台，带入到数据库中去执行，可利用联合注入方式直接注入&lt;/p>
&lt;h3 id="post方式注入">POST方式注入&lt;/h3>
&lt;p>post提交方式主要适用于表单的提交，用于登录框的注入&lt;/p>
&lt;p>方法：利用BurpSuite抓包进行重放修改内容进行，和get差别是需要借助抓包工具进行测试，返回结果主要为代码，也可转化为网页显示&lt;/p>
&lt;h3 id="request方式注入">Request方式注入&lt;/h3>
&lt;p>概念：超全局变量 PHP中的许多预定义变量都是“超全局的”，这意味着它们在一个脚本的全部作用域中都可以用，这些超全局变量是：&lt;br>
$_REQUEST（获取GET/POST/COOKIE）COOKIE在新版本已经无法获取了&lt;br>
$_POST（获取POST传参）&lt;br>
$_GET（获取GET传参）&lt;br>
$_COOKIE（获取COOKIE传参）&lt;br>
$_SERVER（包含了诸如头部信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组）&lt;/p>
&lt;h3 id="http头注入">HTTP头注入&lt;/h3>
&lt;p>什么是Header头？&lt;/p>
&lt;p>通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机响应消息。 这两种类型的消息有一个起始行，一个或者多个头域，一个只是头域结束的空行和可选的消息体组成。 HTTP的头域包括通用头，请求头，响应头和实体头四个部分&lt;/p>
&lt;h3 id="什么是header头部注入">什么是Header头部注入？&lt;/h3>
&lt;p>header注入，该注入是指利用后端验证客户端信息（比如常用的cookie验证）或者通过header中获取客户端的一些信息（比如User-Agent用户代理等其他header字段信息），因为这些信息在某些地方是会和其他信息一起存储到数据库中，然后再在前台显示出来，又因为后台没有经过相对应的信息处理所以构成了sql注入。&lt;/p>
&lt;h1 id="sql注入之数据类型">SQL注入之数据类型&lt;/h1>
&lt;h3 id="1数字型注入点">（1）数字型注入点&lt;/h3>
&lt;p>许多网页链接有类似的结构 &lt;a href="http://xxx.com/users.php?id=1">http://xxx.com/users.php?id=1&lt;/a> 基于此种形式的注入，一般被叫做数字型注入点，缘由是其注入点 id 类型为数字，在大多数的网页中，诸如 查看用户个人信息，查看文章等，大都会使用这种形式的结构传递id等信息，交给后端，查询出数据库中对应的信息，返回给前台。这一类的 SQL 语句原型大概为 &lt;code>select * from 表名 where id=1&lt;/code> 若存在注入，我们可以构造出类似与如下的sql注入语句进行爆破：&lt;code>select * from 表名 where id=1 and 1=1&lt;/code>&lt;/p>
&lt;h3 id="2字符型注入点">（2）字符型注入点&lt;/h3>
&lt;p>网页链接有类似的结构 &lt;a href="http://xxx.com/users.php?name=admin">http://xxx.com/users.php?name=admin&lt;/a> 这种形式，其注入点 name 类型为字符类型，所以叫字符型注入点。这一类的 SQL 语句原型大概为 &lt;code>select * from 表名 where name='admin'&lt;/code> 值得注意的是这里相比于数字型注入类型的sql语句原型多了引号，可以是单引号或者是双引号。若存在注入，我们可以构造出类似与如下的sql注入语句进行爆破：&lt;code>select * from 表名 where name='admin' and 1=1 '&lt;/code> 我们需要将这些烦人的引号给处理掉。&lt;/p>
&lt;h3 id="3搜索型注入点">（3）搜索型注入点&lt;/h3>
&lt;p>这是一类特殊的注入类型。这类注入主要是指在进行数据搜索时没过滤搜索参数，一般在链接地址中有 &lt;code>&amp;quot;keyword=关键字&amp;quot;&lt;/code> 有的不显示在的链接地址里面，而是直接通过搜索框表单提交。此类注入点提交的 SQL 语句，其原形大致为：&lt;code>select * from 表名 where 字段 like '%关键字%'&lt;/code> 若存在注入，我们可以构造出类似与如下的sql注入语句进行爆破：&lt;code>select * from 表名 where 字段 like '%测试%' and '%1%'='%1%'&lt;/code>&lt;/p></description></item><item><title>Echo战队第4次培训——MySQL数据库</title><link>https://redshome.top/posts/2022-11-28-36/</link><pubDate>Mon, 28 Nov 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-11-28-36/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/SQL%E6%B3%A8%E5%85%A5/2.docx">课件下载&lt;/a>&lt;/p></description></item><item><title>Echo战队第3次培训——计算机网络体系结构</title><link>https://redshome.top/posts/2022-11-27-34/</link><pubDate>Sun, 27 Nov 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-11-27-34/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/SQL%E6%B3%A8%E5%85%A5/1.pdf">课件下载&lt;/a>&lt;/p></description></item><item><title>Echo战队第2次培训——Linux基本命令2</title><link>https://redshome.top/posts/2022-11-25-28/</link><pubDate>Fri, 25 Nov 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-11-25-28/</guid><description>&lt;h2 id="linux基本命令二">Linux基本命令二&lt;/h2>
&lt;h4 id="1head-命令">1、head 命令&lt;/h4>
&lt;p>head&lt;/p>
&lt;p>​ **作用：**用于查看文件的开头部分的内容，有一个常用的参数 &lt;strong>-n&lt;/strong> 用于显示行数，默认为 10，即显示 10 行的内容&lt;/p>
&lt;p>​ **语法：**head [参数] [文件]&lt;/p>
&lt;p>​ &lt;strong>命令参数：&lt;/strong>&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>参数&lt;/th>
&lt;th>参数描述&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>-q&lt;/td>
&lt;td>隐藏文件名&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-v&lt;/td>
&lt;td>显示文件名&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-c&amp;lt;数目&amp;gt;&lt;/td>
&lt;td>显示的字节数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-n&amp;lt;行数&amp;gt;&lt;/td>
&lt;td>显示的行数&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>​ （1）显示 1.log 文件中前 20 行&lt;/p>
&lt;pre tabindex="0">&lt;code>[root@localhost ~]# head 1.log -n 20
&lt;/code>&lt;/pre>&lt;p>​ （2）显示 1.log 文件前 20 字节&lt;/p>
&lt;pre tabindex="0">&lt;code>[root@localhost ~]# head -c 20 log2014.log
&lt;/code>&lt;/pre>&lt;p>​ （3）显示 t.log最后 10 行&lt;/p>
&lt;pre tabindex="0">&lt;code>[root@localhost ~]# head -n -10 t.log
&lt;/code>&lt;/pre>&lt;p>扩展：tail 命令，查看文件的末尾&lt;/p>
&lt;h4 id="2which-命令">2、which 命令&lt;/h4>
&lt;p>which&lt;/p>
&lt;p>​ 在 linux 要查找某个命令或者文件，但不知道放在哪里了，可以使用下面的一些命令来搜索&lt;/p>
&lt;pre tabindex="0">&lt;code>which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。
&lt;/code>&lt;/pre>&lt;p>​ **作用：**用于查找文件（which指令会在环境变量$PATH设置的目录里查找符合条件的文件。）&lt;/p></description></item><item><title>Echo战队第2次培训——Linux快照与克隆</title><link>https://redshome.top/posts/2022-11-25-29/</link><pubDate>Fri, 25 Nov 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-11-25-29/</guid><description>&lt;h2 id="linux快照与克隆">Linux快照与克隆&lt;/h2>
&lt;h4 id="1快照">1、快照&lt;/h4>
&lt;p>​ &lt;strong>什么是快照&lt;/strong>：创建一个备份。当执行了不可逆的错误操作后,可以通过快照用来恢复系统&lt;/p>
&lt;p>​ &lt;strong>创建快照的三种模式&lt;/strong>：&lt;/p>
&lt;p>​ 挂载状态下创建快照&lt;/p>
&lt;p>​ 开机状态下创建快照&lt;/p>
&lt;p>​ 关机状态下创建快照&lt;/p>
&lt;p>​ &lt;strong>创建快照&lt;/strong>&lt;/p>
&lt;p>​ (1)点击管理快照&lt;/p>
&lt;p>​ (2)点击拍摄快照&lt;/p>
&lt;p>​ (3)输入名称信息&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-25-29/images/04_110.png">&lt;/p>
&lt;p>​ (4)当需要转到创建好的快照，我们可以点击对应状态的快照&lt;/p>
&lt;p>​ (5)当点击转到即后选择是即可转到对应快照下&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-25-29/images/04_111.png">&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-25-29/images/04_112.png">&lt;/p>
&lt;h4 id="2克隆">2、克隆&lt;/h4>
&lt;p>​ &lt;strong>什么是克隆&lt;/strong>：以某虚拟机为母版,复制出一个一模一样的虚拟机出来,包括里面的数据&lt;/p>
&lt;p>​ &lt;strong>创建快照的模式&lt;/strong>：需要在系统关机状态下操作&lt;/p>
&lt;p>​ &lt;strong>创建克隆&lt;/strong>&lt;/p>
&lt;p>​ 正常选择通过快照创建克隆(&lt;strong>只能是关机状态下的克隆&lt;/strong>)&lt;/p>
&lt;p>​ 那此时如果在开机状态，就需要关机，记得关机命令和方法有很多种&lt;/p>
&lt;pre tabindex="0">&lt;code>1、halt   立刻关机 
2、poweroff  立刻关机 
3、shutdown -h now 立刻关机(root用户使bai用) 
4、shutdown -h 10 10分钟du后自动关机 如果是通过shutdown命令设置关机的话zhi，可以用shutdown -c命令取消重启
&lt;/code>&lt;/pre>&lt;p>​ (1) 选择关机状态下的快照&lt;/p>
&lt;p>​ (2) 点击克隆&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-25-29/images/04_122.png">&lt;/p>
&lt;p>​ (3) 点击下一步&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-25-29/images/04_115.png">&lt;/p>
&lt;p>​ (4) 选择现有快照，选择这是关机状态下的快照&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-25-29/images/04_123.png">&lt;/p>
&lt;p>​ (5) 选择创建完整克隆&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-25-29/images/04_124.png">&lt;/p></description></item><item><title>Echo战队第2次培训——计算机网络概述</title><link>https://redshome.top/posts/2022-11-25-30/</link><pubDate>Fri, 25 Nov 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-11-25-30/</guid><description>&lt;p>&lt;a href="http://redshome.top/wp-content/uploads/%E6%8A%80%E6%9C%AF/Echo/SQL%E6%B3%A8%E5%85%A5/3.pdf">课件下载&lt;/a>.pdf&lt;/p></description></item><item><title>Echo战队第1次培训——Linux基本命令1</title><link>https://redshome.top/posts/2022-11-23-27/</link><pubDate>Wed, 23 Nov 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-11-23-27/</guid><description>&lt;h2 id="linux基本命令1">Linux基本命令1&lt;/h2>
&lt;h4 id="1mkdir-命令">1、mkdir 命令&lt;/h4>
&lt;p>&lt;strong>mkdir&lt;/strong>&lt;/p>
&lt;p>​ **作用：**命令用来创建指定的名称的目录，要求创建目录的用户在当前目录中具有写权限，并且指定的目录名不能是当前目录中已有的目录&lt;/p>
&lt;p>​ **语法：**mkdir [选项] 目录&lt;/p>
&lt;p>​ **命令功能：**通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且，所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名，即同一个目录下不能有同名的(区分大小写)&lt;/p>
&lt;p>​ &lt;strong>命令参数：&lt;/strong>&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>选项参数&lt;/th>
&lt;th>完整参数&lt;/th>
&lt;th>功能描述&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>-m&lt;/td>
&lt;td>--mode=模式&lt;/td>
&lt;td>设定权限&amp;lt;模式&amp;gt; (类似 chmod)，而不是 rwxrwxrwx 减 umask&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-p&lt;/td>
&lt;td>--parents&lt;/td>
&lt;td>可以是一个路径名称。&lt;br/>此时若路径中的某些目录尚不存在,加上此选项后,&lt;br/>系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-v&lt;/td>
&lt;td>--verbose&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>--help&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>--version&lt;/td>
&lt;td>--verbose 每次创建新目录都显示信息&lt;br/>&amp;ndash;help显示此帮助信息并退出&lt;br/>&amp;ndash;version输出版本信息并退出&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>​ &lt;strong>示例如下：&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code># 创建目录 正常使用无参数
[root@localhost text.txt]# mkdir mydir
[root@localhost text.txt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 9月 7 13:06 mydir
# 切换至mydir目录
[root@localhost text.txt]# cd mydir/
# 参数-p 进行递归创建目录 使用参数 -p
[root@localhost mydir]# mkdir -p text1/text2
# 切换至text2目录
[root@localhost mydir]# cd text1/text2/
[root@localhost text2]# pwd
/root/mydir/text1/text2
总结：# 使用参数 -p 可以创建多层路径文件目录
# 分别创建三个目录，并设置权限 使用参数 -m
[root@localhost text2]# mkdir -m 777 exercise1
[root@localhost text2]# mkdir -m 765 exercise2
[root@localhost text2]# mkdir -m 654 exercise3
[root@localhost text2]# ll
总用量 0
drwxrwxrwx. 2 root root 6 9月 7 13:22 exercise1
drwxrw-r-x. 2 root root 6 9月 7 13:23 exercise2
drw-r-xr--. 2 root root 6 9月 7 13:23 exercise3
总结：# 使用参数 -m 可以创建文件并设置文件的权限
注意(777，765，654 其中每一个数字，分别表示User、Group、及Other的权限。r=4，w=2，x=1)
# 创建一个目录，并设置权限 使用参数 -v -m
[root@localhost text2]# mkdir -v -m 654 exercise4
mkdir: 已创建目录 &amp;#34;exercise4&amp;#34;
&lt;/code>&lt;/pre>&lt;h4 id="2touch-命令">2、touch 命令&lt;/h4>
&lt;p>&lt;strong>touch&lt;/strong>&lt;/p></description></item><item><title>Echo战队第1次培训——Linux文件与路径</title><link>https://redshome.top/posts/2022-11-22-24/</link><pubDate>Tue, 22 Nov 2022 00:00:00 +0800</pubDate><guid>https://redshome.top/posts/2022-11-22-24/</guid><description>&lt;h2 id="linux文件与路径">Linux文件与路径&lt;/h2>
&lt;h4 id="1文件结构">1、文件结构&lt;/h4>
&lt;p>​ Windows和Linux文件系统区别&lt;/p>
&lt;p>​ 在windows平台下，打开“此电脑”，我们可以看到盘符分区&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-22-24/images/04_107.png">&lt;/p>
&lt;p>​ 每个驱动器都有自己的根目录结构，这样形成了多个树并列的情形&lt;/p>
&lt;p>​ 但是在 Linux 下，我们是看不到这些驱动器盘符，我们看到的是文件夹（目录）：&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://redshome.top/posts/2022-11-22-24/images/04_108.png">&lt;/p>
&lt;p>​ Linux没有盘符这个概念，只有一个根目录/，所有文件都在它下面&lt;/p>
&lt;pre tabindex="0">&lt;code>[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
&lt;/code>&lt;/pre>&lt;p>​ 当我们输入ls / 可以查看更目录下的文件查看根目录下的系统文件&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>目录&lt;/th>
&lt;th>说明&lt;/th>
&lt;th>备注&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>bin&lt;/td>
&lt;td>存放普通用户可执行的指令&lt;/td>
&lt;td>即使在单用户模式下也能够执行处理&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>boot&lt;/td>
&lt;td>开机引导目录&lt;/td>
&lt;td>包括Linux内核文件与开机所需要的文件&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>dev&lt;/td>
&lt;td>设备目录&lt;/td>
&lt;td>所有的硬件设备及周边均放置在这个设备目录中&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>etc&lt;/td>
&lt;td>各种配置文件目录&lt;/td>
&lt;td>大部分配置属性均存放在这里&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>lib/lib64&lt;/td>
&lt;td>开机时常用的动态链接库&lt;/td>
&lt;td>bin及sbin指令也会调用对应的lib库&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>media&lt;/td>
&lt;td>可移除设备挂载目录&lt;/td>
&lt;td>类似软盘 U盘 光盘等临时挂放目录&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>mnt&lt;/td>
&lt;td>用户临时挂载其他的文件系统&lt;/td>
&lt;td>额外的设备可挂载在这里,相对临时而言&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>opt&lt;/td>
&lt;td>第三方软件安装目录&lt;/td>
&lt;td>现在习惯性的放置在/usr/local中&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>proc&lt;/td>
&lt;td>虚拟文件系统&lt;/td>
&lt;td>通常是内存中的映射,特别注意在误删除数据文件后，比如DB，只要系统不重启,还是有很大几率能将数据找回来&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>root&lt;/td>
&lt;td>系统管理员主目录&lt;/td>
&lt;td>除root之外,其他用户均放置在/home目录下&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>run&lt;/td>
&lt;td>系统运行是所需文件&lt;/td>
&lt;td>以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>sbin&lt;/td>
&lt;td>只有root才能运行的管理指令&lt;/td>
&lt;td>跟bin类似,但只属于root管理员&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>srv&lt;/td>
&lt;td>服务启动后需要访问的数据目录&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>sys&lt;/td>
&lt;td>跟proc一样虚拟文件系统&lt;/td>
&lt;td>记录核心系统硬件信息&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>tmp&lt;/td>
&lt;td>存放临时文件目录&lt;/td>
&lt;td>所有用户对该目录均可读写&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>usr&lt;/td>
&lt;td>应用程序放置目录&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>var&lt;/td>
&lt;td>存放系统执行过程经常改变的文件&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>​ 在 Linux 系统中，有几个目录是比较重要的，平时需要注意不要误删除或者随意更改内部文件。&lt;/p></description></item></channel></rss>