1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| select ==> echo 放到php相当于echo version( ); @@version; 显示数据库版本号 database( ) 查看当前使用的数据库 user( ) 当前连接数据库的用户及IP
concat( ) concat_ws( ) 把查询结果连接起来 可以加~分隔 concat_ws(1,'~',2,'~',3 ) group_concat ( ) left( ) 从左开始切割 left('hello world! ' ,5 ); 结果为hello right( ) 从右开始切割 substr( ) 从 * 开始取多少位的值 substr('hello world!',1,5) 从1开始往后取5位 (从1开始) substr('hello world!',10,5) 从10开始往后取5位 mid( ) substring( ) 用法和substr( )一样 拿数据时,1,10 9,20 19,30 截取数据时尽量1,2个字符重复,还原数据时不会出错
select 0x7e 输出为~ concat查询的时候可以把'~' 替换成 0x7e
/* */ 注释 -- ; 杠杠空格,把后面的注释 distinct 进行去重 放在select后
union select 联合查询 select `username`,`passwd` from `text` . `users` union select 1,2; select `username`,`passwd` from `text` . `users` union select user( ),version( ) ; order by 排序 放在表名的后面 select `username`,`passwd` from `text` . `users` order by `username `; 根据用户名排序 like 模糊查询 like '%a' a结尾的 like '%a%' 包含a的 like 'a%' a开头的 limit 取数据 select `username`,`passwd` from `text` . `users` limit 0,2 ; 下标为0开始取两行
select username,passwd from text.users where username = 'admin' union select 1,(select group_concat(schema_name) from information_schema.schemata); 查询text.users下username = 'admin' 对应的值,联合查询所有数据库
select username,passwd from text.users where username = 'admin' union select 1,(select group_concat(schema_name)from information_schema.schemata)
select username,passwd from text.users where username = 'admin' union select 1,(select group_concat(table_name)from information_schema.TABLES)
写文件 into dumpfile "filepath" //绝对路径 直接写二进制文件 into outpfile "filepath" //绝对路径 写文本文档的文件 select 123 into outfile/dumpfile '/var/www/html/eval/php'; 读文件 load_file(' filepath ') //绝对路径 select load_file(' /etc/passwd '); 一般情况将文件转成select hex(load_file(' /etc/passwd '); 16进制,然后再解码进行查看 select 123 into outfile “/users/Desktop/a.txt” 桌面创建一个a.txt 内容为123 mysql的 --secure-file-priv 限制写文件
本地 使用select hex(load_file(' /etc/passwd ')处理二进制文件 服务器上,执行select unhex(0x十六进制内容) into dumpfile "/tmp/a.exe"
union 后只能结合 select 使用 不能把两个同级别的语句放到一起,select delete
页面输出 只显示第一行
通过行数判断是否删除 修改密码,删除用户,注册用户,删除新闻,添加新闻 insert into updat delete
mysql_fetch_array( ) 关联数组和索引数组结合 mysql_fetch_assoc( ) 关联数组 mysql_fetch_row( ) 索引数组
mysql_affected_rows( ) 行数
|