SQLi LABS Less-25a

简介: 第25a关使用GET请求传递参数,在url地址栏中构造payload即可后端源码中过滤了and和or,但只过滤了一次,我们可以通过双写绕过

第25a关使用GET请求传递参数,在url地址栏中构造payload即可


后端源码中过滤了and和or,但只过滤了一次,我们可以通过双写绕过

image.png             在url地址栏中输入 1 anandd true -- a,登录成功;输入 1 anandd false -- a,登录失败,用户可以通过参数使SQL恒成立或恒不成立,从而改变SQL的执行结果,由此推断存在SQL注入,注入点为整数型注入


源码中的SQL是这样的


image.png


我们输入  1 anandd true -- a 时,过滤掉and并拼接到SQL中是下面这样的


image.png


注释后面的内容不起作用,所以真正执行的SQL是下面这样的


image.png


SQL恒成立,可以正常查询处数据,固登录成功


image.png



当我们输入 1 anandd false -- a时,过滤掉and后拼接到SQL中是下面这样的


image.png


去掉注释后面的内容后,真正执行的SQL是这样的


image.png


SQL恒不成立,查询不到数据,所以会返回空数据

image.png

接下来就可以用布尔盲注进行脱库了

1 anandd length(database())>1 -- a

image.png


相关文章
SQLi LABS Less-30
第30关使用GET请求传递参数,在url中构造payload即可 后端源码中并没有做什么过滤,只是在参数两边添加了双引号
148 0
SQLi LABS Less-30
SQLi LABS Less-31
第31关的源码中并未对参数做过多的过滤,只是在参数两边拼接了双引号和括号
157 0
SQLi LABS Less-31
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-22
2关使用POST请求提交参数,对账号和密码中的特殊字符执行了转译的操作,难度较大
116 0
SQLi LABS Less-22
SQLi LABS Less-27
第27关使用GET请求传递参数,在url中构造payload即可 源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则
350 0
SQLi LABS Less-27
SQLi LABS Less-23
第23关使用GET请求传递参数,在url地址栏构造payload即可 此关卡对注释符号进行了过滤,因此不能使用注释符,可以使用单引号闭合,使SQL的语法结构成立
157 0
SQLi LABS Less-23
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-21
21关使用POST请求提交参数,对用户名和密码中的特殊字符进行了转译,难度较大
171 0
SQLi LABS Less-21
|
SQL 数据库
SQLi LABS Less-27a
第27关使用GET请求提交参数,在url地址栏中构造payload即可 后端源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则
182 0
SQLi LABS Less-27a
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-16
第16关使用POST请求提交参数,可以使用代理工具抓包或直接在输入框中修改参数 后端代码根据用户输入账号和密码去数据库中查询,查询成功则返回登录成功,否则返回登录失败,页面没有显示的数据,SQL语句中使用了错误抑制符@来限制数据库的报错信息,因此不能使用联合注入或报错注入,推荐使用布尔盲注,源码如下
156 0
SQLi LABS Less-16
|
SQL 数据库
SQLi LABS Less-5
第五关请求方式为GET请求 , 注入点为 单引号字符串型注入 , 注入类型为 报错注入 报错注入常用(我觉得)的是 updatexml() , 该函数的第2个参数包含特殊字符时会报错,并将第2个参数的内容返回到错误信息中
169 0
SQLi LABS Less-5
|
SQL 安全 数据库
SQLi LABS Less-17
第十七关请求方式为POST请求 , 注入点为 单引号字符型注入 , 注入方式为 报错注入 第一步,判断注入类型
175 0
SQLi LABS Less-17