SQL注入攻击是黑客攻击数据库的常见手段之一,随着B/S模式应用开发的发展,越来越多的程序员开始使用这种模式来编写应用程序。然而,由于程序员的水平和经验参差不齐,很大一部分程序员在编写代码时没有对用户输入数据的合法性进行判断,使得应用程序存在安全隐患。用户可以提交数据库查询代码,根据程序返回的结果获得一些他想知道的数据,这就是所谓的SQL注入。
SQL注入攻击是数据库安全攻击中的一种,可以通过数据库安全防护技术进行有效防护,包括:数据库扫描、数据库加密、数据库防火墙、数据脱敏、数据库安全审计系统。由SQL注入攻击引起的数据库安全风险包括:刷库、拖库、撞库。
总体思路·发现 SQL 注入位置;
·判断后台数据库类型;
·确定 XP_CMDSHELL 可执行情况
·发现 WEB 虚拟目录
·上传 ASP 木马;
·得到管理员权限;
例子某个网站的登录验证的 SQL 查询代码为:
strSQL=“SELECT*FROMusersWHERE(name=‘”+userName+“‘)and(pw=‘”+passWord+”‘);”
恶意填入
userName=“1’OR‘1’=’1”;
与
passWord=“1′OR‘1’=’1”;
时,将导致原本的 SQL 字符串被填为
strSQL=“SELECT*FROMusersWHERE(name=‘1’OR‘1’=’1′)and(pw=‘1’OR‘1’=’1′);”
也就是实际上运行的 SQL 命令会变成下面这样的
strSQL=“SELECT*FROMusers;”
因此达到无账号密码,亦可登录网站。所以 SQL 注入攻击被俗称为黑客的填空游戏。