less_01

对sql注入一直是一知半解的,准备抽出时间好好去学习一下,虽然网上有很多的大佬写的都很详细,但是还是想自己写一下,后面自己再看看。所以自己搭建了SQLlib靶场。希望能够正确的学会sql注入是什么。
sqllib-less_01
初始页面是这样的–> 其中的提示是说:请输入ID作为带数值的参数
在这里插入图片描述当在url后面输入了 ?id=1后页面出现了下面的情况:(后面就要开始正式的sql注入了。)
在这里插入图片描述首先呢,在这个页面中,我们需要的是去判断这个网页是否也注入点:
常用的方法:
1.在url尾端参数后面添加 ’ ,如果网页报错则可能存在sql注入漏洞;原因是无论字符型还是整型都会因为单引号个数不匹配而报错。
2.数字型判断是否有注入
and 1=1 // 返回正常页面,这是因为没有语法错误而且逻辑判断正确;
and 1=2 // 返回报错页面,这是因为没有语法错误但是逻辑判断(1不等于2)为假,所以返回错误。
3.字符型判断是否有注入(原因和数字型判断类似)
‘and ‘1’ = ‘1 //返回正常页面
‘and ‘1’ = ‘2 //返回报错页面
在less_01中,我们用第一中就能很明显看到错误的页面:
aa报错的内容是:您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以获取在第1行“1”限制0,1附近使用的正确语法。(能清楚的知道,在这个网页中是存在sql注入的)
也就是说 ‘‘1’’ LIMIT 0,1’ 这里有错误。其中的 ’ 是我们自己添加的,可以清楚的看到是少 ’ ’ 了闭合,这是主要字符型注入。
在这里就需要将我们不需要的 ’ 去掉。让后台的sql语句执行我们想要的数据。一般的是**#**去注释到后面的单引号,但是在这里都不行,这里用到的是 --+或者是%23,后面去网上看了许多大佬的博客,看了许多大佬的博客了解到一点东东。。。单纯的 – 无法使用的原因,是因为–与后面的单引号连接在一起,无法形成有效的mysql语句;后面的 + 号在语句中变成了空格。用来和后面的单引号分隔开,将后面的语句注释。从而到达我们前面想要注释后面这个 ’ 的作用。
%23就是#翻译过的编码。
在这里插入图片描述在这里插入图片描述然后通过二分法获取字段的长度,关键词 order by 。其中长度4,页面错误;长度3,页面正常显示。所以在这题中,字段的长度为3。
在这里插入图片描述然后是去找回显点,从这开始主要是用到联合查询,关键词 union select。其中,我们要想执行我们自己输入的sql语句呢,需要将前面的参数id设置为假。
在这里插入图片描述后面就是正常的用联合查询获取当前数据库名和版本信息(主要信息)。
?id=-1’ union select 1,database(),version() --+
在这里插入图片描述获取表名,?id=-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=“security” --+
在这里插入图片描述通过猜测和一一测试,可以知道我们相要的数据在users表中,所以继续获取列名(column),-1’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name=“users” --+
在这里插入图片描述最后我们去爆破username和password。?id=-1’ union select 1,group_concat(username,2,password),3 from users --+
在这里插入图片描述这个我前面做出来过。但是现在重新做和去找资料,感觉还是有学到东西的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值