先来看几起 SQL 注入的安全事件:
Joomla 对象注入漏洞
        事件概述:2015年10月29日国外知名CMS(内容管理系统)Joomla,爆出存在SQL注入漏洞,该漏洞影响了 1.5 到 3.4.5 的所有版本,漏洞利用无须登录,直接在前台即可执行任意PHP代码。这个漏洞在libraries/joomla/sesion/sesion.php文件中,joomla将HTTP_USER_AGENT和HTTP_X_FORWARDED_FOR直接存入到了session中, 只需将恶意代码放在 User-Agent 或 X-Forwarded-For 中发送给网站,将网站返回的cookie值带入第二个请求中,即可触发漏洞。或是在第一个请求中指定cookie值,在第二次中带上同样cookie值也能触发漏洞,并会在phpinfo()返回结果。
        危险指数:★★★★★★☆☆☆☆
        一句话点评:joomla出现的SQL注入不少,但出现如此严重的漏洞,还属罕见。此漏洞几乎通杀joomla全版本,后续影响值得我们持续关注。
Joomla 是国外的CMS(内容管理系统),对于国内的技术人员来说,比较陌生。但Joomla染指的两个大项目,大家应该特别了解:

GitHub

全世界最大的同性交友网站,其实是重型武器库。没有什么小工具在这里是找不到的。还记得我们的SQL在线答题小程序吗:
就是我在这里找到的。

JetBrains

好用到爆的编程工具,如果你是Java,Python系的编程人员,即使要装X,JetBrains 也是你的神器。能让程序员满意的工具,那必定是好工具。

东欧黑客利用SQL注入漏洞成功攻破英议会官网

一位绰号"Unu"的罗马尼亚黑客在自己的博客上披露,他发现英国议会的官方网站上存在SQL注入漏洞,而这些漏洞则暴露了很多机密信息,包括未加密 的登录证书等。利用这种漏洞,他宣称只要在浏览器中的网页地址后面加上数据库指令,就可以从网站后台服务器上窃取到有关的机密数据。更糟糕的是,当局对该网页漏洞的防范意识和反应速度都很难令人满意。
总以为安全部门会对SQL注入引起足够多的关注,但事实上注入依旧是网站被黑,被脱裤最常用的手段。
(图片来源:安全牛)
截止2017年,安全牛统计称SQL注入依旧是Top1的安全风险事件。
且各家网络安全公司都称 SQL注入黑洞依旧风险巨大。
那么 SQL 注入的原理是什么呢?来看个简单的例子
一个简单的产品搜索界面表单,根据产品名字来搜索产品对应的价格与库存:
(来源:https://www.youtube.com/watch?v=ciNHn38EyRc
来看下搜索的整个过程:
给 php server 发送 hammer 关键字:
(来源:https://www.youtube.com/watch?v=ciNHn38EyRc
php 应用向数据库发送查找 hammer 的指令:
(来源:https://www.youtube.com/watch?v=ciNHn38EyRc
数据库收到搜索指令,返回查询结果
(来源:https://www.youtube.com/watch?v=ciNHn38EyRc
作为C/S,B/S过来的程序员,可能是会这么处理整个流程的:
先有一个基本的动态SQL语句:
(来源:https://www.youtube.com/watch?v=ciNHn38EyRc
前端 UI 会发送搜索关键字符串 hammer ,经由 php server程序,最终落脚到数据库。我猜 php 应该是这样的脚本:
db.execute("select * from prod wherelike'%searchKeyword%'",searchKeyWord)注:1)这里 searchKeyword 就是搜索框里捕获用户输入字符串的变量2)prod 是存放产品信息的表
让我们改写一下:
(来源:https://www.youtube.com/watch?v=ciNHn38EyRc
假如,我们把单引号 ' 提前,加上 ";--", ,那么作用就是查询所有的产品。而所做的事情,就是把hammer 替换成 "';--"而已。整个SQL语句就变成了这样:
select * from prod wherelike'%'; -- ? : 表示数据库字段或者表名;断句符号--注释符号
(来源:
https://www.youtube.com/watch?v=ciNHn38EyRc

结果就是查询到了所有的产品:
(来源:
https://www.youtube.com/watch?v=ciNHn38EyRc

这,就是简单的一次SQL注入。
想想看,这如果是你同事,老板的工资库,亦或是银行账户,A股股票交易账户,酒店开房记录,想象空间是不是更大?
扫二维码加飞总微信
文章转载自公众号
有关SQL作者 Lenis
继续阅读
阅读原文