Timing Attack 周边感应sql

直接上硬菜。盲注的一段语句:

1170 UNION SELECT IF(SUBSTRING(current,1,1)) = CHAR(119) , BENCHMARK(5000000,ENCODE('MSG','by 5 seconds')),null) FROM (SELECT Database() as current) as tb1;

意思是想搞库名。判断库名的第一个字母时否是w(CHAR(119))。如果为真那就会通过BENCHMARK()函数造成较长延时,如果不为真很快就执行完了。这样遍历所有的字母把库名全部验证完为止。

看着都不熟悉了,挨着从新学一遍,加油。

UNION 和UNION ALL作用:合并两个或者多个select相同列结果集。只要保证列相同就行

UNION:筛选去重合并。

UNION ALL:简单粗暴的合并,显示所有结果。

eg:

SELECT User,Sex FROM usertab1 UNION SELECT User,Sex FROM usertab2;#结果总共条数12条,因为过滤了重复的

SELECT User,Sex FROM usertab1 UNION ALL SELECT User,Sex FROM usertab2;#结果总共条数38条,简单合并拼接

SUBSTRING作用:字符截取,SUBSTRING(被截取字段,截取开始位置,截取长度)

eg:

SELECT SUBSTRING(UserName,1,1) AS fristname,UserName FROM users;#fristname列查询出UserName列中值的第一个字符

BENCHMARK作用:BENCHMARK(函数执行次数,表达式)

eg:

select BENCHMARK(1000000,MD5('8087878766d'));#结果为0,时间: 0.321s,时间为客户端经过时间

ENCODE:扯出了一堆加密函数,ENCODE(str,key)   使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串,它以BLOB类型存储

原文地址:https://www.cnblogs.com/little-bee/p/6208307.html