危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览18791405

注入初体验

最近我正在学习Oracle数据库的注入,在此就把学习的经过写下来和大家分享一下,本文的测试环境为.net+Oracle 9i。我是在本地电脑中搭建环境来进行测试的,因为自己搭建的环境方便测试,即使出了错误也能很快的找到原因,搞明白了原因后才能更好的去利用。

我自己使用net编写了一个存在搜索漏洞的脚本,关于注入原理我简单的说一下,注入的形成是由于程序员在编写代码的时候对获取的值过滤不严,直接带入数据库查询而产生的,这样我们就可以精心构造SQL语句达到攻击的目的,也就形成了注入,危险漫步的粉丝们可以翻看一下以前的文章,在此就不多嗦了。

Oracle系统库默认的用户有Sys、System、Internal、Scott,前三个用户都是System权限。关于数据库的注释我简单的介绍一下:accesg支持“null和“%00”注释,Mssql支持“一”和“;”的注释,Mysql支持“/$”的注释,而Oracle支持“一”的注释。

在实际的注入过程中首先要做的就是判断是否存在注入,关于搜索型的注入我们可以使用“OR”=“一”或者“关键字1=1来进行测试,但是什么都没有查询出来,因为and  1=+2不成立,所以自然不会查询出结果了。比较这两个页面返回了不同的数据,由于就可以确定存在注入精洞。

关于判断字段数,可以使用“Order by”,也可以使用NULL-个一个的递加去试,使用NULL可以匹配所有的类型。

可以确定字段数为4Aj,接着使用union来爆破字段的位置,在Oracle注入点使用union的时候大家需要注意,Orale和IMYSQL、SqiServer不同,Orcale使用uriion的时候必须要有from表名,不然会报错dual是系统表。在使用Unton的时候需要注意两个表之间的类型问题,字段对应的类型必须一样才可以。接下来我们再模拟爆出管理员的密码,现在我们还不知道表名和字段名,先来爆破一下,爆出了当前用户下所有的表名和字段。语句中的tablename是表名称,column namle是列的名称.user_tab_columns表是用来存放当前用户的表和字段信息的,admin表-中有password和usernamP个列,下面我们就来爆破管理员的密码和帐户,执标“e%+and%-union select username,2.password,41 from adnun-”,成功的爆出了帐号和密码。

现在,我们搞定了管理员的帐号和密码后就可以登录进入后台拿shell了,关于Oracle据库的注入我就简单的介绍到这里。

相关推荐