SQL注入初步了解
- 什么是SQL注入
- SQL注入原理
- SQL注入方法
- 确定三件事:
- 方法
- SQL注入危害
什么是SQL注入
SQL 注入(SQL Injection)是一种常见的 Web 安全漏洞,攻击者通过构造恶意的 SQL 查询语句,欺骗后端数据库执行非预期的操作,从而获取、篡改或删除数据库中的敏感数据,甚至控制整个服务器。
SQL注入原理
Web 应用程序通常使用 用户输入的数据(如表单、URL 参数、Cookies)来构造 SQL 查询语句。如果程序没有对用户输入进行严格的过滤或转义,攻击者就可以插入恶意的 SQL 代码,改变原本的 SQL 查询逻辑。
比如说一下情况:
假设一个网站的登录功能使用以下 SQL 查询:
sql">SELECT * FROM users WHERE username = '$username' AND password = '$password';
若登录输入:
用户名:admin’ –
密码:任意
则sql查询将变为
sql">SELECT * FROM users WHERE username = 'admin' --' AND password = '123';
– 是 SQL 注释符,后面的语句会被忽略,导致攻击者可以绕过密码验证,直接以 admin 身份登录。
SQL注入方法
确定三件事:
-
确定web应用程序所使用的技术
注入攻击对程序语言或者硬件关系密切 -
查找注入点
比如:
明显输入:HTML表单
隐藏输入:http头部,cookics,甚至对用户不可见的后端Ajax请求来跟微博应用进行交互
-
查找可以用于注入的用户输入
方法
- 手工注入
- 利用工具注入
流行注入工具sqlmap