注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!
Oracle数据库
Oracle很死板 非常讲究语法格式
dual虚表,用来凑格式用的
在Oracle中库被弱化,用户被强化,一个用户代表一个库
库 表 字段 数据
注入函数解析
select * from all_tables 查询出所有的表
select * from user_tables 查询出当前用户的表
select * from all_tab_columns 查询出当前用户的表
select * from user_tab_columns 查询出当前用户的字段
select * from v$version 查询版本
rownum对结果进行表行号
实现limit功能
都知道limit函数适用于mysql数据库,在Oracle数据库中无法使用,当需要使用到分页查询时,我们可以用其他的方法进行代替。
Oracle数据库中区分单双引号
方法一:不等于法(通用法)
select * from user_tab_columns where table_name='ADMIN' and rownum = 1 and column_name<>'UNAME'
使用不等于号进行取反,这里的rownum=1输出的是一行,想输出两行可rownum<3.
还可以使用not in来进行排除
上面这种写法,如果排除的表名多了,语句就会很长,还有一种更好的办法,使用not in关键字,只需要把要排除的表名直接写进去就好了
select * from user_tab_columns where table_name='ADMIN' and rownum = 1 and column_name not in('ADMIN','MD5')
方法二:别名法
别名只能用于字段名
select * from (select column_name,rownum n from user_tab_columns where table_name= 'ADMIN') where n=2
rownum n 是别名,括号里面是子查询,我觉得这个语句是先执行后面的where,然后再对里面的进行查询。
对于输出点是时间戳的话可以使用以下四种方式进行输出(以Oracle数据库为例)
对于输出点是时间戳的渗透测试方法(以Oracle数据库为例)_不习惯有你的博客-CSDN博客_oracle渗透测试
Oracle报错注入函数
CTYSYS.DRITHSX.SN(user,(子查询))
去查询关于主题的对应关键词,然后因为查询失败(应该是这个用户没有创建和查询的权限,默认情况没有创建,爆出为查询到的错误而爆出查询的内容)
selec * from admin where id=1 and 1= ctxsys.drithsx.sn(1,(查询语句))