<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SQLi on PseudorandomDog&#39;s Blog</title>
    <link>https://binarydog.top/tags/sqli/</link>
    <description>Recent content in SQLi on PseudorandomDog&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 20 Nov 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://binarydog.top/tags/sqli/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>WebGoat笔记之三：Injection</title>
      <link>https://binarydog.top/posts/webgoat/webgoat-a3-injection/</link>
      <pubDate>Wed, 20 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://binarydog.top/posts/webgoat/webgoat-a3-injection/</guid>
      <description>&lt;h2 class=&#34;heading&#34; id=&#34;sql-injection-intro&#34;&gt;&#xA;  SQL Injection (intro)&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#sql-injection-intro&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;SQL 是下面三个概念的实现：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Data Manipulation Language, DML&lt;/li&gt;&#xA;&lt;li&gt;Data Definition Lanaguage, DDL&lt;/li&gt;&#xA;&lt;li&gt;Data Control Language, DCL&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;DML 是最主要的部分，即增删改查&lt;/p&gt;&#xA;&lt;p&gt;SQL 的实现为 &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;DELETE&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt;, &lt;code&gt;SELECT&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;INSERT/UPDATE&lt;/code&gt; 体现完整性 (Integrity)&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;SELECT&lt;/code&gt; 体现机密性 (Confidentiality)&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;UPDATE/DELETE&lt;/code&gt; 体现可用性 (Availability)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-mysql&#34; data-lang=&#34;mysql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c678dd&#34;&gt;UPDATE&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;employees&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;SET&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;department&lt;/span&gt;&lt;span style=&#34;color:#56b6c2&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#98c379&#34;&gt;&amp;#39;Sales&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;WHERE&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;first_name&lt;/span&gt; &lt;span style=&#34;color:#56b6c2&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#98c379&#34;&gt;&amp;#39;Tobi&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;DDL 定义数据格式和数据库的结构 (schema)&lt;/p&gt;&#xA;&lt;p&gt;SQL 的实现为 &lt;code&gt;CREATE (TABLE)&lt;/code&gt;, &lt;code&gt;DROP (TABLE)&lt;/code&gt;, &lt;code&gt;ALTER (TABLE)&lt;/code&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-mysql&#34; data-lang=&#34;mysql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c678dd&#34;&gt;ALTER&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;TABLE&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;employees&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;ADD&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;COLUMN&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;phone&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;20&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;DCL 负责实现用户访问控制的功能&lt;/p&gt;&#xA;&lt;p&gt;SQL 的实现为 &lt;code&gt;GRANT&lt;/code&gt;, &lt;code&gt;REVOKE&lt;/code&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-mysql&#34; data-lang=&#34;mysql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c678dd&#34;&gt;GRANT&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;ALL&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;ON&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;grant_rights&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;TO&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;unauthorized_user&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;实验使用的几个 payload&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;123&#39; or 1=1--aa&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;123&#39;;UPDATE employees SET salary=100000 WHERE userid=37648--aa&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;123&#39;;DROP TABLE access_log--aa&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;sql-injection-advanced&#34;&gt;&#xA;  SQL Injection (advanced)&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#sql-injection-advanced&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 class=&#34;heading&#34; id=&#34;实验一联表查询&#34;&gt;&#xA;  实验一：联表查询&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%e5%ae%9e%e9%aa%8c%e4%b8%80%e8%81%94%e8%a1%a8%e6%9f%a5%e8%af%a2&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#abb2bf;background-color:#282c34;-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:#c678dd&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;TABLE&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;user_data&lt;/span&gt; (&lt;span style=&#34;color:#e06c75&#34;&gt;userid&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;not&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;null&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#e06c75&#34;&gt;first_name&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;20&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#e06c75&#34;&gt;last_name&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;20&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#e06c75&#34;&gt;cc_number&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;30&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#e06c75&#34;&gt;cc_type&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;10&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#e06c75&#34;&gt;cookie&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;20&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#e06c75&#34;&gt;login_count&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;int&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-mysql&#34; data-lang=&#34;mysql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c678dd&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;TABLE&lt;/span&gt; &lt;span style=&#34;color:#61afef;font-weight:bold&#34;&gt;user_system_data&lt;/span&gt; (&lt;span style=&#34;color:#e06c75&#34;&gt;userid&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;not&lt;/span&gt; &lt;span style=&#34;color:#e06c75&#34;&gt;null&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;primary&lt;/span&gt; &lt;span style=&#34;color:#c678dd&#34;&gt;key&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&#x9;                   &lt;span style=&#34;color:#e06c75&#34;&gt;user_name&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;12&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&#x9;                   &lt;span style=&#34;color:#e06c75&#34;&gt;password&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;10&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&#x9;                   &lt;span style=&#34;color:#e06c75&#34;&gt;cookie&lt;/span&gt; &lt;span style=&#34;color:#e5c07b&#34;&gt;varchar&lt;/span&gt;(&lt;span style=&#34;color:#d19a66&#34;&gt;30&lt;/span&gt;));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;实验提供了一个以 &lt;code&gt;last_name&lt;/code&gt; 查询表一的接口，需要通过该接口的 SQL 注入漏洞查询到表二&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
