靶场科普 | Oracle数据库注入

发表时间:2021-10-11 16:18

本文由“东塔网络安全学院”总结归纳


图片
靶场介绍

Oracle数据库注入


图片

今天,给大家介绍一下“东塔攻防世界”其中的一个靶场:Oracle数据库注入”。


一、实验介绍

1. Oracle 数据库系统,是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品。是目前世界上使用最为广泛的,数据库管理系统。

2. Sql注入形成的主要原因是:由于程序员的安全意识薄弱,在编写代码时没有对用户输入的特殊字符进行处理,导致将特殊字符附带在参数中直接与数据库进行交互。示例代码如下,在第二行可以看出,接收的参数id没有经过处理就直接执行,由于对 and,select等关键字没有过滤。所以接下来我们可以使用and,select等构造sql语句来获得管理员账号密码。


二、实验目的

1. 掌握Oracle数据库的基本sql语句

2. 熟悉sql注入的流程以及原理


三、实验步骤

1. 打开实验环境 ,尝试寻找注入点

2. 找到注入点以后,按照SQL注入的思路进行信息获取


四、防御方法

1. 构造的sql语句时使用参数化形式而不使用拼接方式能够可靠地避免sql注入

2. 主流的数据库和语言都支持参数化形式,可参考维基百科“参数化查询”。
3. 拼接加对输入进行单引号和sql关键字过滤的方法也能在一定程度上防护sql注入,但是由于数据库的具有注释符/连接符、支持十六进制写法、具有char()等编码函数可以使sql语句变换成多种多样的形式,所以这种方法并不可靠。