# 查看first_name和password的内容 MySQL [dvwa]> select first_name,password from users; +------------+----------------------------------+ | first_name | password | +------------+----------------------------------+ | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | | Gordon | e99a18c428cb38d5f260853678922e03 | | Hack | 8d3533d75ae2c3966d7e0d4fcc69216b | | Pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 | | Bob | 5f4dcc3b5aa765d61d8327deb882cf99 | +------------+----------------------------------+ 5 rows in set (0.001 sec)
# 查看first_name和password的内容过滤里面带admin和Bob # where first_name 就是过滤first_name的字段的内容 MySQL [dvwa]> select first_name,password from users where first_name in ('admin','Bob'); +------------+----------------------------------+ | first_name | password | +------------+----------------------------------+ | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | | Bob | 5f4dcc3b5aa765d61d8327deb882cf99 | +------------+----------------------------------+ 2 rows in set (0.001 sec)
# 查看first_name和password的内容 MySQL [dvwa]> select first_name,password from users; +------------+----------------------------------+ | first_name | password | +------------+----------------------------------+ | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | | Gordon | e99a18c428cb38d5f260853678922e03 | | Hack | 8d3533d75ae2c3966d7e0d4fcc69216b | | Pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 | | Bob | 5f4dcc3b5aa765d61d8327deb882cf99 | +------------+----------------------------------+ 5 rows in set (0.001 sec)
# 查看first_name和password的内容过滤里面不能带有admin和Bob # where first_name 就是过滤first_name的字段的内容 MySQL [dvwa]> select first_name,password from users where first_name not in ('admin','Bob'); +------------+----------------------------------+ | first_name | password | +------------+----------------------------------+ | Gordon | e99a18c428cb38d5f260853678922e03 | | Hack | 8d3533d75ae2c3966d7e0d4fcc69216b | | Pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 | +------------+----------------------------------+ 3 rows in set (0.001 sec)
# 查看first_name和password的内容 MySQL [dvwa]> select first_name,password from users; +------------+----------------------------------+ | first_name | password | +------------+----------------------------------+ | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | | Gordon | e99a18c428cb38d5f260853678922e03 | | Hack | 8d3533d75ae2c3966d7e0d4fcc69216b | | Pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 | | Bob | 5f4dcc3b5aa765d61d8327deb882cf99 | +------------+----------------------------------+ 5 rows in set (0.001 sec)
MySQL [dvwa]> select first_name,password from users where first_name not like 'admin'; +------------+----------------------------------+ | first_name | password | +------------+----------------------------------+ | Gordon | e99a18c428cb38d5f260853678922e03 | | Hack | 8d3533d75ae2c3966d7e0d4fcc69216b | | Pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 | | Bob | 5f4dcc3b5aa765d61d8327deb882cf99 | +------------+----------------------------------+ 4 rows in set (0.001 sec)
MySQL [security]> SELECT * FROM users LIMIT 0,1; #演示1 +----+----------+----------+ | id | username | password | +----+----------+----------+ | 1 | Dumb | Dumb | +----+----------+----------+ 1 row in set (0.001 sec)
MySQL [security]> SELECT * FROM users LIMIT 4,1; #演示2 +----+----------+-----------+ | id | username | password | +----+----------+-----------+ | 5 | stupid | stupidity | +----+----------+-----------+ 1 row in set (0.001 sec)
MySQL [security]> SELECT * FROM users LIMIT 4,3; #演示3 +----+----------+-----------+ | id | username | password | +----+----------+-----------+ | 5 | stupid | stupidity | | 6 | superman | genious | | 7 | batman | mob!le | +----+----------+-----------+ 3 rows in set (0.001 sec)
if判断
select if(1>2,2,3); # 真就返回第二个参数假就返回第三个参数
结果=3
1 2 3 4 5 6 7
MySQL [security]> select if(1>2,2,3); +-------------+ | if(1>2,2,3) | +-------------+ | 3 | +-------------+ 1 row in set (0.001 sec)
用于时间盲注
regexp正则查询函数
语法
1
select "数据" regexp '查询匹配';
例如
1 2 3 4 5 6 7
MySQL [security]> select "aaabbbccc" regexp 'b'; # 里面有b他就返回了1 +------------------------+ | "aaabbbccc" regexp 'b' | +------------------------+ | 1 | +------------------------+ 1 row in set (0.001 sec)
通常我们用在布尔盲注里面
union 操作符
union操作符是用于,并合两个或者多个select语句的结果 注意,union内部的 select语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 select语句中的列的顺序必须相同 默认情况,union操作符选取不同的值。如果允许重复的值,请使用 union ALL.
下面是查询user_id和first_name
但是我要是添加上 union语句后面就可以在执行一个查询的语句了
但是我要是添加上 union语句后面就可以在执行一个查询的语句了
注入的常用的函数
select system_user(); 系统用户名
select user(); 当前数据库用户名
select current_user(); 当前用户名
select session_user(); 连接数据库的用户名
select version(); 数据库版本
select @@datadir; 数据库路径
select @@basedir; 数据库安装路径
select version(); 数据库版本
select @@global.version_compile_os; 操作系统的信息
1 2 3 4 5 6 7
MySQL [(none)]> select @@global.version_compile_os; +-----------------------------+ | @@global.version_compile_os | +-----------------------------+ | Win64 | +-----------------------------+ 1 row in set (0.001 sec)
select @@version_compile_os; 操作系统的信息
select database(); 返回当前使用的数据库
count() 返回运行结果的数量
concat() 叫我们的内容进行连接起来
可以看见下面的结果叫我们的abc和def进行了连接
我们在注入查询到时候通常会下面这样做,结果会输入到一起
concat_ws() 叫我们的内容进行连接起来
可以看见上面concat()中间连接没有缝隙的concat_ws()是可以添加分隔符的
group_concat() 叫结果输入成一行
load_file() 读取本地文件
查询是否有写入的权限
下面的Value说明
Value
列说明
NULL
不允许导入或导出
/tmp
只允许在 /tmp 目录导入导出
空
不限制目录
1 2 3 4 5 6 7 8 9 10 11 12
MySQL [mysql]> show global variables like '%secure_file_priv%'; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 5 Current database: mysql
+------------------+-------+ | Variable_name | Value | +------------------+-------+ | secure_file_priv | | +------------------+-------+ 1 row in set (0.012 sec)
在 MySQL 5.5 之前 secure_file_priv 默认是空,这个情况下可以向任意绝对路径写文件
在 MySQL 5.5之后 secure_file_priv 默认是 NULL,这个情况下不可以写文件
into outfile 写文件可以写入多行数据,并且字段和行终止符都可以作为格式输出。
into dumpfile 写文件只能写一行,并且输出中不存在任何格式
select ascii() ; 返回字符的ASCII值
select char() ; #他和ascii()是相反的,数字对应字符
select ord(); 返回第一个字符的ASCII值
select mid(‘字符串’,从哪,到哪); 指定返回字符串的,类似切片
select substr(‘字符串’,从哪,到哪); 和上面的一样
select substring() 截取字符串
1 2 3 4 5 6 7
mysql> select SUBSTRING('abce',3); +---------------------+ | SUBSTRING('abce',3) | +---------------------+ | ce | +---------------------+ 1 row in set (0.00 sec)