面试官:网络安全了解多少,简单说说?(三)

写在前面

在前两篇文章 # 面试官:网络安全了解多少,简单说说?(一)# 面试官:网络安全了解多少,简单说说?(二) 中详细分析了 XSS 与 CSRF 的漏洞原理与攻击设施过程,相信大家对于网络攻击已经有了一点了解,也能够感受到网络安全之于开发者是多么的重要,前两篇主要讲解的是偏前端的安全漏洞,那么今天我们讲解一个偏后端的一个漏洞,SQL 注入攻击。

SQL 注入

顾名思义,sql,即数据库sql查询语句,我们都知道,任何涉及到存储的东西,例如身份验证、信息查询、信息提交等等,涉及到数据持久性的,都离不开数据库的支持,而数据库上层的操作语言是 SQL,那么如果不加强防范的话,通过 SQL 的相关漏洞,也就能够对数据库进行一些非法的攻击,进而达到窃取数据库相关敏感信息以及越权访问等高危攻击行为。

攻击过程

20220612160738.png

1、构造恶意语句

在存在漏洞的页面上的某个输入框中,猜测输入框背后对应的 SQL 查询语句的构成方式,也就是说,需要在这一步猜测通过前端提交到服务器上的参数是如何嵌入到 SQL 查询语句中的,然后通过 SQL 语句的语法分析,运用条件符 or、and 等改变语句的判断方式,或者加入“;”对语句进行闭合等方式,构造特殊的恶意攻击语句

2、服务器构造SQL语句

服务器将接收到的请求参数代入到 SQL 语句中,形成最终的 SQL 执行语句,最后提交到数据库中执行

3、数据库执行恶意语句

当服务器将拼接产生的恶意 SQL 语句提交到数据库后,数据库默认按照 SQL 要求执行对应的操作,最终产生了恶意攻击的效果

典型案例

假设某网站是一个个人相关信息查询网站,登录需要验证,当验证通过则能够查询到所有相关的个人信息。

黑客攻击:首先黑客按照以往的渗透测试经验,猜测到登录验证的 SQL 语句大致为 select * from user where user=user and psd=psd; ,其中 user 与 psd 为前端输入框传到服务器的参数,那么这个时候黑客便可以通过构造特殊的 user 和 psd 来改变原来执行的 SQL 语句,当 user = yimwu';-- 时,构造出来的语句是这样子的 select * from user where user='yimwu';--' and psd=psd; ,这个语句中 -- 表示注释,直接忽略了后面的其他内容,因此可以实现的效果是直接绕过了密码,无需验证密码即可完成个人信息查询。

防范措施

从上面典型案例的分析后,我们可以看出,对于 SQL 注入的防范其实并不复杂,主要还是对输入进行细致的过滤,对于相关的关键词进行屏蔽和转义,也就能够在前端有效得规避一些风险,而对于后端来说,如果需要做到更加安全地执行语句,应该采用非拼接的方式执行 SQL,像目前使用较为广泛的 java、python、Go 等,都有 SQL 相关的安全执行框架,采用这些框架执行,而不是人工拼接语句,也就能够有效避开执行安全问题。

总结

就像前面安全系列相关文章提到的一样,永远不要相信用户的任何输入,永远不要,永远不要,对于用户输入的东西,在前端就做好过滤,然后再提交到后端,这才是一个合格的前端需要养成的良好习惯,永远不要将安全责任都推到后端身上,因为我们需要相信,前端+后端,永远是更加安全和稳固的安全开发范式!

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以点击下方链接领取或者V扫描下方二维码联系领取~

1️⃣零基础入门

① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

需要详细路线图的,下面获取
② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image

2️⃣视频配套工具&国内外网安书籍、文档

① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的下面获取

3️⃣Python面试集锦

① 面试资料

image5在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值