《网络安全学习》第二部分-----SQL注入学习

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tomatocc/article/details/85541861

关于更详细的文档资料,请回看第一部分
《网络安全学习》第一部分-----初识OWASP

在这里插入图片描述

通过sql注入,绕过用户名和密码校验


数值型注入方式-------通过-1 or 1=1

原理: 例如我们后台有这样一个查询sql:
SELECT * from user_message WHERE id=
那么我们可以通过修改前端的值位:-1 or 1=1 来实现查询所有的数据,其中-1表示永远不可能存在的数据。

字符串注入方式-------通过注释字符,来实现绕过

原理:由于#通常标识注释,因此可以在输入用户名的时候加上’#,然后输入任意的密码,这样就可以绕过登陆密码的校验。

在这里插入图片描述

原理:由于--通常标识注释,因此可以在输入用户名的时候加上’–,然后输入任意的密码,这样就可以绕过登陆密码的校验。
在这里插入图片描述

以上问题解决方案:前后台输入框格式的绝对校验。另外严格禁止sql拼接,必须使用占位符。

通过sql注入,返回所有数据

假设我现在有一个user表,表中有3个字段。现在使用order by 命令i将所有数据查出来。
SQL语句如下,其中3表示列数,当然,攻击者需要不停的去猜,只有当该数和数据库的列数相同后,才会返回数据。

SELECT * from user order by 3;

![在这里插入图片描述](https://img-blog.csdnimg.cn/2019012014460142.png
解决方案:sql查询之前,对sql进行筛选/特殊处理。

【网络安全学习】系列教程

《网络安全学习》第一部分-----初识OWASP
《网络安全学习》第二部分-----SQL注入学习
《网络安全学习》第三部分-----XSS攻击系列学习
《网络安全学习》第四部分-----SSRF服务器端请求伪造
《网络安全学习》第五部分-----远程代码执行漏洞
《网络安全学习》 第六部分-----文件上传漏洞
《网络安全学习》 第七部分-----跨域资源共享(CORS)漏洞

展开阅读全文

没有更多推荐了,返回首页