sqlilabs23-28a关
空格替代:
:tab(水平)
%0a:新建一行
%0c:新建一页
%0d:return
%0b:tab(垂直)
%a0:空格
/**/:代替空格
less-23操作过程
1.做23关的时候,发现各种注释符都被过滤了,那么我们可以怎么绕过注释符来进行操作呢,首先通过报错,来获取到他的闭合方式
2.了解到闭合方式之后,我们就可以利用‘or (1)or ‘ 的方式,绕过使用注释符,完整的sql为 select * from users where id = ’‘ or (1) or ’‘ limit 0,1,这样就不用注释符了
3.可以使用报错注入,来获取些信息,比如当前当前数据库
4.再来获取下表名,还有其他的一些操作都是可以的
less-24操作过程
一阶注入和二阶注入区别
一阶注入原理
(1)一阶SQL注入发生在一个HTTP请求和响应中,对系统的攻击是立即执行的;
(2)攻击者在http请求中提交非法输入;
(3)应用程序处理非法输入,使用非法输入构造SQL语句;
(4)在攻击过程中向攻击者返回结果。
二阶注入原理:
(1)攻击者在http请求中提交恶意输入;
(2)恶意输入保存在数据库中;
(3)攻击者提交第二次http请求;
(4)为处理第二次http请求,程序在检索存储在数据库中的恶意输入,构造SQL语句;
(5)如果攻击成功,在第二次请求响应中返回结果
1.less24就是一个二次注入的关卡,通过查看源码,可以得知,在修改密码的页面可以产生注入,大致思路就是:
1)先注册一个username= admin’#的用户
2)登陆
3)修改密码
2.
3.实测
登陆
修改admin‘#的密码
使用admin登陆原密码admin,登陆失败
使用改过的密码,成功
less-25操作过程
25关的思路很简单,他就是把and和or过滤了,我们不使用and和or 就可以了
1.?id=1’试错
2.使用注释符,看有没有被过滤,发现不报错
3.我们不使用and 和 or而是用 || 或者 && 的时候,发现报错,这让我们知道我们的注释符没效果
4.所以我们使用less23的方式来试试,发现可以
5.报错注入发现没问题,我们思路正确
6.剩下的参考less23.。。。。
less-25a操作过程
操作和24基本相同,只不过他是属于整型,直接一条sql?id=-1 union select 1,database(),3
less-26操作过程
less26和25一样,在过滤or和and 还有注释符的基础上,有过滤了空格,只需要我们不使用空格,使用其他的空格表示法就可以了,他的闭合方式和less25也相同,下面直接给出注入内容,获取当前数据库名称?id=1‘ || (select
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/SQL/12336.html