1、网站分类
1.1、静态网页:html或者htm,是一种静态的页面格式,不需要服务器解析其中的脚本。由浏览器如(IE、Chrome等)解析。
- 不依赖数据库
- 灵活性查,制作、更新、维护麻烦
- 交互性较差,在功能方面有较大的限制
- 安全,不存在SQL注入漏洞
1.2、动态网页:asp、aspx、php、jsp等,由相应的脚本引擎来解释执行,根据指令生成静态网页
- 依赖数据库
- 灵活性好,维护方便
- 交互性好,功能强大
- 存在安全风险,可能存在SQL注入漏洞
2、注入漏洞
2.1、注入漏洞形成原因
- 数据与代码未严格分离:用户提交的参数数据未做充分检查过滤即被代入到SQL命令中,改变了原有SQL命令的“语义”,且成功被数据库执行
2.2、常见注入流程
-
客户端:参数值等数据被修改
-
服务端:未经检查和过滤即将被修改的数据注入到SQL命令中,SQL命令功能被修改
-
数据库引擎:执行被修改后的SQL命令
-
服务端:将注入的结果返回给客户端
-
客户端:根据上一次注入获取到的敏感信息构造注入语句进一步注入
3、注入危害
3.1、SQL注入的定义:
- 很多应用程序都使用数据库来存储信息。SQL命令就是前端应用程序和后端数据库之间的接口,攻击者可利用应用程序根据提交的数据动态生成SQL命令的特性,在URL、表单域,或者其他的输入域中输入自己的SQL命令的操作,将被修改的SQL命令注入到后端数据库引擎执行;
3.2、SQL注入的危害:
- 这些危害包括但不局限于:
- 数据库信息泄露:数据库中存放的用户的隐私信息的泄露
- 网页篡改:通过数据库对特定网页进行篡改
- 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击
- 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员账户被篡改
- 服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统
- 破坏硬盘数据,瘫痪全系统
- 一些类型的数据库系统能够让SQL指令操作文件系统,这使得SQL注入的危害进一步放大