0


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


本文转载自: https://blog.csdn.net/m0_51756263/article/details/125692951
版权归原作者 头顶蜘蛛网,脚踩大水缸 所有, 如有侵权,请联系我们删除。

“SQL注入时?id=1 and 1=1和?id=1 and 1=2的功能”的评论:

还没有评论