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-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)