SQL注入基础--判断闭合形式

**

SQL注入基础–判断闭合形式

SQL语句的闭合形式大概如下几种:

SELECT * FROM `users` WHERE id= 1;#整形闭合
SELECT * FROM `users` WHERE id='1'; #单引号闭合
SELECT * FROM `users` WHERE id="1";#双引号闭合
SELECT * FROM `users` WHERE id=('1');#单引号加括号
SELECT * FROM `users` WHERE id=("1");#双引号加括号

## 1.整形闭合

SELECT * FROM `users` WHERE id= 1;#整形闭合

模拟注入:

?id=1’
?id=1”

SELECT * FROM `users` WHERE id= 1;
SELECT * FROM `users` WHERE id= 1;

错误
在这里插入图片描述
在这里插入图片描述

2.单引号闭合

SELECT * FROM `users` WHERE id='1'; #单引号闭合

模拟注入:

?id=1’
?id=1”

SELECT * FROM `users` WHERE id= '1'';

报错
在这里插入图片描述

SELECT * FROM `users` WHERE id= '1"';

可以运行
在这里插入图片描述

如果写成这样:

?id=1’–+

SELECT * FROM `users` WHERE id= '1'-- ';

**mysql 不会把后面那个单引号注释掉,并且会把整个1’–作为查询条件,可以成功查询和1是一样的!**
任何闭合方式都这样在没有遇到相对应的闭合时,都会把这个符号当做一个整体,注释符也没用!!

3.双引号闭合

SELECT * FROM `users` WHERE id="1";#双引号闭合

模拟注入:

?id=1’
?id=1”

SELECT * FROM `users` WHERE id="1'";

在这里插入图片描述

SELECT * FROM `users` WHERE id="1"";

报错
在这里插入图片描述

总结

遇到SQL注入第一步判断闭合:
首先尝试:

?id=1’
?id=1”

1如果都报错,则为整形闭合。

2如果单引号报错,双引号不报错。
然后尝试

?id=1’–+

无报错则单引号闭合。
报错则单引号加括号。

3如果单引号不报错,双引号报错。
然后尝试

?id=1"–+

无报错则双引号闭合。
报错则双引号加括号。

多层括号同理

  • 27
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值