news 2026/1/9 9:32:21

SQL注入攻击:注释符号(# --)的详解与操作防范,网络安全零基础入门到精通实战教程!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL注入攻击:注释符号(# --)的详解与操作防范,网络安全零基础入门到精通实战教程!
文章目录
      • SQL 注入中的注释使用
          • 常见的注释符号
          • URL 编码中的注释
          • SQL 注释的实际应用
          • 提示注意:
      • 案例1:
      • 案例2:
      • `-- -` 注释案例详解
        • SQL注释的解释
        • 解析注入语句:`admin’ or ‘1’=‘1’-- -`
          • 1. `admin’`
          • 2\. `or ‘1’=‘1’`
          • 3. `-- -`
        • 结果
        • 总结


SQL 注入中的注释使用

SQL 语言允许使用注释,就像其他编程语言一样。注释通常用于记录查询中的某些部分或忽略查询的一部分。

在 SQL 注入攻击中,注释符号常常被用来绕过某些查询条件,或隐藏注入代码的部分内容。

常见的注释符号

在 MySQL 中,注释符号主要有两种形式:

  1. 单行注释:
    使用--作为注释符号。注意,两个破折号后面必须有一个空格,才能正确开始注释。例如:

    mysql> SELECT username FROM logins; -- 从 logins 表中选择用户名

    这里--后面跟着空格,表示从该位置开始注释,查询后部分不会被执行。

  2. 另一种单行注释:
    使用#符号,效果与--相同。这是另一种常见的注释形式:

    mysql> SELECT * FROM logins WHERE username = 'admin'; # 你可以在这里添加任何内容,AND password = 'something'
URL 编码中的注释

在浏览器的 URL 中,如果要使用#作为注释符号,浏览器通常将其视为锚点(fragment identifier),而不是 URL 的一部分。为了在 URL 中正确传递注释符号,必须使用 URL 编码。

SQL 注释的实际应用

在 SQL 查询中,注释可以用于忽略部分查询语句。例如,以下查询将密码条件AND password = 'something'注释掉:

SELECT * FROM logins WHERE username = 'admin'; -- AND password = 'something'

在这种情况下,查询将仅返回username = 'admin'的记录,忽略密码条件。

提示注意:

通过这种方式,服务器在执行 SQL 查询时,将忽略注释符号后面的部分。例如,在注释掉AND password = 'something'后,查询结果将只返回与用户名匹配的记录,而不会考虑密码条件。


案例1:
SELECT * FROM logins WHERE username='admin'-- ' AND password = 'something';

从语法高亮中我们可以看到,用户名现在是admin,查询的其余部分现在被忽略为注释。此外,通过这种方式,我们可以确保查询没有任何语法问题。

admin’-- 让我们尝试在登录页面上使用这些,并使用用户名和任何内容作为密码登录:

如我们所见,我们能够绕过身份验证,因为新修改的查询会检查用户名,而不需要其他条件。

案例2:

上述查询确保用户的 ID 始终大于 1,这将阻止任何人以管理员身份登录。此外,我们还看到密码在查询中使用之前已进行哈希处理。这将阻止我们通过密码字段进行注入,因为输入已更改为哈希值。

让我们尝试使用有效的凭据登录admin / p@ssw0rd以查看响应。

正如预期的那样,尽管我们提供了有效的凭据,但登录仍然失败,因为管理员的 ID 等于 1。因此,让我们尝试使用另一个用户的凭据登录,例如tom

以 id 不等于 1 的用户身份登录成功。那么,我们如何以管理员身份登录?从上一节关于注释的内容中我们知道,我们可以使用它们来注释掉查询的其余部分。因此,让我们尝试使用作为admin'--用户名。

由于语法错误,登录失败,因为闭合的括号与开的括号不匹配。要成功执行查询,我们必须添加一个闭合的括号。让我们尝试使用用户名admin')--来闭合并注释掉其余部分。

查询成功,我们以管理员身份登录。我们输入的最终查询结果是:

SELECT * FROM logins where (username='admin')

-- -注释案例详解

在SQL注入语句中,最后的-- -是用来注释掉后续的SQL代码,常用于绕过验证或者破坏查询逻辑。

SQL注释的解释

在SQL中,--是单行注释的标记,它表示从--开始的部分到行末都将被忽略。这意味着攻击者可以通过在SQL查询中插入--来注释掉查询中的其余部分,使得数据库只执行攻击者希望的部分。

解析注入语句:admin' or '1'='1'-- -

假设这是在一个登录页面的SQL查询中输入的用户名字段:

SELECT * FROM users WHERE username = 'admin' or '1'='1'-- -' AND password = 'password';
1.admin'
2.or '1'='1'
3.-- -
结果

最终,SQL查询会被数据库执行为:

SELECT * FROM users WHERE username = 'admin' or '1'='1'-- -' AND password = 'password';

由于--后面的部分被注释掉,查询实际上只会执行:

SELECT * FROM users WHERE username = 'admin' or '1'='1';
总结

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群

一、基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

二、能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/8 18:03:25

Windows系统文件samlib.dll缺失损坏问题 下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/1/6 5:38:43

鸣潮自动化工具完整使用教程:从零开始轻松掌握智能辅助

鸣潮自动化工具完整使用教程:从零开始轻松掌握智能辅助 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 还在为…

作者头像 李华
网站建设 2026/1/7 9:07:55

MethylDackel:BS-seq甲基化提取的终极利器

MethylDackel:BS-seq甲基化提取的终极利器 【免费下载链接】MethylDackel A (mostly) universal methylation extractor for BS-seq experiments. 项目地址: https://gitcode.com/gh_mirrors/me/MethylDackel MethylDackel是一款专为BS-seq(亚硫酸…

作者头像 李华
网站建设 2025/12/31 0:01:02

RookieAI_yolov8:2025年游戏AI自瞄技术完全指南

RookieAI_yolov8:2025年游戏AI自瞄技术完全指南 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 RookieAI_yolov8作为基于YOLOv8深度优化的开源AI自瞄项目,通过先进的…

作者头像 李华
网站建设 2025/12/30 5:39:16

pywebview与React集成的终极指南:高效构建跨平台桌面应用

pywebview与React集成的终极指南:高效构建跨平台桌面应用 【免费下载链接】pywebview Build GUI for your Python program with JavaScript, HTML, and CSS 项目地址: https://gitcode.com/gh_mirrors/py/pywebview 你是否厌倦了传统桌面应用开发的复杂性&am…

作者头像 李华