2021-10-17

sql个人学习之旅1

sqli-labs

less-1:
1.为使更清楚的了解我们自己输入的语句最终成了什么模样,所以找到该关对应的PHP文件,找到$sql=“selet * from users where id =’ $id’ LIMIT 0,1”;回车,添加如图在这里插入图片描述2.来到关卡界面,正式迎战
将http://127.0.0.1/sqli-labs-php7-master/Less-1变为
http://127.0.0.1/sqli-labs-php7-master/Less-1/?id=1回车,显示如图:
在这里插入图片描述不难发现输出的是 $sql这个变量里的内容,只不过用1替换了原来位置上的 $id,想想,如果输入1’会是啥状况,如图:
在这里插入图片描述果然如大家所料,很明显1右边多带的这一撇恰好和原来本就存在的一对引号的左撇闭合,无奈就剩下一个右撇不能登对儿,就会报错了,不过还是有解决方法的,用–+或者是# 来舍弃孤零零的右撇就好了,如图:
在这里插入图片描述3.此时,用order by来看看有几列数据,假设是3列
id=1’ order by 3–+ 回车,如图:在这里插入图片描述正确,说明起码有三列数据,那再试试4呢,发现报错
在这里插入图片描述说明有3列,接下来就用union联合查询了
4.union联合查询时,id=-1才能返回union联合查询语句
我们不妨用 union select 1,2,3 来看看返回情况
在这里插入图片描述发现返回的是2和3,说明2和3这两个位置大有用处,可以用来查询信息,暂且选择2这个位置吧
5.将2这个位置替换成group_concat(schema_name),然后在3后面说清楚在哪里查,即
from information_schema.schemata
[小话匣
(1)group_concat:为的是将找到的数据排成一行
(2)information_schema 是MYSQL自带的信息数据库,其中保存着关于mysql服务器所维护的所有其他数据库的信息,可以通过其下的schemata表查询数据库名~~
(3)schema_name:数据库名 ]

id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata--+

在这里插入图片描述爆出很多数据库名,直觉选security这个数据库去找相关用户登录信息
6.根据选的数据库名security,去找其中的表名

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

table_schema:表所在的数据库,指明了要去security这个数据库去找有哪些表名
在这里插入图片描述7.以此类推,依据表名(users)查列名(column_name)
在这里插入图片描述

-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name="users"--+

最终再在users表中查字段名username ,password

-1' union select 1,username,password from users where id=1--+

在这里插入图片描述这里输入的是where id=1,换成不同的id就会有不同的用户名和密码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

All things胜意

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值