SQL注入攻击和防范措施.docx
文本预览下载声明
SQL 注入攻击和防范措施黄少勇( 广东电网公司饶平供电局,广东 饶平 515700)Prevention for SQL InjectionHUANG Shao-yong(Guangdong Power Grid Corporation Raoping Power Supply Bureau,Raoping,Guangdong 515700,China)Abstract :This article mainly discussed the principle, types, methods and protective measures of SQL injection attack. SQLlong history of attacks, if we know how to avoid it, we can avoid it through by some methods of protective.Key words :SQL injection;attack;protectiveinjection attack is a0 引言由于 ASP 的应用广泛,不需要特别深的编程知 识,就可以编出非常漂亮的动态网站,但是在 ASP 编程上最严重的问题就是 S Q L 注入的问题,同样 由于技术要求较低,所以利用 A S P 应用的广泛而 进行 S Q L 注入攻击的案例很多,黑客们也借此获 得成就感。S Q L 注入攻击是通过正常的W e b 端口访问的, 和一般的W e b 页面访问基本上没有特别大的区别, 这也是 SQL 攻击较为普遍的一个原因。而且,SQL 注入攻击没有特别的规则,所以也是网络管理人员 难以判断的一个方面。笔者在本文 中,就 S Q L 注入如何进行判 断, SQL 种类及防护措施进行阐述,首先让我们来了解一下 SQL 注入的理论基础。几个步骤,第一步是发现 S Q L 的注入位置,也就是 S Q L 的漏洞位置 ;第二步是判断后台数据库的 类型,根据不同的类型进行不同的后续操作 ;第三 步是确定 xp_cmdshell 可执行情况,xp_cmdshell 以操作系统命令行解释器的方式执行给定的命令字 符串,并以文本行方式返回输出,xp_cmdshell 以 同步方式操作。在命令行解释器命令执行完毕之 前,不会返回控制。当授予用户执行权限时,用 户能在 Windows 命令行解释器上执行运行 S Q L Server 的账户有权执行的任何操作系统命令。在 Windows 默认情况下,只有 sysadmin 固定服务 器角色的成员才能执行此扩展存储过程。但是,也 可以授予其他用户执行此存储过程的权限。当作 为 sysadmin 固定服务器角色成员的用户唤醒调 用 xp_cmdshell 时,将在运行 S Q L Server 服务 的安全上下文中执行 xp_cmdshel l。当用户不是 sysadmin 组的成员时,xp_cmdshell 将模拟使用 xp_sqlagent_proxy_account 指定的 SQL Server1SQL 注入攻击的判断从整体来说,一次 SQL 注入攻击主要分为以下2012.02 摘 要 :主要从 SQL 注入攻击的原理、类型、方法和防护措施等几个方面对 SQL 注入攻击进行了阐述。SQL 注入攻击是一种历史很久远的攻击方式,只要我们懂得防护,就可以很好地避免。关键词 :SQL 注入 ;安全攻击 ;安全防护computer securit y 学术.技术 代理程序的代理帐户 ;第三步是确定和发现 W E B虚拟目录 ;第四步是上传 A S P 恶意程序和木马 ; 从而进入第五 步,可以得到管理员权 限。此 时, SQL 注入攻击完成,黑客已经获得最高权限。第一步确定攻击位 置,一般来 说,S Q L 注 入一般存在于形如 :/abchttp:/ //abc. asp?id=AA 等带有参数的 ASP 网页中,在 ASP 动 态网页中,一个动态网页可以带有多种参数,如上 述指令的参数 A A 为例,A A 可能是整形,也可能 是字符串。这样,当将 A A 的参数改成一个错误的 数值时,这样 abc.asp 就返回一个错误的信息,任 何带有参数的指令都可能成为一个 S Q L 注入攻击 的位置,当返回完整的错误信息后,黑客就可以知 道参数的类型了。第二步便是分析数据库的类 型,一般来 说, ACCESS 和 SQL-Serve 是比较常用的数据库服 务器,尽管它们都支持 T-SQL 标 准,但是两个 数据库有不同之处,而且不同的数据库有不同的 攻击方法。首先 SQL-Serve 有 user,
显示全部