一.注入原理:
sql注入原理是在向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。
二.一般思路:
库名 —> 表名 —> 字段名 —> 字段对应的内容
三.注入方式:
手动注入
1.HackBar的使用
2.SQL注入
绕过:双写绕过;大小写绕过;十六进制;URL编码
过滤空格: 注释 【-- // /* */ ;%00 %23 #】 空白字符 (下面列举了常见的空白字符可以用来绕过空格过滤的空白字符(十六进制)) SQLite3 — 0A,0D,0C,09,20 MySQL5 — 09,0A,0B,0C,0D,A0,20 PosgresSQL — 0A,0D,0C,09,20 oracle 11g — 00,0A,0D,0C,09,20 特殊符号 反引号;加号;科学计数法
过滤单引号:在注入点加%df
读写文件: load_file into outfile/dumpfile
3.SQL注入步骤
构造注入语句
手动利用公式构造注入
select database() # 查询当前数据库
select 函数(table_name) from information_schema.tables where table_schema=database() limit 0,1 # 查询当前数据库中第一个表
select 函数(column_name) from information_schema.columns where table_schema=database() and table_name='当前表' limit 0,1# 查询当前表中的第一个字段
select 函数(字段名) from 表名 limit 0,1 # 查询当前表中的对应的第一个字段的内容
4.函数
工具注入
1.sqlmap的使用
2.ZAP 的使用 3.BP的使用
注明:
本文仅供读者学习所用,请不要做有些违反法律的事情 。该课程笔记来源于B站寒冰之雪(ID:472015351),本人授权发布,若有转载请标明来源 ,欢迎大家一起加入学习