SQL注入基本知识
2021/12/22 2:23:18
本文主要是介绍SQL注入基本知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
SQL注入基本知识参考这个博客即可SQL注入
我主要想说一下自己在做sql注入过程中遇到的疑惑
例如:
数据库为
查询语句为
select * from userinfo where id='$_GET['id']'
此时闭合为单引号闭合,当判断注入类型时候,
输入1:SELECT * FROM userinfo WHERE id='1';
,此时正常返回结果;
输入1':SELECT * FROM userinfo WHERE id='1'';
,此时意料之中报错
输入1":SELECT * FROM userinfo WHERE id='1"';
,此时本来预料会报错的,因为闭合类型错误,但是没想到竟然正确输出结果:
当时遇到这种问题困扰好久:既然闭合类型为',为什么输入"时候没有报错,既然"没有报错,那么在SQL注入时候如何判断闭合类型呢,
为了查清楚原因所在,在数据库中不断测试,又换了一下别的符号
SELECT * FROM userinfo WHERE id='1a';
也是输出正确结果,不论1后面跟什么字符,除了单引号和数字,都能正常输出结果!
这时候倒不得不把问题聚焦到id本身上来,果然问题出现在这里,在数据库中看到,id为
int类型,这说明,当输入内容为1'时候,这时候因为正常闭合了前面的',所以会出现语法错误;但是当我们输入1"或者1a等等,这时候并没有闭合',我们输入的内容被当做普通字符了,而id是int类型,这里有一个隐式转换,自动把我们输入的转换为数字,所以只要1后面不跟',无论其他什么符号,都会被忽略,最终转为数字1查询到id=1所对应的结果!
这篇关于SQL注入基本知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南