当前位置:首页 > 数据库 > 正文

sqlilabs23-28a关

2024-03-31 数据库

空格替代:

: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