初步理解SQL注入(一)

1
2
爆库:获取数据库名
爆表:获取表名

原理

SQL注入的原理是利用应用程序在构建SQL查询语句时未对用户输入进行充分的验证和过滤。
攻击者可以通过在输入字段中插入特殊字符或SQL语句片段,改变原始的SQL查询逻辑,从而执行恶意操作。

分类–严格意义来说这样分类是错误的,应该用数据库名命名

基于错误的注入

盲注注入

堆叠查询注入

命令执行注入

利用

攻击者可以通过构造恶意的输入数据,包括SQL语句片段、特殊字符和转义序列等,来利用SQL注入漏洞。
利用的目的可以包括绕过身份验证、获取敏感数据、修改数据库内容或执行任意的操作等。

防范

使用参数化查询或预编译语句,确保输入数据与查询逻辑分离。
对用户输入进行严格的验证和过滤,包括输入长度、数据类型和特殊字符等。
最小化数据库账户的权限,限制对数据库的操作。
定期更新和修补应用程序,以修复已知的SQL注入漏洞。
使用Web应用程序防火墙(WAF)等安全工具来检测和阻止SQL注入攻击。

1
2
3
4
5
6
7
8
9
注入“万能”公式
字符型:
1' or 1=1 #
1' and 1=1 #
1' or 1=1 -- --后面加空格否则报错
1' and 1=1 -- --后面加空格否则报错
' or '1'='1
数字型:
1 or 1=1 #--以此类推