SQL注入时?id=1 and 1=1和?id=1 and 1=2的功能

(此文章是记录本人对知识理解的随手笔记,内容不肯定百分百正确,如有错误望指出并谅解)

?id=1 and 1=1     

 ?id=1 and 1=2     ​​​​​​​

 ?id=1'     ​​​​​​​

结论:

若在GET请求中?id=1 and 1=1和?id=1 and 1=2都没有报错,则是字符型注入

若在GET请求中?id=1 and 1=1没有报错,但是?id=1 and 1=2有异常或没回显,则是数字型注入

证明:

1、
若注入 ?id=1 and 1=2 ,则数据库中查询语句为: 

select * from user where id='1 and 1=2';

因为id为int类型,所以传入的 ‘1 and 1=2’ 会强制转换成 ‘1’ ,=>最终数据库中的查询语句为:

select * from user where id='1';

所以sql语句不会报错,所以是字符型注入,这样就可以利用这一点来进行注入时的闭合操作。

可以查看另一篇文章来理解闭合操作的其中一个小用法:
SQL注入时order by 后面加数字的作用_头顶蜘蛛网,脚踩大水缸的博客-CSDN博客

2、

若是数字型注入,注入 ?id=1 and 1=2  时的SQL语句为:

select * from users where id=1 and 1=2 

因为 select * from users where id=1 是正确的语句 ,and 后面的 1=2 是错误的语句,所以select * from users where id=1 and 1=2 会有异常或着网页没有回显(当一个错误的语句和一个正确的语句用and连接符连接时,整体就会是错误的 )。

参考文章:

https://blog.csdn.net/m0_55306747/article/details/121531019

  • 23
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值