黑客攻防之SQL注入概述-隐藏在暗处的魔鬼(OWASP)
互联网的出现给我们带来了新的生活方式,我们可以在网上做以前想象不到的事情,给我们带来了极大的方便,以前需要在银行排队进行缴费,转账,现在动动手指头就完成了。以前每天总是在为每天要吃什么而烦恼,现在打开外卖网站,几分钟的时间,美食就送到了你的身边。一切看上去都是那么的美好。但是,今天我想说的可不是歌颂这美好时代,进我想说说那隐藏在暗处的魔鬼。
毋庸置疑,互联网环境中的信息安全成了不可忽视的课题。一个不安全的业务系统,往小了说,可能会给我们带来烦恼或者经济损失,重者甚至可以让我们身败名裂,直接破产,改变人生轨迹。
开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。他是一个非盈利性为目的的组织,OWASP是一家国际性组织机构,并且OWASP基金会支持OWASP世界各地分会的工作。OWASP是一个开放的、非盈利组织,它致力于协助政府、企业开发、升级各类应用程序以保证其可信任性。
今天我们来看看OWASP 2017安全领域的TOP 10 漏洞之一(后续我们逐个来讨论其余的9个),那就是大名鼎鼎的注入攻击,今天我们注重来看一看SQL注入。
对一些防范不安全的小型网站来说或者蹩脚程序员的产物,SQL注入带来了难以言说的损害,让人们不敢再放心的在互联网上进行转账,消费。严重影响了互联网消费生态的形成。
从今天开始,我们逐个讨论一下OWASP基金会所列举的TOP 10的安全风险,做到了然于心,我们了解这些不是为了黑别人,不是为了攻击,而是在了解了别人的攻击向量之后,我们可以做到有目的的防范,让我们的业务安全而平稳的运行。
今天洋洋洒洒讲了这么多做开头,剩下的一点内容,我们来看看A1:注入攻击。
举个简单的例子作为引子,我们在打开各种网站的时候,需要登录才能做相应的操作,参考下图:
正常情况下,我们可以通过注册或者oAuth第三方认证(在前面的历史文章中有介绍)来进行登录,那么如果我们没有用户名如何来登录该系统呢?
对某些蹩脚的程序员或者安全意识不高的公司来说的话,他在登录的SQL判断语句中可能会这样写:
SELECT * From Table WHERE Name=XX and Password=YY
其中XX和YY的值分别肯定是从前台页面上用户输入的"用户名"和"密码"。
正常情况下,一切看上去都很美,但是隐藏在暗处的魔鬼是什么呢?
如果用户在上述页面的"用户名"处输入这样的值:or 1=1 –
这时,会发生什么?
如果网站安全性不好的话,直接从前天读取相关数据再后台组装成SQL,那么组装好的SQL语句就会如下:
SELECT * From Table WHERE Name= or 1=1 --XX and Password=YY
这条语句意味着什么呢?
首先—是注释符,也就是后面的语句是不起作用的。那么上面的语句就等同于下面的语句
SELECT * From Table WHERE Name= or 1=1
这么样,这条语句where后面是Name= or 1=1,不消说了,这条语句永远为真,因为or 1=1是永远成立的。对不?
那么我是不是实现了在没有用户名,也没有业务授权的情况下取得了非法的登录?
当然了,SQL注入取得登录权限,这当然是非法的。但是要注意,这只是SQL注入危害的一种,SQL注入带来的危害远不仅仅知识非法登录,他可以取得用户本身权限意外的所有业务数据。这个留着后面我们慢慢地讨论吧。
后面我们将和大家一起搭建起一套实验的环境,在真实的实验环境中来体验OWASP中关于互联网各种攻防的实践,以红蓝军的形式增强大家的理解,增强自己在互联网中的安全意识,保证自己的人生安全。
每天学习一点点,每天进步一点点,欢迎各位关注本头条号,共同进步。如各位喜欢,也欢迎转发,点赞,在评论区留言和小编互动。
以上就是关于《黑客攻防之SQL注入概述-隐藏在暗处的魔鬼(OWASP)》的全部内容,本文网址:https://www.7ca.cn/baike/23710.shtml,如对您有帮助可以分享给好友,谢谢。