SQLi LABS Less-27a

简介: 第27关使用GET请求提交参数,在url地址栏中构造payload即可后端源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则

第27关使用GET请求提交参数,在url地址栏中构造payload即可


后端源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则


image.png       由于源码中过滤了--和#等注释,而且在id两边拼接了双引号,我们可以考虑不使用注释,而是使用双引号闭合来确保SQL语法的正确性,从而实现绕过


针对空格的过滤,我们可以使用括号()来替代空格


至于select和union等关键字的过滤,由于其没有严格过滤大小写,我们可以使用大小写来绕过


先在url中输入 1"and"1,参数拼接到SQL中会变成下面这样


image.png


and后面的"1"会被转换成true,是SQL恒成立,正常查询处用户信息,从而显示在页面中


image.png



接下来输入 1"and"0,参数拼接到SQL中是下面这个样子

image.png

and后面的"0"会转换成false,使SQL恒不成立,查询不出用户信息导致页面空显示

image.png

用户输入的参数可以是SQL恒成立或恒不成立,从而控制SQL的执行结果,也就意味着存在SQL注入,注入点为双引号字符型注入,由于报错信息被写死了,这一关可以使用布尔盲注

1"and(length(database())>1)and"1

页面正常显示信息说明条件成立,由此可以判断出数据库的长度大于1

image.png

依次增加长度到8时,页面空显示,意味着条件不成立,也就是说数据库的长度是8

1"and(length(database())>8)and"1

image.png



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