某游戏公司后台数据库SQL注入事件分析

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

某游戏公司后台数据库SQL注入事件分析


wKioL1ai8qzjjtYvAADwq-MfvRE817.jpg

人物关系简介

              Blank –SA

              Dawn(Boss)

              Ryan –DBA

               Fred –离开公司的安全顾问


本案例出自于《Unix/Linux网络日志分析与流量监控》一书,该事例详细描述了一家公司的后台服务器被入侵,黑客从中获取了大量游戏币帐号,并发送邮件相威胁的案例。主要遇到的问题是服务器被SQL注入或受到了SQL注入攻击

Blank是XX公司的网络架构师,技术好人缘也不错,他实际的工作室XX公司的“首席救火队员”,每件事他都要自己做,就连做网线也不放过。

这一天跟其他日子一样Blank正在上网,突然他的上司突然打断了他说

“Blank,我有事找你。”她表情严肃地说。

“我刚收到这封电子邮件。”Dawn在和Blank一起去她的办公桌时边走边说。

我发现你的网站有一个安全问题。它泄漏了你所有用户的记录和信用卡号。我是一个为了通过咨询来挣钱的、努力的学生。如果你给我1000万,那么我会告诉你怎么修复这个问题。如果你不给我钱,那么我就要公开这些信息了。

为了让你相信,下面是你的几个客户。

Shane Mason – 5111111111111111

Dan Burnham – 4111111111111111

Dana Mueller - 5555511111111111

Blank惊呆了。他穿过防火墙获得了账号。那些在影视剧里才有的敲诈勒索事件就出现在Blank的公司。

为了查明原因Blank迅速与公司的DBA联系,确定了那些用户账号和密码的真实性,结果完全一致。Blank十分害怕下面将要发生的事情。通常来说,坏的事情总是发生在最后。

“嗯,Dawn,我真的不知道。Fred负责所有的安全问题。他离开公司后,没有人负责这一块了。

“现在Fred在哪里?”她问。

“他在某个咨询公司。我有他的名片。”

“赶快打电话给他,叫他现在到这里来,”她说。“我不在乎花多少钱。”

“可能我们应该叫警察?”Blank小心地提议到。

“我不想让这件事泄露出去。我们公司正准备上市,如果他们知道了我们有安全问题,那么我们就完了。去叫Fred,快!”

Blank快速回到他的写字间,他的脑中还萦绕着这个事件方方面面的问题。他慢慢整理成堆的商务名片,试图找到Fred的名片。Blank找出了Fred的名片:“Fred  ,CISSP。”Blank想像某一天自己也会成为CISSP。现实把他猛然拽了回来。Blank拿起电话,拨了Fred的电话号码。

“我是Fred Langston。”

“嗨,Fred,我是XX公司的Blank。”

“嗨,Blank,很高兴接到你的电话。真希望你一切都好。”Fred兴高采烈地说

“一点也不好,Fred。我们有一个安全问题,我们非常需要你的帮助。”

“我已经安排了一个会,五点钟开完。”

“太好了,Fred。那太好了,我等你。”Blank说。

“同时,我会叫我办公室的人把我们的标准文书传真过去,  以备我们的进一步合作。

“Fred,我确实想进一步合作。我们这里有很大的麻烦了,现在分秒必争。”Blank恳求道。

“真的?发生了什么?”

“公司服务器被黑了”

Fred想了一下之后说:“好吧,Blank,给我五分钟,我会给你回电话的。”

Blank挂断电话,等了三分钟,可是他觉得像过了一个小时一样。电话响了。“我是Blank。”

“嗨,Blank,我是Fred。我在十分钟之内过去。

Blank快速回到他的写字间,Blank拿起电话,拨了Fred的电话号码。

Fred打开门,对Blank今天的落魄感到吃惊。

“嗨,Blank,你把文件签署好了吗?”

那么让我们开始工作吧。”Blank和Fred占用了一个会议室,迅速开始工作。Blank快速告诉了Fred有关细节。Fred靠在他的椅子上,考虑了一会说:“Blank,你应该叫警察,这是敲诈勒索。”

“Dawn说不能惊动警察,”Blank说。“她不想让这件事公开。”

“好吧。那么我需要一个网络图、防火墙规则,还有那份电子邮件所有信头的信息。看我们是否能搞清楚他是怎么入侵的。”

Blank跑去收集Fred需要的数据。Fred靠在椅子上,清理着他的思路。Fred的思绪飘回到了他在Widgets.com公司的时候,那时他设计网络的体系结构。他回忆起严格的火墙规则和完美的DMZ设计。他怀疑Blank改动了许多设计,因为他当时也负责这事情。Blank拿着一叠纸走进房间。

“这是所有的数据,Fred。”

Fred在桌子上展开了这些文件。下图是Widgets.com公司的网络结示意构图。

wKiom1ai8UDQp4MfAADfNBTliWs230.jpg

Widgets.com公司的WEB防火墙规则:

Conduit permit tcp host 192.150.50.5 eq www any

Conduit permit tcp host 192.150.50.5 eq 443 any

如下是Widgets.com公司的数据库防火墙规则:

Conduit permit tcp host 192.150.52.4 eq 1443 host192.168.50.5

下面是Fred从Blank那里得到的带有全部头信息的电子邮件:

Received: fromns1.widgets.com(10.1.2.11[10.1.2.11])by mx01.widgets.com with SMTP (MicrosoftExchang internet Mail Service Version 5.5 .2656.59) id R44ZWRCF2;Mon,13 Mar2010 14:57:00-0400

Received: fromweb21501.mail.webmail.com(web21501.mail.webmail.com[10.163.169.12])

by ns1.widget.com(8.11.6/8.11.2) withSMTP id g81J4PM30909

for <dawn@widget.com>; Mon,13Mar 2010 15:04:25 -0400

Message-ID:<20100901185430.84781.qmail@web21501.mail.webmail.com>

Received:from [10.9.212.210] by web21501.mail.webmail.com via HTTP;Sun,01 Sep 201011:54:30 PDT

Date:Mon,13 Mar 2010 11:54:30 -0700(PDT)

From:KunFoo<KungFoo@webmail.com>

subject:Security Issue

To:dawn@widget.com

MIME-Version:1.1

conten-type:mutipart/alternative;boundary="0-259684995-1030906470=:84428"

--0-259684995-1030906470=:84418

content-Type:text/plain;charset=us-ascii

--0-259684995-1030906470=:84418

Conten-Type:text/html;charset=us-ascii

I have discovered a securityproblem whith your web site. It reveals all your user records and credit cardnumbers  I am a struggling student thatmaked money going consulting .I will tell you how to fix this problem if youpay me $150000.If you decide not to pay me I will go public with thisinfomation. In case you are curious here are a few of your customers.

Shane Mason - 5111111111111

Dan burnham - 4111111111111

Dana Mueller -3111111111111

Fred认真检查了网络图和防火墙规则。“我走后你改动了什么吗,Blank?”

“不,伙计,我太忙了,一直忙着救火,没有空改任何东西。应该还和以前都一样。”

“那补丁呢?”Fred问。

“所有的Windows Server 2003服务器都运行了最新的补丁,我很肯定SQL服务器是打了补丁的。”

“好吧,看起来惟一能进入的通道就是Web服务器。让我们从那里着手。”

Fred从他的背包里抽出笔记本电脑,开始了工作(黑色瑞士***牌双肩背包里抽出笔记本电脑)。“我准备检查一下Web服务器的漏洞(采用了什么方法检查Web服务器漏洞的),“他说。“这些天谁看了Web服务器的日志?”

“我很肯定负责市场的Alex看了它们。”Blank说。

“好的。我需要最近几周的日志。”

Blank再一次走出门。Blank开始跑来跑去一点一点收集文档。他拿回来一大堆的设备归档日志,扔在Fred面前。

“这是你要的所有日志。”

Fred开始反复查阅Blank获得的日志记录,但是在这些日志中丝毫没有找到线索, Fred都快要发疯了,这时候,Ryan冲进门来。

“Blank,我有事找你。昨天晚上SQL服务器发生了奇怪的事情。”

“我现在真的没有时间,Ryan,”Blank呻吟道。

“你发现了什么,Ryan?”Fred迫不及待问到。

“只是一些奇怪的错误,”Ryan边说边递过来一张纸。下面就是他发现的代码:

3/12/10 1:24:12 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBC Drivers->AuthenticateCustomer[Microsoft][ODBCSQL Server Driver][SQL Server]Line 1: Incorrect syntax near`:`.

3/12/10 1:24:36 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near`,`.

3/12/10 1:24:55 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near the keyword`OR`.

3/12/10 1:25:10 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near the keyword`UNION`.

3/12/10 1:25:19 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near the keyword`)`.

3/12/10 1:25:32 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]The identifier that starts with `UNION ALL SELECTO ther Field FROMOt` istoo long. Maximum lenth is 30.

3/12/10 1:25:10 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near `UNION SELECT NAME,PASSWORD,FROM USERSWHERE`:`.

3/12/10 1:25:31 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->getParNo [Microsoft][ODBC SQL Server Driver][SQL Server]Invalidobject name `USERS`.

这时Fred眼前一亮。他从光盘上打开IIS服务器的日志文件,开始一页一页地看,直到找到第一个SQL服务器错误的时间记录:

03/12/2010 1:24 10.9.212.210W3SVC1 WWW-2K WWW-www.widgets.com 80 POST/catalog/search.asp501 749 492 32 www.widgets.comMozilla/5.0+(compatible;+MSIE+5.1;+Windows+98)

“啊哈!”Fred大叫一声。

wKioL1ai8dvy3xOZAAC5OW21pXc015.jpg

他似乎有了重大发现,接下来该怎么办?在《Unix/Linux网络日志分析与流量监控》一书中进行详细分析。







 本文转自 李晨光 51CTO博客,原文链接:http://blog.51cto.com/chenguang/1737828,如需转载请自行联系原作者

相关文章
|
11天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
51 10
|
28天前
|
SQL 存储 BI
【软件设计师备考 专题 】数据库语言(SQL)
【软件设计师备考 专题 】数据库语言(SQL)
90 0
|
1月前
|
SQL 安全 数据库
SQL-Server 数据库部署
SQL-Server 数据库部署
63 0
|
1月前
|
SQL 监控 安全
SQL注入的实现原理以及防止
SQL注入的实现原理以及防止
|
1月前
|
SQL Java 应用服务中间件
Java项目防止SQL注入的四种方案
Java项目防止SQL注入的四种方案
38 0
|
1月前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
18 1
|
11天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
74 6
|
5天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
11 0
|
8天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
8天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
32 3

热门文章

最新文章