<?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>Web安全 on 鬼属文</title>
    <link>https://www.renjiaxing.ren/tags/web%E5%AE%89%E5%85%A8/</link>
    <description>Recent content in Web安全 on 鬼属文</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 04 Aug 2026 10:00:00 +0800</lastBuildDate>
    <atom:link href="https://www.renjiaxing.ren/tags/web%E5%AE%89%E5%85%A8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>SQL 注入 Low(1)：字符型注入与手工测试流程</title>
      <link>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0804_01_sql%E6%B3%A8%E5%85%A5_low_%E5%AD%97%E7%AC%A6%E5%9E%8B%E6%B3%A8%E5%85%A5%E4%B8%8E%E6%89%8B%E5%B7%A5%E6%B5%8B%E8%AF%951/</link>
      <pubDate>Tue, 04 Aug 2026 10:00:00 +0800</pubDate>
      <guid>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0804_01_sql%E6%B3%A8%E5%85%A5_low_%E5%AD%97%E7%AC%A6%E5%9E%8B%E6%B3%A8%E5%85%A5%E4%B8%8E%E6%89%8B%E5%B7%A5%E6%B5%8B%E8%AF%951/</guid>
      <description>&lt;h2 id=&#34;第一部分sql-注入概述&#34;&gt;第一部分：SQL 注入概述&lt;/h2&gt;
&lt;h3 id=&#34;什么是-sql-注入&#34;&gt;什么是 SQL 注入&lt;/h3&gt;
&lt;p&gt;SQL 注入（SQL Injection）是将&lt;strong&gt;恶意的 SQL 语句片段&lt;/strong&gt;插入到应用程序的输入参数中，让后端数据库&lt;strong&gt;误以为这是合法的查询指令&lt;/strong&gt;并执行它。&lt;/p&gt;
&lt;p&gt;简单说：&lt;strong&gt;你的输入被当作代码执行了。&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;正常请求：
  浏览器 → 输入 user_id=1 → 服务器 → SQL: SELECT * FROM users WHERE id=&amp;#39;1&amp;#39; → 返回 admin

注入请求：
  浏览器 → 输入 user_id=1&amp;#39; or &amp;#39;1&amp;#39;=&amp;#39;1&amp;#39; # → 服务器 → SQL 被篡改 → 返回全部用户数据
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;为什么-sql-注入能成立&#34;&gt;为什么 SQL 注入能成立&lt;/h3&gt;
&lt;p&gt;三个条件同时满足：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;用户输入直接拼接到 SQL 语句中&lt;/strong&gt;（没有参数化查询）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输入中的特殊字符（&lt;code&gt;&#39;&lt;/code&gt;、&lt;code&gt;&amp;quot;&lt;/code&gt;、&lt;code&gt;--&lt;/code&gt;、&lt;code&gt;#&lt;/code&gt;）没有被转义或过滤&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据库把拼接后的字符串当作 SQL 执行&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这三个条件缺一个，注入就不成立。&lt;/p&gt;
&lt;h3 id=&#34;注入的本质脱离数据上下文进入代码上下文&#34;&gt;注入的本质：脱离数据上下文，进入代码上下文&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; users &lt;span style=&#34;color:#66d9ef&#34;&gt;WHERE&lt;/span&gt; id &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;后引号（后端写死的）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;前引号（后端写死的，你的输入从它后面开始）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- 正常输入时，你的数据在引号里——是&amp;#34;数据&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- 你的输入里包含 &amp;#39; 后，你提前闭合了引号——后面的内容进入了&amp;#34;代码&amp;#34;区域
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- 这就是注入的本质
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;什么是-payload&#34;&gt;什么是 Payload&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Payload = 攻击载荷 = 你精心构造的那段输入字符串。&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQL 注入基础：字符型注入与手工测试流程</title>
      <link>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0804_01_sql%E6%B3%A8%E5%85%A5%E5%9F%BA%E7%A1%80_%E5%AD%97%E7%AC%A6%E5%9E%8B%E6%B3%A8%E5%85%A5%E4%B8%8E%E6%89%8B%E5%B7%A5%E6%B5%8B%E8%AF%95/</link>
      <pubDate>Tue, 04 Aug 2026 10:00:00 +0800</pubDate>
      <guid>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0804_01_sql%E6%B3%A8%E5%85%A5%E5%9F%BA%E7%A1%80_%E5%AD%97%E7%AC%A6%E5%9E%8B%E6%B3%A8%E5%85%A5%E4%B8%8E%E6%89%8B%E5%B7%A5%E6%B5%8B%E8%AF%95/</guid>
      <description>&lt;h2 id=&#34;第一部分sql-注入概述&#34;&gt;第一部分：SQL 注入概述&lt;/h2&gt;
&lt;h3 id=&#34;什么是-sql-注入&#34;&gt;什么是 SQL 注入&lt;/h3&gt;
&lt;p&gt;SQL 注入（SQL Injection）是将&lt;strong&gt;恶意的 SQL 语句片段&lt;/strong&gt;插入到应用程序的输入参数中，让后端数据库&lt;strong&gt;误以为这是合法的查询指令&lt;/strong&gt;并执行它。&lt;/p&gt;
&lt;p&gt;简单说：&lt;strong&gt;你的输入被当作代码执行了。&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;正常请求：
  浏览器 → 输入 user_id=1 → 服务器 → SQL: SELECT * FROM users WHERE id=&amp;#39;1&amp;#39; → 返回 admin

注入请求：
  浏览器 → 输入 user_id=1&amp;#39; or &amp;#39;1&amp;#39;=&amp;#39;1&amp;#39; # → 服务器 → SQL 被篡改 → 返回全部用户数据
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;为什么-sql-注入能成立&#34;&gt;为什么 SQL 注入能成立&lt;/h3&gt;
&lt;p&gt;三个条件同时满足：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;用户输入直接拼接到 SQL 语句中&lt;/strong&gt;（没有参数化查询）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输入中的特殊字符（&lt;code&gt;&#39;&lt;/code&gt;、&lt;code&gt;&amp;quot;&lt;/code&gt;、&lt;code&gt;--&lt;/code&gt;、&lt;code&gt;#&lt;/code&gt;）没有被转义或过滤&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据库把拼接后的字符串当作 SQL 执行&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这三个条件缺一个，注入就不成立。&lt;/p&gt;
&lt;h3 id=&#34;注入的本质脱离数据上下文进入代码上下文&#34;&gt;注入的本质：脱离数据上下文，进入代码上下文&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; users &lt;span style=&#34;color:#66d9ef&#34;&gt;WHERE&lt;/span&gt; id &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;后引号（后端写死的）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;前引号（后端写死的，你的输入从它后面开始）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- 正常输入时，你的数据在引号里——是&amp;#34;数据&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- 你的输入里包含 &amp;#39; 后，你提前闭合了引号——后面的内容进入了&amp;#34;代码&amp;#34;区域
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- 这就是注入的本质
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;什么是-payload&#34;&gt;什么是 Payload&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Payload = 攻击载荷 = 你精心构造的那段输入字符串。&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
