专做坏消息的网站,餐馆建设网站的目的是什么,网站建设公司antnw,wordpress 执行效率前言 我们在使用Sql-libs靶场进行Sql注入实验的时候#xff0c;前提要求我们对mysql数据库结构要有一个大概的了解#xff0c;因为mysql5.0以上的版本都会自带一个名为information_schema的数据库#xff0c;这个数据库下面会有columns和tables两个表。 tables这个表的table…前言 我们在使用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输入?id1在数据库中查询到如下字段 2.通过输入的id的值不同我们发现返回的内容会不同 3.判断注入的类型是否为拼接并且是字符型还是符号型 我们可以输入id1\通过加 \ 的方式判断闭合\后面的符号就是闭合符号见页面出现错误即位字符型 输入?id1‘ 报错 在上述字段后加入–显示正常说明是单引号 ’ 闭合 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_schemadatabase()--7.爆字段名
union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers--8.爆字段中的内容 根据上一步爆出的字段名usernmaepassword进行查询即可
union select 1,2,group_concat(username,password) from users至此第一关就结束了第二关与第一关的步骤相同不同的是第二关是数字型注入
总结 Sql注入要求我们对数据库的结构要有一个大概的了解这要就能更容易去操作