记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

MYSQL 相关语句学习

2020-06-06 22:35

1、翻了下msyql问文档,貌似没看到对select中 and or的描述;

 

结论:

当字符串全部为字母,则0
当字符串第一个字符为数字,则为1
当字符串第一个字符为+-.,后面紧跟为数字时,为1

当空值null 与数字 ,则为0;与0 则为null
::null介于1与0 之间

 

2、SQL语句的短路 and 短路or:

mysql中 and即&& or即 || 本身为短路与或;

SELECT 'xxxx'
	AND (
		SELECT CASE 
				WHEN 11 = 11 THEN SLEEP(1)
				ELSE 1
			END
	)

SELECT '111'
	AND (
		SELECT CASE 
				WHEN 11 = 11 THEN SLEEP(1)
				ELSE 1
			END
	)

 

 

 

3、nullif(a,b):

当a=b,则返回null,当a!=b 则返回a;

类似于

CASE  WHEN a= b THEN NULL ELSE   a  END

4、ifnull(a,b):

假如b不为NULL,则 IFNULL() 的返回值为a; 否则其返回值为 b。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境

 

在实战中,结合ifnull/nullif,构造比较简单的语句:

title_id=123″ OR IFNULL((nullif(length(database()),12)),SLEEP(1)) and “1”=”1

 

5、更多可参考https://www.t00ls.net/viewthread.php?tid=55278

 

6、MySQL文档地址:

https://dev.mysql.com/doc/refman/8.0/en/control-flow-functions.html

 

 

 

 

 

 


知识来源: vulsee.com/archives/vulsee_2020/0606_11283.html
想收藏或者和大家分享这篇好文章→复制链接地址

“MYSQL 相关语句学习”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

ADS

标签云

本页关键词